summaryrefslogtreecommitdiff
path: root/src/engine
diff options
context:
space:
mode:
authorSonic Dreamcaster <alejandro.asenjo88@gmail.com>2024-11-20 21:15:56 -0300
committerSonic Dreamcaster <alejandro.asenjo88@gmail.com>2024-11-20 21:15:56 -0300
commitcf8aae031697215300db0be55901045c6c45ef6d (patch)
treeeedad85e2784814d5fa3da3eebaea0c0cbbe8ffa /src/engine
parent009d8eef7cc4a3d43d5637f4727f7dd5c4a10126 (diff)
Point filtered reticles :)
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/fox_display.c4
-rw-r--r--src/engine/fox_rcp_setup.c29
2 files changed, 31 insertions, 2 deletions
diff --git a/src/engine/fox_display.c b/src/engine/fox_display.c
index 8a255b01..68593af8 100644
--- a/src/engine/fox_display.c
+++ b/src/engine/fox_display.c
@@ -779,7 +779,7 @@ void Display_Reticle(Player* player) {
Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, translate->x, translate->y, translate->z, MTXF_APPLY);
if (gChargeTimers[player->num] >= 20) {
- RCP_SetupDL(&gMasterDisp, SETUPDL_63);
+ RCP_SetupDL(&gMasterDisp, SETUPDL_63_POINT);
if (i == 1) {
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 0, 0, 255);
gDPSetEnvColor(gMasterDisp++, 255, 0, 0, 255);
@@ -789,7 +789,7 @@ void Display_Reticle(Player* player) {
gDPSetEnvColor(gMasterDisp++, 255, 255, 0, 255);
}
} else {
- RCP_SetupDL_36();
+ gSPDisplayList(gMasterDisp++, gRcpSetupDLs[SETUPDL_36_POINT]);
}
if (i == 1) {
diff --git a/src/engine/fox_rcp_setup.c b/src/engine/fox_rcp_setup.c
index f6c06835..51386a12 100644
--- a/src/engine/fox_rcp_setup.c
+++ b/src/engine/fox_rcp_setup.c
@@ -1266,6 +1266,35 @@ Gfx gRcpSetupDLs[][9] = {
gsSPEndDisplayList(),
},
{
+ /* SETUPDL_36_POINT */
+ gsDPPipeSync(),
+ gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN |
+ G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH),
+ gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
+ gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
+ gsSPSetGeometryMode(0),
+ gsSPSetOtherMode(G_SETOTHERMODE_L, G_MDSFT_ALPHACOMPARE, 3, G_AC_NONE | G_ZS_PIXEL),
+ gsDPSetRenderMode(G_RM_XLU_SURF, G_RM_XLU_SURF2),
+ gsSPSetOtherModeHi(G_AD_PATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_POINT | G_TT_NONE | G_TL_TILE |
+ G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE),
+ gsSPEndDisplayList(),
+ },
+ {
+ /* SETUPDL_63_POINT */
+ gsDPPipeSync(),
+ gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN |
+ G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH),
+ gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
+ gsDPSetCombineLERP(PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, ENVIRONMENT,
+ TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0),
+ gsSPSetGeometryMode(G_SHADE | G_SHADING_SMOOTH),
+ gsSPSetOtherMode(G_SETOTHERMODE_L, G_MDSFT_ALPHACOMPARE, 3, G_AC_NONE | G_ZS_PIXEL),
+ gsDPSetRenderMode(G_RM_CLD_SURF, G_RM_CLD_SURF2),
+ gsSPSetOtherModeHi(G_AD_PATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_POINT | G_TT_NONE | G_TL_TILE |
+ G_TD_CLAMP | G_TP_PERSP | G_CYC_1CYCLE | G_PM_NPRIMITIVE),
+ gsSPEndDisplayList(),
+ },
+ {
/* SETUPDL_75_POINT */
gsDPPipeSync(),
gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN |