mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-07-10 05:46:45 -04:00
Move functions from utils.c, collisionutils.c, crc.c and gfxreplace.c into the files where they're called
This commit is contained in:
@@ -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
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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
@@ -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;
|
||||
|
||||
@@ -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
@@ -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
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -373,7 +373,6 @@ void lvReset(s32 stagenum)
|
||||
} else {
|
||||
s32 i;
|
||||
|
||||
utilsReset();
|
||||
casingsReset();
|
||||
|
||||
for (i = 0; i < PLAYERCOUNT(); i++) {
|
||||
|
||||
+1
-1
@@ -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
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
@@ -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
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -354,7 +354,6 @@ static void mainInit(void)
|
||||
mempResetPool(MEMPOOL_PERMANENT);
|
||||
|
||||
challengesInit();
|
||||
utilsInit();
|
||||
texInit();
|
||||
lvInit();
|
||||
cheatsInit();
|
||||
|
||||
Reference in New Issue
Block a user