mirror of
https://github.com/DrBeef/Raze.git
synced 2025-01-31 21:20:39 +00:00
- Clean up chase cam backwards scaling since we're now using floats of the same scale.
This commit is contained in:
parent
3db6a38b4b
commit
fc8c0b80aa
11 changed files with 11 additions and 16 deletions
|
@ -37,12 +37,12 @@ IntRect viewport3d;
|
|||
|
||||
double cameradist, cameraclock;
|
||||
|
||||
bool calcChaseCamPos(DVector3& ppos, DCoreActor* act, sectortype** psect, DAngle ang, DAngle horiz, double const interpfrac)
|
||||
bool calcChaseCamPos(DVector3& ppos, DCoreActor* act, sectortype** psect, DAngle ang, DAngle horiz, double const interpfrac, double const backamp)
|
||||
{
|
||||
if (!*psect) return false;
|
||||
|
||||
// Calculate new pos to shoot backwards
|
||||
DVector3 npos = gi->chaseCamPos(ang, horiz);
|
||||
DVector3 npos = DVector3(-ang.ToVector(), horiz.Tan()) * backamp;
|
||||
|
||||
HitInfoBase hitinfo;
|
||||
auto bakcstat = act->spr.cstat;
|
||||
|
@ -78,7 +78,7 @@ bool calcChaseCamPos(DVector3& ppos, DCoreActor* act, sectortype** psect, DAngle
|
|||
{
|
||||
bakcstat = hitinfo.hitActor->spr.cstat;
|
||||
hitinfo.hitActor->spr.cstat &= ~(CSTAT_SPRITE_BLOCK | CSTAT_SPRITE_BLOCK_HITSCAN);
|
||||
calcChaseCamPos(ppos, act, psect, ang, horiz, interpfrac);
|
||||
calcChaseCamPos(ppos, act, psect, ang, horiz, interpfrac, backamp);
|
||||
hitinfo.hitActor->spr.cstat = bakcstat;
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -240,7 +240,7 @@ extern double cameradist, cameraclock;
|
|||
|
||||
void loaddefinitionsfile(const char* fn, bool cumulative = false, bool maingrp = false);
|
||||
|
||||
bool calcChaseCamPos(DVector3& ppos, DCoreActor* pspr, sectortype** psectnum, DAngle ang, DAngle horiz, double const interpfrac);
|
||||
bool calcChaseCamPos(DVector3& ppos, DCoreActor* pspr, sectortype** psectnum, DAngle ang, DAngle horiz, double const interpfrac, double const backamp);
|
||||
int getslopeval(sectortype* sect, const DVector3& pos, double bazez);
|
||||
bool cansee(const DVector3& start, sectortype* sect1, const DVector3& end, sectortype* sect2);
|
||||
double intersectSprite(DCoreActor* actor, const DVector3& start, const DVector3& direction, DVector3& result, double maxfactor);
|
||||
|
|
|
@ -115,7 +115,6 @@ struct GameInterface
|
|||
virtual void ToggleThirdPerson() { }
|
||||
virtual void SwitchCoopView() { Printf("Unsupported command\n"); }
|
||||
virtual void ToggleShowWeapon() { Printf("Unsupported command\n"); }
|
||||
virtual DVector3 chaseCamPos(DAngle ang, DAngle horiz) { return DVector3(0,0,0); }
|
||||
virtual void processSprites(tspriteArray& tsprites, const DVector3& view, DAngle viewang, double interpfrac) = 0;
|
||||
virtual void UpdateCameras(double smoothratio) {}
|
||||
virtual void EnterPortal(DCoreActor* viewer, int type) {}
|
||||
|
|
|
@ -139,7 +139,6 @@ struct GameInterface : public ::GameInterface
|
|||
void ToggleThirdPerson() override;
|
||||
void SwitchCoopView() override;
|
||||
void ToggleShowWeapon() override;
|
||||
DVector3 chaseCamPos(DAngle ang, DAngle horiz) { return DVector3(-ang.ToVector() * 80., horiz.Tan() * 80.); }
|
||||
void processSprites(tspriteArray& tsprites, const DVector3& view, DAngle viewang, double interpfrac) override;
|
||||
void EnterPortal(DCoreActor* viewer, int type) override;
|
||||
void LeavePortal(DCoreActor* viewer, int type) override;
|
||||
|
|
|
@ -529,7 +529,7 @@ static void SetupView(PLAYER* pPlayer, DVector3& cPos, DAngle& cA, DAngle& cH, s
|
|||
}
|
||||
else
|
||||
{
|
||||
calcChaseCamPos(cPos, pPlayer->actor, &pSector, cA, cH, interpfrac);
|
||||
calcChaseCamPos(cPos, pPlayer->actor, &pSector, cA, cH, interpfrac, 80.);
|
||||
}
|
||||
if (pSector != nullptr)
|
||||
CheckLink(cPos, &pSector);
|
||||
|
|
|
@ -55,7 +55,6 @@ struct GameInterface : public ::GameInterface
|
|||
void ToggleThirdPerson() override;
|
||||
void SwitchCoopView() override;
|
||||
void ToggleShowWeapon() override;
|
||||
DVector3 chaseCamPos(DAngle ang, DAngle horiz) { return DVector3(-ang.ToVector() * 64., horiz.Tan() * 64.); }
|
||||
void processSprites(tspriteArray& tsprites, const DVector3& view, DAngle viewang, double interpfrac) override;
|
||||
void UpdateCameras(double smoothratio) override;
|
||||
void EnterPortal(DCoreActor* viewer, int type) override;
|
||||
|
|
|
@ -328,10 +328,10 @@ void displayrooms(int snum, double interpfrac, bool sceneonly)
|
|||
cpos.Z -= adjustment;
|
||||
|
||||
viewer = p->GetActor();
|
||||
if (!calcChaseCamPos(cpos, viewer, §, cang, choriz, interpfrac))
|
||||
if (!calcChaseCamPos(cpos, viewer, §, cang, choriz, interpfrac, 64.))
|
||||
{
|
||||
cpos.Z += adjustment;
|
||||
calcChaseCamPos(cpos, viewer, §, cang, choriz, interpfrac);
|
||||
calcChaseCamPos(cpos, viewer, §, cang, choriz, interpfrac, 64.);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -235,7 +235,6 @@ struct GameInterface : public ::GameInterface
|
|||
DAngle playerPitchMax() override { return DAngle::fromDeg(49.5); }
|
||||
void WarpToCoords(double x, double y, double z, DAngle ang) override;
|
||||
void ToggleThirdPerson() override;
|
||||
DVector3 chaseCamPos(DAngle ang, DAngle horiz) { return DVector3(-ang.ToVector() * 96., horiz.Tan() * 96.); }
|
||||
void processSprites(tspriteArray& tsprites, const DVector3& view, DAngle viewang, double interpfrac) override;
|
||||
int GetCurrentSkill() override;
|
||||
std::pair<DVector3, DAngle> GetCoordinates() override;
|
||||
|
|
|
@ -269,10 +269,10 @@ void DrawView(double interpfrac, bool sceneonly)
|
|||
if (bCamera)
|
||||
{
|
||||
nCamerapos.Z -= 10;
|
||||
if (!calcChaseCamPos(nCamerapos, pPlayerActor, &pSector, nCameraang, nCamerapan, interpfrac))
|
||||
if (!calcChaseCamPos(nCamerapos, pPlayerActor, &pSector, nCameraang, nCamerapan, interpfrac, 96.))
|
||||
{
|
||||
nCamerapos.Z += 10;
|
||||
calcChaseCamPos(nCamerapos, pPlayerActor, &pSector, nCameraang, nCamerapan, interpfrac);
|
||||
calcChaseCamPos(nCamerapos, pPlayerActor, &pSector, nCameraang, nCamerapan, interpfrac, 96.);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1295,10 +1295,10 @@ void drawscreen(PLAYER* pp, double interpfrac, bool sceneonly)
|
|||
{
|
||||
tpos.Z -= 33;
|
||||
|
||||
if (!calcChaseCamPos(tpos, pp->actor, &tsect, tang, thoriz, interpfrac))
|
||||
if (!calcChaseCamPos(tpos, pp->actor, &tsect, tang, thoriz, interpfrac, 128.))
|
||||
{
|
||||
tpos.Z += 33;
|
||||
calcChaseCamPos(tpos, pp->actor, &tsect, tang, thoriz, interpfrac);
|
||||
calcChaseCamPos(tpos, pp->actor, &tsect, tang, thoriz, interpfrac, 128.);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1885,7 +1885,6 @@ struct GameInterface : public ::GameInterface
|
|||
void WarpToCoords(double x, double y, double z, DAngle ang) override;
|
||||
void ToggleThirdPerson() override;
|
||||
void SwitchCoopView() override;
|
||||
DVector3 chaseCamPos(DAngle ang, DAngle horiz) { return DVector3(-ang.ToVector() * 128., horiz.Tan() * 128.); }
|
||||
void processSprites(tspriteArray& tsprites, const DVector3& view, DAngle viewang, double smoothRatio) override;
|
||||
void UpdateCameras(double smoothratio) override;
|
||||
void EnterPortal(DCoreActor* viewer, int type) override;
|
||||
|
|
Loading…
Reference in a new issue