Move functions from utils.c, collisionutils.c, crc.c and gfxreplace.c into the files where they're called

This commit is contained in:
Ryan Dwyer
2023-05-08 23:27:23 +10:00
parent 77148cc62e
commit bcaea5d7e9
24 changed files with 608 additions and 764 deletions
-3
View File
@@ -141,7 +141,6 @@
build/ROMID/game/modeldata/robot.o (section); \
build/ROMID/game/sky.o (section); \
build/ROMID/game/playermgr.o (section); \
build/ROMID/game/crc.o (section); \
build/ROMID/game/rng2.o (section); \
build/ROMID/game/vtxstore.o (section); \
build/ROMID/game/explosions.o (section); \
@@ -159,12 +158,10 @@
build/ROMID/game/options.o (section); \
build/ROMID/game/game_152fa0.o (section); \
build/ROMID/game/game_1531a0.o (section); \
build/ROMID/game/collisionutils.o (section); \
build/ROMID/game/bg.o (section); \
build/ROMID/game/bgbss.o (section); \
build/ROMID/game/game_165360.o (section); \
build/ROMID/game/stagetable.o (section); \
build/ROMID/game/gfxreplace.o (section); \
build/ROMID/game/env.o (section); \
build/ROMID/game/room.o (section); \
build/ROMID/game/file.o (section); \
+281 -1
View File
@@ -17,7 +17,6 @@
#include "game/game_13c510.h"
#include "game/game_1531a0.h"
#include "game/gfxmemory.h"
#include "game/gfxreplace.h"
#include "game/bg.h"
#include "game/game_165360.h"
#include "game/stagetable.h"
@@ -2312,6 +2311,287 @@ static struct gfxvtx *roomFindVerticesForGdl(s32 roomnum, Gfx *gdl)
return NULL;
}
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,
};
static 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++;
}
}
static 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;
}
}
}
static void bgLoadRoom(s32 roomnum)
{
s32 size; // 2f4
-179
View File
@@ -1,179 +0,0 @@
#include <ultra64.h>
#include "constants.h"
#include "game/game_006900.h"
#include "game/savebuffer.h"
#include "game/game_1531a0.h"
#include "game/file.h"
#include "game/lang.h"
#include "bss.h"
#include "lib/vi.h"
#include "lib/dma.h"
#include "lib/main.h"
#include "data.h"
#include "types.h"
f32 func0f1577f0(f32 arg0[2], f32 arg1[2], f32 arg2[2], f32 arg3[2])
{
f32 mult1 = arg2[1] - arg3[1];
f32 mult2 = arg3[0] - arg2[0];
f32 a = (arg2[1] - arg0[1]) * mult2 + (arg2[0] - arg0[0]) * mult1;
f32 b = (arg1[1] - arg0[1]) * mult2 + (arg1[0] - arg0[0]) * mult1;
if (b == 0.0f) {
return 1.0f;
}
a /= b;
if (a < 0.0f || a > 1.0f) {
return 1.0f;
}
return a;
}
static f32 func0f1578c8(struct widthxz *arg0, struct xz *arg1, struct xz *arg2)
{
f32 value2;
f32 value1;
f32 sp24;
f32 mult1;
f32 mult2;
mult1 = arg2->x - arg0->x;
mult2 = arg2->z - arg0->z;
value1 = mult2 * arg1->x - mult1 * arg1->z;
value2 = mult1 * arg1->x + mult2 * arg1->z;
sp24 = (arg0->width - value1) * (arg0->width + value1);
if (sp24 < 0.0f) {
return MAXFLOAT;
}
value2 -= sqrtf(sp24);
if (value2 < 0.0f) {
if (value2 * value2 + value1 * value1 <= arg0->width * arg0->width) {
return 0.0f;
}
return MAXFLOAT;
}
return value2;
}
f32 func0f1579cc(struct widthxz *arg0, struct xz *arg1, struct xz *arg2, struct xz *arg3)
{
f32 spac;
f32 spa8;
struct xz spa0;
f32 sp9c;
f32 sp98;
f32 sp94;
f32 sp90;
f32 sp8c;
f32 sp88;
f32 sp84;
f32 sp80;
f32 sp7c;
f32 sp78;
f32 sp74;
f32 sp70;
f32 sp6c;
f32 sp68;
f32 sp64;
f32 sp60;
f32 sp5c;
f32 sp58;
f32 sp54;
spac = sqrtf(arg3->x * arg3->x + arg3->z * arg3->z);
if (spac == 0.0f) {
return 1.0f;
}
spa0.x = arg3->x * (1.0f / spac);
spa0.z = arg3->z * (1.0f / spac);
sp98 = arg2->x - arg1->x;
sp9c = arg2->z - arg1->z;
sp94 = sqrtf(sp98 * sp98 + sp9c * sp9c);
if (sp94 == 0.0f) {
goto handlezero;
}
sp90 = 1.0f / sp94;
sp88 = sp9c * sp90;
sp8c = -sp98 * sp90;
sp84 = arg0->width * sp88;
sp80 = arg0->width * sp8c;
if (sp84 * (arg0->x - arg1->x) + sp80 * (arg0->z - arg1->z) < 0.0f) {
sp84 = -sp84;
sp80 = -sp80;
}
sp78 = arg1->x + sp84;
sp7c = arg1->z + sp80;
sp70 = arg2->x + sp84;
sp74 = arg2->z + sp80;
sp68 = (arg3->z * sp78) - (sp7c * arg3->x);
sp6c = (arg0->x * arg3->z) - (arg0->z * arg3->x);
sp64 = (arg3->z * sp70) - (sp74 * arg3->x);
if (sp64 < sp68) {
struct xz *tmp;
spa8 = sp68;
sp68 = sp64;
sp64 = spa8;
tmp = arg1;
arg1 = arg2;
arg2 = tmp;
sp88 = -sp88;
sp8c = -sp8c;
}
if (sp64 == sp68) {
sp60 = func0f1578c8(arg0, &spa0, arg1);
sp5c = func0f1578c8(arg0, &spa0, arg2);
if (sp5c < sp60) {
sp60 = sp5c;
}
} else if (sp64 < sp6c) {
handlezero:
sp60 = func0f1578c8(arg0, &spa0, arg2);
} else if (sp6c < sp68) {
sp60 = func0f1578c8(arg0, &spa0, arg1);
} else {
sp58 = sp88 * (arg0->x - arg1->x) + sp8c * (arg0->z - arg1->z);
sp54 = sp88 * (arg0->x + arg3->x - arg1->x) + sp8c * (arg0->z + arg3->z - arg1->z);
if (sp58 == sp54) {
return 1.0f;
}
sp60 = (sp58 - arg0->width) * spac / (sp58 - sp54);
}
if (spac < sp60) {
return 1.0f;
}
if (sp60 < 0.0f) {
return 0.0f;
}
return (f32) sp60 * (1.0f / spac);
}
-28
View File
@@ -1,28 +0,0 @@
#include <ultra64.h>
#include "constants.h"
#include "bss.h"
#include "lib/rng.h"
#include "data.h"
#include "types.h"
void crcCalculateU16Pair(u8 *start, u8 *end, u16 *checksum)
{
u8 *ptr;
u32 salt = 0;
u64 seed = 0x8f809f473108b3c1;
u32 sum1 = 0;
u32 sum2 = 0;
for (ptr = start; ptr < end; ptr++, salt += 7) {
seed += *ptr << (salt & 0x0f);
sum1 ^= rngRotateSeed(&seed);
}
for (ptr = end - 1; ptr >= start; ptr--, salt += 3) {
seed += *ptr << (salt & 0x0f);
sum2 ^= rngRotateSeed(&seed);
}
checksum[0] = sum1 & 0xffff;
checksum[1] = sum2 & 0xffff;
}
+95 -24
View File
@@ -71,6 +71,81 @@ static void func0f004c6c(void);
static f32 func0f0053d0(s32 roomnum1, struct coord *pos1, s32 portalnum1, s32 roomnum2, struct coord *pos2, s32 portalnum2, f32 *arg6);
static void func0f005bb0(void);
static s32 func0f177a54(u8 *arg0, s32 arg1, u8 *arg2, s32 arg3)
{
s32 i = 0;
s32 v1 = 0;
s32 t0 = 0;
for (; i < arg1; i++) {
s32 index = i * arg3;
if (arg0[index] != 0) {
u8 *ptr = &arg0[index];
if (i != 0 && ptr[-arg3] == 0) {
arg2[v1++] = 0;
if (t0 == 255) {
arg2[v1++] = 200;
arg2[v1++] = 0;
t0 -= 200;
} else {
while (t0 > 255) {
arg2[v1++] = 255;
t0 -= 255;
}
}
arg2[v1++] = t0;
t0 = 0;
}
arg2[v1++] = arg0[index];
} else {
t0++;
}
}
arg2[v1++] = 0;
arg2[v1++] = 0;
return v1;
}
static s32 func0f177c8c(u8 *arg0, s32 *arg1, s32 *arg2)
{
s32 result;
if (*arg1 == 0) {
*arg2 = -1;
}
while (arg0[*arg1] == 0) {
*arg1 += 1;
if (arg0[*arg1]) {
while (arg0[*arg1] == 255) {
*arg2 += 255;
*arg1 += 1;
}
*arg2 += arg0[*arg1];
*arg1 += 1;
} else {
return -1;
}
}
*arg2 += 1;
result = arg0[*arg1];
*arg1 += 1;
return result;
}
static u32 func0f000920(s32 portalnum1, s32 portalnum2)
{
if (portalnum1 != portalnum2) {
@@ -505,11 +580,11 @@ void func0f001c0c(void)
return;
}
table1size = align16(g_Vars.roomcount * 4);
table2size = align16(g_NumPortals * 4);
table3size = align16(g_Vars.roomcount * 4);
table4size = align16((u32)var8009cae0 * (u32)var8009cae0);
sp68 = align16(g_Vars.roomcount * 8);
table1size = ALIGN16(g_Vars.roomcount * 4);
table2size = ALIGN16(g_NumPortals * 4);
table3size = ALIGN16(g_Vars.roomcount * 4);
table4size = ALIGN16((u32)var8009cae0 * (u32)var8009cae0);
sp68 = ALIGN16(g_Vars.roomcount * 8);
mempGetStageFree();
@@ -549,17 +624,17 @@ void func0f001c0c(void)
for (i = 1, table3size = 0; i < g_Vars.roomcount; i++) {
sp44[i] = func0f177a54((void *)(i * var8009cae0 + sp48), g_Vars.roomcount, (void *)(&s5[i * var8009cae0]), 1);
table3size += align4(sp44[i]);
table3size += ALIGN4(sp44[i]);
}
ptr = mempAlloc(align16(table3size), MEMPOOL_STAGE);
ptr = mempAlloc(ALIGN16(table3size), MEMPOOL_STAGE);
sp68 += align16(table3size);
sp68 += ALIGN16(table3size);
sp54 = 0;
for (i = 1; i < g_Vars.roomcount; i++) {
s32 size = align4(sp44[i]);
s32 size = ALIGN4(sp44[i]);
var80061420[i].unk00 = ptr;
@@ -576,17 +651,15 @@ void func0f001c0c(void)
for (i = 1; i < g_Vars.roomcount; i++) {
sp44[i] = func0f177a54((void *)(sp48 + i), g_Vars.roomcount, (void *)(&s5[i * var8009cae0]), var8009cae0);
table3size += align4(sp44[i]);
table3size += ALIGN4(sp44[i]);
}
ptr = mempAlloc(align16(table3size), MEMPOOL_STAGE);
align16(table3size);
ptr = mempAlloc(ALIGN16(table3size), MEMPOOL_STAGE);
for (i = 1; i < g_Vars.roomcount; i++) {
var80061420[i].unk04 = ptr;
ptr += align4(sp44[i]);
ptr += ALIGN4(sp44[i]);
for (j = 0; j < sp44[i]; j++) {
var80061420[i].unk04[j] = *(&s5[i * var8009cae0] + j);
@@ -791,7 +864,7 @@ void func0f002a98(void)
{
s32 i;
var8009cae0 = align4(g_Vars.roomcount);
var8009cae0 = ALIGN4(g_Vars.roomcount);
var80061458 = 0;
g_Vars.remakewallhitvtx = 0;
@@ -1540,11 +1613,11 @@ static void func0f004c6c(void)
u8 *ptr;
u8 *backupptr;
sp44 = align16(0x2000);
sp40 = align16(g_NumPortals * 4);
sp3c = align16(g_NumPortals * 0xc);
sp38 = align16(g_NumPortals * 4);
sp34 = align16(g_NumPortals * 2);
sp44 = ALIGN16(0x2000);
sp40 = ALIGN16(g_NumPortals * 4);
sp3c = ALIGN16(g_NumPortals * 0xc);
sp38 = ALIGN16(g_NumPortals * 4);
sp34 = ALIGN16(g_NumPortals * 2);
for (i = 0, s4 = sp38; i < g_NumPortals; i++) {
if (i != 0) {
@@ -1552,8 +1625,8 @@ static void func0f004c6c(void)
}
}
s4 = align16(s4);
ptr = mempAlloc(align16(s4), MEMPOOL_STAGE);
s4 = ALIGN16(s4);
ptr = mempAlloc(ALIGN16(s4), MEMPOOL_STAGE);
var80061430 = (void *)ptr;
ptr += sp38;
@@ -1573,8 +1646,6 @@ static void func0f004c6c(void)
s4 += sp38;
s4 += g_NumPortals * sp34;
align16((s32)s4);
ptr = mempGetNextStageAllocation();
var8009cad0 = (void *)ptr;
ptr += sp44;
+11
View File
@@ -610,6 +610,17 @@ static bool explosionOverlapsProp(struct explosion *exp, struct prop *prop, stru
return result;
}
static bool func0f1773c8(struct coord *a, struct coord *b)
{
if (a->x < b->x && -b->x < a->x
&& a->y < b->y && -b->y < a->y
&& a->z < b->z && -b->z < a->z) {
return true;
}
return false;
}
static void explosionInflictDamage(struct prop *expprop)
{
s32 stack;
+3 -3
View File
@@ -34,7 +34,7 @@ void func0f110bf8(void)
for (i = 0; i < 4; i++) {
if (g_FileLists[i] != NULL) {
memaFree(g_FileLists[i], align16(sizeof(struct filelist)));
memaFree(g_FileLists[i], ALIGN16(sizeof(struct filelist)));
g_FileLists[i] = NULL;
}
}
@@ -46,8 +46,8 @@ void func0f110bf8(void)
void filelistCreate(s32 listnum, u8 filetype)
{
if (g_FileLists[listnum] == NULL) {
bgGarbageCollectRooms(align16(sizeof(struct filelist)), 1);
g_FileLists[listnum] = memaAlloc(align16(sizeof(struct filelist)));
bgGarbageCollectRooms(ALIGN16(sizeof(struct filelist)), 1);
g_FileLists[listnum] = memaAlloc(ALIGN16(sizeof(struct filelist)));
}
g_FileLists[listnum]->timeuntilupdate = 1;
+3 -3
View File
@@ -405,7 +405,7 @@ static void func0f10898c(void)
case FILEOP_READ_GAME:
case FILEOP_READ_MPSETUP:
case FILEOP_READ_MPPLAYER:
memaFree(g_Menus[g_MpPlayerNum].fm.unke44, align16(g_FileTypeSizes[g_Menus[g_MpPlayerNum].fm.filetypeplusone - 1]));
memaFree(g_Menus[g_MpPlayerNum].fm.unke44, ALIGN16(g_FileTypeSizes[g_Menus[g_MpPlayerNum].fm.filetypeplusone - 1]));
break;
case FILEOP_LOAD_GAME:
case FILEOP_LOAD_MPPLAYER:
@@ -430,7 +430,7 @@ static void filemgrHandleSuccess(void)
case FILEOP_WRITE_MPSETUP:
case FILEOP_WRITE_MPPLAYER:
memaFree(g_Menus[g_MpPlayerNum].fm.unke44,
align16(g_FileTypeSizes[g_Menus[g_MpPlayerNum].fm.filetypeplusone - 1]));
ALIGN16(g_FileTypeSizes[g_Menus[g_MpPlayerNum].fm.filetypeplusone - 1]));
break;
case FILEOP_LOAD_GAME:
g_Vars.bossfileid = g_Menus[g_MpPlayerNum].fm.fileid;
@@ -1023,7 +1023,7 @@ static void func0f1097d0(s32 device)
var800a21e8.fileid = g_FileLists[0]->deviceguids[device].fileid;
var800a21e8.deviceserial = g_FileLists[0]->deviceguids[device].deviceserial;
thing = memaAlloc(align16(g_FileTypeSizes[g_Menus[g_MpPlayerNum].fm.filetypeplusone - 1]));
thing = memaAlloc(ALIGN16(g_FileTypeSizes[g_Menus[g_MpPlayerNum].fm.filetypeplusone - 1]));
if (thing) {
filemgrSaveOrLoad(&g_FilemgrFileToCopy, g_Menus[g_MpPlayerNum].fm.filetypeplusone + 103, (s32) thing);
-290
View File
@@ -1,290 +0,0 @@
#include <ultra64.h>
#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,
};
static 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;
}
}
}
-1
View File
@@ -373,7 +373,6 @@ void lvReset(s32 stagenum)
} else {
s32 i;
utilsReset();
casingsReset();
for (i = 0; i < PLAYERCOUNT(); i++) {
+1 -1
View File
@@ -1185,7 +1185,7 @@ void menugfxFreeParticles(void)
u32 menugfxGetParticleArraySize(void)
{
return align16(NUM_SUCCESS_PARTICLES * sizeof(struct coord));
return ALIGN16(NUM_SUCCESS_PARTICLES * sizeof(struct coord));
}
/**
+20 -7
View File
@@ -5,7 +5,6 @@
#include "game/camdraw.h"
#include "game/filelist.h"
#include "game/menu.h"
#include "game/crc.h"
#include "game/gamefile.h"
#include "game/pak.h"
#include "game/utils.h"
@@ -186,7 +185,7 @@ static u32 pakGetBlockSize(s8 device)
static u32 pakAlign(s8 device, u32 size)
{
return pakGetBlockSize(device) == 0x20 ? align32(size) : align16(size);
return pakGetBlockSize(device) == 0x20 ? ALIGN32(size) : ALIGN16(size);
}
static s32 pakGetAlignedFileLenByBodyLen(s8 device, u32 bodylen)
@@ -970,7 +969,24 @@ void paksInit(void)
static void pakCalculateChecksum(u8 *start, u8 *end, u16 *checksum)
{
crcCalculateU16Pair(start, end, checksum);
u8 *ptr;
u32 salt = 0;
u64 seed = 0x8f809f473108b3c1;
u32 sum1 = 0;
u32 sum2 = 0;
for (ptr = start; ptr < end; ptr++, salt += 7) {
seed += *ptr << (salt & 0x0f);
sum1 ^= rngRotateSeed(&seed);
}
for (ptr = end - 1; ptr >= start; ptr--, salt += 3) {
seed += *ptr << (salt & 0x0f);
sum2 ^= rngRotateSeed(&seed);
}
checksum[0] = sum1 & 0xffff;
checksum[1] = sum2 & 0xffff;
}
static s32 _pakReadBodyAtGuid(s8 device, s32 fileid, u8 *body, s32 arg3)
@@ -1663,10 +1679,7 @@ static void pak0f11a32c(s8 device, u8 arg1)
if ((g_Paks[device].unk014 & 1) && g_Paks[device].headercache == NULL) {
g_Paks[device].headercachecount = 0;
g_Paks[device].headercache = mempAlloc(align32(sizeof(struct pakheadercache) * MAX_HEADERCACHE_ENTRIES), MEMPOOL_PERMANENT);
// Perhaps using the strings at var7f1b4318 through var7f1b43ac?
align32(sizeof(struct pakheadercache) * MAX_HEADERCACHE_ENTRIES);
g_Paks[device].headercache = mempAlloc(ALIGN32(sizeof(struct pakheadercache) * MAX_HEADERCACHE_ENTRIES), MEMPOOL_PERMANENT);
}
}
}
+1 -1
View File
@@ -71,7 +71,7 @@ Gfx *func0f0d479c(Gfx *gdl)
gSPMatrix(gdl++, osVirtualToPhysical(mtx1), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
if (var80070f10 == NULL) {
u32 size = align16(sizeof(Vp));
u32 size = ALIGN16(sizeof(Vp));
var80070f10 = gfxAllocate(size);
if (var80070f10 != NULL) {
+9
View File
@@ -45,6 +45,15 @@ static s32 splatsCreate(s32 qty, f32 arg1, struct prop *prop, struct shotdata *s
static bool splat0f149274(f32 arg0, struct prop *prop, struct shotdata *shotdata, f32 arg3, bool isskedar, s32 arg5, s32 arg6, struct chrdata *chr, s32 arg8);
static void splat0f14986c(struct splatdata *splatdata);
static f32 coordsGetDistance(struct coord *a, struct coord *b)
{
f32 xdiff = b->x - a->x;
f32 ydiff = b->y - a->y;
f32 zdiff = b->z - a->z;
return sqrtf(xdiff * xdiff + ydiff * ydiff + zdiff * zdiff);
}
void splatTickChr(struct prop *prop)
{
struct chrdata *chr = prop->chr;
+4 -179
View File
@@ -7,86 +7,15 @@
#include "data.h"
#include "types.h"
void *var800ac0d0;
u8 *var800ac0e8[4];
u32 var800ac0f8[4];
f32 var800845d4 = 0.00001f;
struct coord var800845dc = {0, 0, 0};
struct coord var800845f4 = {0, 0, 1};
u8 *var80084610 = NULL;
u8 *var80084614 = NULL;
u8 *var80084618 = NULL;
u32 align4(u32 arg0)
{
if (arg0 & 3) {
arg0 = (arg0 & 0xfffffffc) + 4;
}
return arg0;
}
u32 align16(u32 arg0)
{
if (arg0 & 0xf) {
arg0 = (arg0 & 0xfffffff0) + 0x10;
}
return arg0;
}
u32 align32(u32 arg0)
{
if (arg0 & 0x1f) {
arg0 = (arg0 & 0xffffffe0) + 0x20;
}
return arg0;
}
void utilsInit(void)
{
s32 i;
u32 stack;
u32 slotssize = 0x1900;
u32 allocsize;
var800ac0d0 = mempAlloc(10000, MEMPOOL_8);
allocsize = align16(0x3900);
var800ac0e8[0] = mempAlloc(allocsize, MEMPOOL_8);
if (var800ac0e8[0] != NULL) {
for (i = 0; i < 4; i++) {
var800ac0e8[i] = var800ac0e8[0] + ((i * 100) << 4);
}
} else {
for (i = 0; i < 4; i++) {
var800ac0e8[i] = NULL;
}
}
var80084610 = var800ac0e8[0] + slotssize;
var80084618 = var800ac0e8[0] + allocsize - 1;
var80084614 = var80084610;
}
void func0f1770ac(struct coord *a, struct coord *b, struct coord *out)
{
out->x = a->y * b->z - a->z * b->y;
out->y = -(a->x * b->z - a->z * b->x);
out->z = a->x * b->y - a->y * b->x;
}
bool func0f177164(struct coord *arg0, struct coord *arg1)
{
f32 sqdist = arg0->x * arg0->x + arg0->y * arg0->y + arg0->z * arg0->z;
f32 mult;
if (sqdist < var800845d4) {
*arg0 = var800845f4;
if (sqdist < 0.00001f) {
arg0->x = 0;
arg0->y = 0;
arg0->z = 1;
return false;
}
@@ -100,110 +29,6 @@ bool func0f177164(struct coord *arg0, struct coord *arg1)
return true;
}
bool func0f1773c8(struct coord *a, struct coord *b)
{
if (a->x < b->x && -b->x < a->x
&& a->y < b->y && -b->y < a->y
&& a->z < b->z && -b->z < a->z) {
return true;
}
return false;
}
f32 coordsGetDistance(struct coord *a, struct coord *b)
{
f32 xdiff = b->x - a->x;
f32 ydiff = b->y - a->y;
f32 zdiff = b->z - a->z;
return sqrtf(xdiff * xdiff + ydiff * ydiff + zdiff * zdiff);
}
void utilsReset(void)
{
s32 i;
for (i = 0; i < 4; i++) {
var800ac0f8[i] = 0;
}
}
s32 func0f177a54(u8 *arg0, s32 arg1, u8 *arg2, s32 arg3)
{
s32 i = 0;
s32 v1 = 0;
s32 t0 = 0;
for (; i < arg1; i++) {
s32 index = i * arg3;
if (arg0[index] != 0) {
u8 *ptr = &arg0[index];
if (i != 0 && ptr[-arg3] == 0) {
arg2[v1++] = 0;
if (t0 == 255) {
arg2[v1++] = 200;
arg2[v1++] = 0;
t0 -= 200;
} else {
while (t0 > 255) {
arg2[v1++] = 255;
t0 -= 255;
}
}
arg2[v1++] = t0;
t0 = 0;
}
arg2[v1++] = arg0[index];
} else {
t0++;
}
}
arg2[v1++] = 0;
arg2[v1++] = 0;
return v1;
}
s32 func0f177c8c(u8 *arg0, s32 *arg1, s32 *arg2)
{
s32 result;
if (*arg1 == 0) {
*arg2 = -1;
}
while (arg0[*arg1] == 0) {
*arg1 += 1;
if (arg0[*arg1]) {
while (arg0[*arg1] == 255) {
*arg2 += 255;
*arg1 += 1;
}
*arg2 += arg0[*arg1];
*arg1 += 1;
} else {
return -1;
}
}
*arg2 += 1;
result = arg0[*arg1];
*arg1 += 1;
return result;
}
/**
* randomfrac() returns a random float in the range 0.0 to 1.0.
*
+13 -6
View File
@@ -540,9 +540,9 @@ void wallhitsTick(void)
wallhit->vertices2 = gfxAllocateVertices(4);
midx = var800845dc.x; \
midy = var800845dc.y; \
midz = var800845dc.z;
midx = 0;
midy = 0;
midz = 0;
// Copy the vertices into a float array
for (j = 0; j < 4; j++) {
@@ -647,6 +647,13 @@ void wallhitCreate(struct coord *relpos, struct coord *arg1, struct coord *arg2,
0, 0, 0, xlu);
}
static void func0f1770ac(struct coord *a, struct coord *b, struct coord *out)
{
out->x = a->y * b->z - a->z * b->y;
out->y = -(a->x * b->z - a->z * b->x);
out->z = a->x * b->y - a->y * b->x;
}
void wallhitCreateWith20Args(struct coord *relpos, struct coord *arg1, struct coord *arg2, s16 arg3[3],
s16 arg4[3], s16 texnum, s16 room, struct prop *objprop,
struct prop *chrprop, s8 mtxindex, s8 arg10, struct chrdata *chr,
@@ -785,9 +792,9 @@ void wallhitCreateWith20Args(struct coord *relpos, struct coord *arg1, struct co
sp1ac.f[1] = relpos->y;
sp1ac.f[2] = relpos->z;
xiszero = ABS(arg1->x) < var800845d4 ? true : false;
yiszero = ABS(arg1->y) < var800845d4 ? true : false;
ziszero = ABS(arg1->z) < var800845d4 ? true : false;
xiszero = ABS(arg1->x) < 0.00001f ? true : false;
yiszero = ABS(arg1->y) < 0.00001f ? true : false;
ziszero = ABS(arg1->z) < 0.00001f ? true : false;
if (xiszero && ziszero) {
sp1f4.x = -1.0f;
+1
View File
@@ -26,6 +26,7 @@
#define ALIGN4(val) ((((val) + 0x3) | 0x3) ^ 0x3)
#define ALIGN8(val) ((((val) + 0x7) | 0x7) ^ 0x7)
#define ALIGN16(val) ((((val) + 0xf) | 0xf) ^ 0xf)
#define ALIGN32(val) ((((val) + 0x1f) | 0x1f) ^ 0x1f)
#define ALIGN64(val) (((((u32)(val)) + 0x3f) | 0x3f) ^ 0x3f)
#define ARRAYCOUNT(a) (s32)(sizeof(a) / sizeof(a[0]))
#define CHRRACE(chr) (chr ? chr->race : RACE_HUMAN)
-1
View File
@@ -492,7 +492,6 @@ extern s32 g_LanguageId;
#endif
extern struct surfacetype *g_SurfaceTypes[15];
extern u16 *var800844f0;
extern f32 var800845d4;
extern struct coord var800845dc;
extern struct menudialogdef g_2PMissionInventoryHMenuDialog;
extern struct menudialogdef g_2PMissionInventoryVMenuDialog;
-10
View File
@@ -1,10 +0,0 @@
#ifndef IN_GAME_CRC_H
#define IN_GAME_CRC_H
#include <ultra64.h>
#include "data.h"
#include "types.h"
void crcCalculateU32Pair(u8 *start, u8 *end, u32 *checksum);
void crcCalculateU16Pair(u8 *start, u8 *end, u16 *checksum);
#endif
-9
View File
@@ -1,9 +0,0 @@
#ifndef IN_GAME_GFXREPLACE_H
#define IN_GAME_GFXREPLACE_H
#include <ultra64.h>
#include "data.h"
#include "types.h"
void gfxReplaceGbiCommandsRecursively(struct roomblock *arg0, s32 type);
#endif
-14
View File
@@ -4,20 +4,6 @@
#include "data.h"
#include "types.h"
void func0f176d70(s32 arg0);
u32 align4(u32 arg0);
u32 align16(u32 arg0);
u32 align32(u32 arg0);
void utilsInit(void);
void func0f1770ac(struct coord *a, struct coord *b, struct coord *out);
bool func0f177164(struct coord *arg0, struct coord *arg1);
bool func0f1773c8(struct coord *a, struct coord *b);
f32 coordsGetDistance(struct coord *a, struct coord *b);
f32 func0f1776cc(struct coord *a, struct coord *b, struct coord *c);
bool func0f17776c(struct coord *a, struct coord *b, f32 mult, struct coord *out);
void utilsReset(void);
s32 func0f177a54(u8 *arg0, s32 arg1, u8 *arg2, s32 arg3);
s32 func0f177bb4(u8 *arg0, s32 *arg1, s32 *arg2);
s32 func0f177c8c(u8 *arg0, s32 *arg1, s32 *roomnum);
#endif
-3
View File
@@ -4,9 +4,6 @@
#include "data.h"
#include "types.h"
f32 func0f1577f0(f32 arg0[2], f32 arg1[2], f32 arg2[2], f32 arg3[2]);
f32 func0f1579cc(struct widthxz *arg0, struct xz *arg1, struct xz *arg2, struct xz *arg3);
f32 cd00024e40(void);
void cdGetEdge(struct coord *pos1, struct coord *pos2);
f32 cd00024e98(void);
+166
View File
@@ -51,6 +51,172 @@ s32 var8005f030 = 0;
bool g_CdHasSavedBlock = false;
s32 var8005f038 = 0;
static f32 func0f1577f0(f32 arg0[2], f32 arg1[2], f32 arg2[2], f32 arg3[2])
{
f32 mult1 = arg2[1] - arg3[1];
f32 mult2 = arg3[0] - arg2[0];
f32 a = (arg2[1] - arg0[1]) * mult2 + (arg2[0] - arg0[0]) * mult1;
f32 b = (arg1[1] - arg0[1]) * mult2 + (arg1[0] - arg0[0]) * mult1;
if (b == 0.0f) {
return 1.0f;
}
a /= b;
if (a < 0.0f || a > 1.0f) {
return 1.0f;
}
return a;
}
static f32 func0f1578c8(struct widthxz *arg0, struct xz *arg1, struct xz *arg2)
{
f32 value2;
f32 value1;
f32 sp24;
f32 mult1;
f32 mult2;
mult1 = arg2->x - arg0->x;
mult2 = arg2->z - arg0->z;
value1 = mult2 * arg1->x - mult1 * arg1->z;
value2 = mult1 * arg1->x + mult2 * arg1->z;
sp24 = (arg0->width - value1) * (arg0->width + value1);
if (sp24 < 0.0f) {
return MAXFLOAT;
}
value2 -= sqrtf(sp24);
if (value2 < 0.0f) {
if (value2 * value2 + value1 * value1 <= arg0->width * arg0->width) {
return 0.0f;
}
return MAXFLOAT;
}
return value2;
}
static f32 func0f1579cc(struct widthxz *arg0, struct xz *arg1, struct xz *arg2, struct xz *arg3)
{
f32 spac;
f32 spa8;
struct xz spa0;
f32 sp9c;
f32 sp98;
f32 sp94;
f32 sp90;
f32 sp8c;
f32 sp88;
f32 sp84;
f32 sp80;
f32 sp7c;
f32 sp78;
f32 sp74;
f32 sp70;
f32 sp6c;
f32 sp68;
f32 sp64;
f32 sp60;
f32 sp5c;
f32 sp58;
f32 sp54;
spac = sqrtf(arg3->x * arg3->x + arg3->z * arg3->z);
if (spac == 0.0f) {
return 1.0f;
}
spa0.x = arg3->x * (1.0f / spac);
spa0.z = arg3->z * (1.0f / spac);
sp98 = arg2->x - arg1->x;
sp9c = arg2->z - arg1->z;
sp94 = sqrtf(sp98 * sp98 + sp9c * sp9c);
if (sp94 == 0.0f) {
goto handlezero;
}
sp90 = 1.0f / sp94;
sp88 = sp9c * sp90;
sp8c = -sp98 * sp90;
sp84 = arg0->width * sp88;
sp80 = arg0->width * sp8c;
if (sp84 * (arg0->x - arg1->x) + sp80 * (arg0->z - arg1->z) < 0.0f) {
sp84 = -sp84;
sp80 = -sp80;
}
sp78 = arg1->x + sp84;
sp7c = arg1->z + sp80;
sp70 = arg2->x + sp84;
sp74 = arg2->z + sp80;
sp68 = (arg3->z * sp78) - (sp7c * arg3->x);
sp6c = (arg0->x * arg3->z) - (arg0->z * arg3->x);
sp64 = (arg3->z * sp70) - (sp74 * arg3->x);
if (sp64 < sp68) {
struct xz *tmp;
spa8 = sp68;
sp68 = sp64;
sp64 = spa8;
tmp = arg1;
arg1 = arg2;
arg2 = tmp;
sp88 = -sp88;
sp8c = -sp8c;
}
if (sp64 == sp68) {
sp60 = func0f1578c8(arg0, &spa0, arg1);
sp5c = func0f1578c8(arg0, &spa0, arg2);
if (sp5c < sp60) {
sp60 = sp5c;
}
} else if (sp64 < sp6c) {
handlezero:
sp60 = func0f1578c8(arg0, &spa0, arg2);
} else if (sp6c < sp68) {
sp60 = func0f1578c8(arg0, &spa0, arg1);
} else {
sp58 = sp88 * (arg0->x - arg1->x) + sp8c * (arg0->z - arg1->z);
sp54 = sp88 * (arg0->x + arg3->x - arg1->x) + sp8c * (arg0->z + arg3->z - arg1->z);
if (sp58 == sp54) {
return 1.0f;
}
sp60 = (sp58 - arg0->width) * spac / (sp58 - sp54);
}
if (spac < sp60) {
return 1.0f;
}
if (sp60 < 0.0f) {
return 0.0f;
}
return (f32) sp60 * (1.0f / spac);
}
f32 cd00024e40(void)
{
return var8009a8f0;
-1
View File
@@ -354,7 +354,6 @@ static void mainInit(void)
mempResetPool(MEMPOOL_PERMANENT);
challengesInit();
utilsInit();
texInit();
lvInit();
cheatsInit();