mirror of
https://github.com/HarbourMasters/Starship.git
synced 2025-02-02 16:23:57 +03:00
improve ground
This commit is contained in:
parent
1924a4eeed
commit
a144f44d5e
@ -501,7 +501,7 @@ void Background_DrawBackdrop(void) {
|
||||
|
||||
if (skipInterpolation) {
|
||||
// @port Skip interpolation
|
||||
FrameInterpolation_ShouldInterpolateFrame(false);
|
||||
FrameInterpolation_ShouldInterpolateFrame(true);
|
||||
} else {
|
||||
// @port Pop the transform id.
|
||||
FrameInterpolation_RecordCloseChild();
|
||||
@ -557,7 +557,7 @@ void Background_DrawBackdrop(void) {
|
||||
|
||||
if (skipInterpolation) {
|
||||
// @port Skip interpolation
|
||||
FrameInterpolation_ShouldInterpolateFrame(false);
|
||||
FrameInterpolation_ShouldInterpolateFrame(true);
|
||||
} else {
|
||||
// @port Pop the transform id.
|
||||
FrameInterpolation_RecordCloseChild();
|
||||
@ -658,7 +658,7 @@ void Background_DrawBackdrop(void) {
|
||||
}
|
||||
if (skipInterpolation) {
|
||||
// @port Skip interpolation
|
||||
FrameInterpolation_ShouldInterpolateFrame(false);
|
||||
FrameInterpolation_ShouldInterpolateFrame(true);
|
||||
} else {
|
||||
// @port Pop the transform id.
|
||||
FrameInterpolation_RecordCloseChild();
|
||||
@ -722,7 +722,6 @@ void Background_DrawBackdrop(void) {
|
||||
sp13C = Math_ModF(sp13C, 7280.0f);
|
||||
|
||||
f32 corneriaCamYawDeg = Math_RadToDeg(gPlayer[0].camYaw);
|
||||
|
||||
if (gLevelMode == LEVELMODE_ON_RAILS) {
|
||||
if (corneriaCamYawDeg < 180.0f) {
|
||||
sp13C = -(7280.0f - sp13C);
|
||||
@ -746,7 +745,7 @@ void Background_DrawBackdrop(void) {
|
||||
|
||||
// Render the textures across a wider range to cover the screen
|
||||
for (int i = 0; i < 6; i++) {
|
||||
if (skipInterpolation) {
|
||||
if (skipInterpolation) {
|
||||
// @port Skip interpolation
|
||||
FrameInterpolation_ShouldInterpolateFrame(false);
|
||||
} else {
|
||||
@ -772,7 +771,7 @@ void Background_DrawBackdrop(void) {
|
||||
|
||||
if (skipInterpolation) {
|
||||
// @port Skip interpolation
|
||||
FrameInterpolation_ShouldInterpolateFrame(false);
|
||||
FrameInterpolation_ShouldInterpolateFrame(true);
|
||||
} else {
|
||||
// @port Pop the transform id.
|
||||
FrameInterpolation_RecordCloseChild();
|
||||
@ -1127,6 +1126,11 @@ Vtx dynaFloor1Vtx[17 * 17];
|
||||
Vtx dynaFloor2Vtx[17 * 17];
|
||||
#endif
|
||||
|
||||
static u8 skipInterpolationGround = 0;
|
||||
static u8 skipInterpolationGround2 = 0;
|
||||
static f32 prevPlayerPath = 0.0f;
|
||||
static f32 prevPlayerPath2 = 0.0f;
|
||||
|
||||
void Background_DrawGround(void) {
|
||||
f32 sp1D4;
|
||||
s32 i;
|
||||
@ -1651,22 +1655,42 @@ void Background_DrawGround(void) {
|
||||
RCP_SetupDL_20(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(sGroundPositions360x_FIX); i++) {
|
||||
Matrix_Push(&gGfxMatrix);
|
||||
Matrix_Translate(gGfxMatrix, sGroundPositions360x_FIX[i], 0.0f, sGroundPositions360z_FIX[i],
|
||||
MTXF_APPLY);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
if (gCurrentLevel == LEVEL_FORTUNA) {
|
||||
gSPDisplayList(gMasterDisp++, D_FO_6001360);
|
||||
} else if (gCurrentLevel == LEVEL_KATINA) {
|
||||
gSPDisplayList(gMasterDisp++, D_KA_6009250);
|
||||
} else if (gCurrentLevel == LEVEL_BOLSE) {
|
||||
gSPDisplayList(gMasterDisp++, D_BO_600A810);
|
||||
} else if (gCurrentLevel == LEVEL_VENOM_2) {
|
||||
gSPDisplayList(gMasterDisp++, D_VE2_6010700);
|
||||
skipInterpolationGround = (fabsf(gPlayer[gPlayerNum].xPath - prevPlayerPath) > 12000.0f / 2.0f);
|
||||
skipInterpolationGround2 = prevPlayerPath2 != sp1D4;
|
||||
|
||||
// if (skipInterpolationGround || skipInterpolationGround2) {
|
||||
// printf(" Ground interpolation Skipped! \n");
|
||||
// }
|
||||
|
||||
{
|
||||
u32 skipInfo = skipInterpolationGround << 8 | skipInterpolationGround2 << 16;
|
||||
|
||||
printf("skipInfo: %x \n", skipInfo);
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(sGroundPositions360x_FIX); i++) {
|
||||
FrameInterpolation_RecordOpenChild("Ground", i | skipInfo);
|
||||
FrameInterpolation_RecordMarker(__FILE__, __LINE__);
|
||||
|
||||
Matrix_Push(&gGfxMatrix);
|
||||
Matrix_Translate(gGfxMatrix, sGroundPositions360x_FIX[i], 0.0f, sGroundPositions360z_FIX[i],
|
||||
MTXF_APPLY);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
if (gCurrentLevel == LEVEL_FORTUNA) {
|
||||
gSPDisplayList(gMasterDisp++, D_FO_6001360);
|
||||
} else if (gCurrentLevel == LEVEL_KATINA) {
|
||||
gSPDisplayList(gMasterDisp++, D_KA_6009250);
|
||||
} else if (gCurrentLevel == LEVEL_BOLSE) {
|
||||
gSPDisplayList(gMasterDisp++, D_BO_600A810);
|
||||
} else if (gCurrentLevel == LEVEL_VENOM_2) {
|
||||
gSPDisplayList(gMasterDisp++, D_VE2_6010700);
|
||||
}
|
||||
Matrix_Pop(&gGfxMatrix);
|
||||
|
||||
FrameInterpolation_RecordCloseChild();
|
||||
}
|
||||
Matrix_Pop(&gGfxMatrix);
|
||||
}
|
||||
prevPlayerPath = gPlayer[gPlayerNum].xPath;
|
||||
prevPlayerPath2 = sp1D4;
|
||||
break;
|
||||
|
||||
case LEVEL_VERSUS:
|
||||
|
@ -7,6 +7,9 @@
|
||||
#include "assets/ast_sector_z.h"
|
||||
#include "port/interpolation/FrameInterpolation.h"
|
||||
|
||||
// f32 path1 = 0.0f;
|
||||
// f32 path2 = 0.0f;
|
||||
|
||||
Vec3f D_display_801613B0[4];
|
||||
Vec3f D_display_801613E0[4];
|
||||
s16 gReflectY;
|
||||
@ -2068,6 +2071,7 @@ void Display_Update(void) {
|
||||
|
||||
if (gControllerPress[0].button & L_TRIG) {
|
||||
pl->state_1C8 = PLAYERSTATE_1C8_LEVEL_COMPLETE;
|
||||
gMissionStatus = MISSION_ACCOMPLISHED;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2102,22 +2106,15 @@ void Display_Update(void) {
|
||||
gLaserStrength[0] = 2;
|
||||
}
|
||||
Hit64_Main();
|
||||
// background testing
|
||||
// ground testing
|
||||
#if 0
|
||||
RCP_SetupDL(&gMasterDisp, SETUPDL_83);
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255);
|
||||
if (gTestVarF > 0.0f) {
|
||||
Graphics_DisplaySmallText(10, 220, 1.0f, 1.0f, "TEST:");
|
||||
} else {
|
||||
Graphics_DisplaySmallText(10, 220, 1.0f, 1.0f, "TESTNEG:");
|
||||
}
|
||||
Graphics_DisplaySmallNumber(80, 220, (int) ABS(gTestVarF));
|
||||
|
||||
if (gControllerPress[0].button & Z_TRIG) {
|
||||
gTestVarF -= 10;
|
||||
} else if (gControllerPress[0].button & R_TRIG) {
|
||||
gTestVarF += 10;
|
||||
}
|
||||
|
||||
Graphics_DisplaySmallText(10, 210, 1.0f, 1.0f, "PATH1:");
|
||||
Graphics_DisplaySmallNumber(60, 210, (int) ABS(path1));
|
||||
Graphics_DisplaySmallText(10, 220, 1.0f, 1.0f, "PATH2:");
|
||||
Graphics_DisplaySmallNumber(60, 220, (int) ABS(path2));
|
||||
if (path1 < 0.0f) Graphics_DisplaySmallText(110, 210, 1.0f, 1.0f, "NEG:");
|
||||
if (path2 < 0.0f) Graphics_DisplaySmallText(110, 220, 1.0f, 1.0f, "NEG:");
|
||||
#endif
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user