mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-30 15:52:09 +00:00
Use ViewRoll instead of CamRoll, and removed CamRoll entirely. Begin work on interpolation.
This commit is contained in:
parent
c972caa9f3
commit
be9b25e760
5 changed files with 8 additions and 10 deletions
|
@ -72,7 +72,7 @@ void DEarthquake::Serialize (FArchive &arc)
|
||||||
<< m_QuakeSFX << m_Flags << m_CountdownStart
|
<< m_QuakeSFX << m_Flags << m_CountdownStart
|
||||||
<< m_WaveSpeed
|
<< m_WaveSpeed
|
||||||
<< m_Falloff << m_Highpoint << m_MiniCount
|
<< m_Falloff << m_Highpoint << m_MiniCount
|
||||||
<< m_RollIntensity;
|
<< m_RollIntensity << m_RollWave;
|
||||||
}
|
}
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
|
|
@ -238,7 +238,6 @@ void AActor::Serialize(FArchive &arc)
|
||||||
<< Angles.Yaw
|
<< Angles.Yaw
|
||||||
<< Angles.Pitch
|
<< Angles.Pitch
|
||||||
<< Angles.Roll
|
<< Angles.Roll
|
||||||
<< Angles.CamRoll
|
|
||||||
<< frame
|
<< frame
|
||||||
<< Scale
|
<< Scale
|
||||||
<< RenderStyle
|
<< RenderStyle
|
||||||
|
@ -4593,7 +4592,7 @@ APlayerPawn *P_SpawnPlayer (FPlayerStart *mthing, int playernum, int flags)
|
||||||
}
|
}
|
||||||
|
|
||||||
mobj->Angles.Yaw = SpawnAngle;
|
mobj->Angles.Yaw = SpawnAngle;
|
||||||
mobj->Angles.Pitch = mobj->Angles.Roll = mobj->Angles.CamRoll = 0.;
|
mobj->Angles.Pitch = mobj->Angles.Roll = 0.;
|
||||||
mobj->health = p->health;
|
mobj->health = p->health;
|
||||||
|
|
||||||
// [RH] Set player sprite based on skin
|
// [RH] Set player sprite based on skin
|
||||||
|
@ -5075,7 +5074,7 @@ AActor *P_SpawnMapThing (FMapThing *mthing, int position)
|
||||||
if (mthing->pitch)
|
if (mthing->pitch)
|
||||||
mobj->Angles.Pitch = (double)mthing->pitch;
|
mobj->Angles.Pitch = (double)mthing->pitch;
|
||||||
if (mthing->roll)
|
if (mthing->roll)
|
||||||
mobj->Angles.Roll = mobj->Angles.CamRoll = (double)mthing->roll;
|
mobj->Angles.Roll = (double)mthing->roll;
|
||||||
if (mthing->score)
|
if (mthing->score)
|
||||||
mobj->Score = mthing->score;
|
mobj->Score = mthing->score;
|
||||||
if (mthing->fillcolor)
|
if (mthing->fillcolor)
|
||||||
|
|
|
@ -108,6 +108,7 @@ int viewwindowy;
|
||||||
DVector3 ViewPos;
|
DVector3 ViewPos;
|
||||||
DAngle ViewAngle;
|
DAngle ViewAngle;
|
||||||
DAngle ViewPitch;
|
DAngle ViewPitch;
|
||||||
|
DAngle ViewRoll;
|
||||||
DVector3 ViewPath[2];
|
DVector3 ViewPath[2];
|
||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
|
@ -542,11 +543,13 @@ void R_InterpolateView (player_t *player, double Frac, InterpolationViewer *ivie
|
||||||
ViewAngle = (nviewangle + AngleToFloat(LocalViewAngle & 0xFFFF0000)).Normalized180();
|
ViewAngle = (nviewangle + AngleToFloat(LocalViewAngle & 0xFFFF0000)).Normalized180();
|
||||||
DAngle delta = player->centering ? DAngle(0.) : AngleToFloat(int(LocalViewPitch & 0xFFFF0000));
|
DAngle delta = player->centering ? DAngle(0.) : AngleToFloat(int(LocalViewPitch & 0xFFFF0000));
|
||||||
ViewPitch = clamp<DAngle>((iview->New.Angles.Pitch - delta).Normalized180(), player->MinPitch, player->MaxPitch);
|
ViewPitch = clamp<DAngle>((iview->New.Angles.Pitch - delta).Normalized180(), player->MinPitch, player->MaxPitch);
|
||||||
|
ViewRoll = iview->New.Angles.Roll.Normalized180();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ViewPitch = (iview->Old.Angles.Pitch + deltaangle(iview->Old.Angles.Pitch, iview->New.Angles.Pitch) * Frac).Normalized180();
|
ViewPitch = (iview->Old.Angles.Pitch + deltaangle(iview->Old.Angles.Pitch, iview->New.Angles.Pitch) * Frac).Normalized180();
|
||||||
ViewAngle = (oviewangle + deltaangle(oviewangle, nviewangle) * Frac).Normalized180();
|
ViewAngle = (oviewangle + deltaangle(oviewangle, nviewangle) * Frac).Normalized180();
|
||||||
|
ViewRoll = iview->Old.Angles.Roll.Normalized180();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Due to interpolation this is not necessarily the same as the sector the camera is in.
|
// Due to interpolation this is not necessarily the same as the sector the camera is in.
|
||||||
|
@ -871,7 +874,7 @@ void R_SetupFrame (AActor *actor)
|
||||||
|
|
||||||
if (jiggers.RollIntensity != 0 || jiggers.RollWave != 0)
|
if (jiggers.RollIntensity != 0 || jiggers.RollWave != 0)
|
||||||
{
|
{
|
||||||
camera->Angles.CamRoll = camera->Angles.Roll + QuakePower(quakefactor, jiggers.RollIntensity, jiggers.RollWave, jiggers.Falloff, jiggers.WFalloff);
|
ViewRoll += QuakePower(quakefactor, jiggers.RollIntensity, jiggers.RollWave, jiggers.Falloff, jiggers.WFalloff);
|
||||||
}
|
}
|
||||||
if (jiggers.RelIntensity.X != 0 || jiggers.RelOffset.X != 0)
|
if (jiggers.RelIntensity.X != 0 || jiggers.RelOffset.X != 0)
|
||||||
{
|
{
|
||||||
|
@ -903,10 +906,6 @@ void R_SetupFrame (AActor *actor)
|
||||||
ViewPos.Z += QuakePower(quakefactor, jiggers.Intensity.Z, jiggers.Offset.Z, jiggers.Falloff, jiggers.WFalloff);
|
ViewPos.Z += QuakePower(quakefactor, jiggers.Intensity.Z, jiggers.Offset.Z, jiggers.Falloff, jiggers.WFalloff);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
camera->Angles.CamRoll = camera->Angles.Roll;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extralight = camera->player ? camera->player->extralight : 0;
|
extralight = camera->player ? camera->player->extralight : 0;
|
||||||
|
|
|
@ -15,6 +15,7 @@ extern DCanvas *RenderTarget;
|
||||||
extern DVector3 ViewPos;
|
extern DVector3 ViewPos;
|
||||||
extern DAngle ViewAngle;
|
extern DAngle ViewAngle;
|
||||||
extern DAngle ViewPitch;
|
extern DAngle ViewPitch;
|
||||||
|
extern DAngle ViewRoll;
|
||||||
extern DVector3 ViewPath[2];
|
extern DVector3 ViewPath[2];
|
||||||
|
|
||||||
extern "C" int centerx, centerxwide;
|
extern "C" int centerx, centerxwide;
|
||||||
|
|
|
@ -2388,7 +2388,6 @@ static bool InitSpawnedItem(AActor *self, AActor *mo, int flags)
|
||||||
if (flags & SIXF_TRANSFERROLL)
|
if (flags & SIXF_TRANSFERROLL)
|
||||||
{
|
{
|
||||||
mo->Angles.Roll = self->Angles.Roll;
|
mo->Angles.Roll = self->Angles.Roll;
|
||||||
mo->Angles.CamRoll = self->Angles.CamRoll;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags & SIXF_ISTARGET)
|
if (flags & SIXF_ISTARGET)
|
||||||
|
|
Loading…
Reference in a new issue