mirror of
https://github.com/openmoh/openmohaa.git
synced 2025-04-28 21:57:57 +03:00
Fixed leaning values in mohaas/mohaab
This commit is contained in:
parent
31d19cb0f6
commit
17f6c25bc7
3 changed files with 38 additions and 19 deletions
|
@ -477,8 +477,23 @@ void CG_PredictPlayerState(void)
|
|||
}
|
||||
|
||||
cg_pmove.noFootsteps = (cgs.dmflags & DF_NO_FOOTSTEPS) > 0;
|
||||
// Leaning while moving is allowed in mohta and mohtt only with a specific dm flag bit set
|
||||
cg_pmove.alwaysAllowLean = (cg_protocol < PROTOCOL_MOHTA_MIN) || (cgs.dmflags & DF_ALLOW_LEAN_MOVEMENT);
|
||||
if (cg_protocol >= PROTOCOL_MOHTA_MIN) {
|
||||
// Leaning while moving is allowed in mohta and mohtt only with a specific dm flag bit set
|
||||
cg_pmove.alwaysAllowLean = (cgs.dmflags & DF_ALLOW_LEAN_MOVEMENT) ? qtrue : qfalse;
|
||||
|
||||
pm->leanMax = 45.f;
|
||||
pm->leanAdd = 6.f;
|
||||
pm->leanRecoverSpeed = 8.5f;
|
||||
pm->leanSpeed = 2.f;
|
||||
} else {
|
||||
cg_pmove.alwaysAllowLean = qtrue;
|
||||
|
||||
pm->leanMax = 40.f;
|
||||
pm->leanAdd = 10.f;
|
||||
pm->leanRecoverSpeed = 15.f;
|
||||
pm->leanSpeed = 4.f;
|
||||
}
|
||||
|
||||
cg_pmove.protocol = cg_protocol;
|
||||
|
||||
// save the state before the pmove so we can detect transitions
|
||||
|
|
|
@ -1471,17 +1471,17 @@ void PmoveSingle( pmove_t *pmove )
|
|||
{
|
||||
if( pm->cmd.buttons & BUTTON_LEAN_LEFT )
|
||||
{
|
||||
if( pm->ps->fLeanAngle <= -40.0f )
|
||||
if( pm->ps->fLeanAngle <= -pm->leanMax)
|
||||
{
|
||||
pm->ps->fLeanAngle = -40.0f;
|
||||
pm->ps->fLeanAngle = -pm->leanMax;
|
||||
}
|
||||
else
|
||||
{
|
||||
float fAngle = pml.frametime * ( -40.0f - pm->ps->fLeanAngle );
|
||||
float fLeanAngle = pml.frametime * -4.0f;
|
||||
float fAngle = pml.frametime * ( -pm->leanMax - pm->ps->fLeanAngle ) * pm->leanAdd;
|
||||
float fLeanAngle = pml.frametime * -pm->leanSpeed;
|
||||
|
||||
if( fAngle * 10.0f <= fLeanAngle ) {
|
||||
fLeanAngle = fAngle * 10.0f;
|
||||
if( fAngle <= fLeanAngle ) {
|
||||
fLeanAngle = fAngle;
|
||||
}
|
||||
|
||||
pm->ps->fLeanAngle += fLeanAngle;
|
||||
|
@ -1489,19 +1489,19 @@ void PmoveSingle( pmove_t *pmove )
|
|||
}
|
||||
else
|
||||
{
|
||||
if( pm->ps->fLeanAngle >= 40.0f )
|
||||
if( pm->ps->fLeanAngle >= pm->leanMax )
|
||||
{
|
||||
pm->ps->fLeanAngle = 40.0f;
|
||||
pm->ps->fLeanAngle = pm->leanMax;
|
||||
}
|
||||
else
|
||||
{
|
||||
float fAngle = 40.0f - pm->ps->fLeanAngle;
|
||||
float fLeanAngle = pml.frametime * 4.0f;
|
||||
float fMult = pml.frametime * fAngle;
|
||||
float fAngle = pm->leanMax - pm->ps->fLeanAngle;
|
||||
float fLeanAngle = pml.frametime * pm->leanSpeed;
|
||||
float fMult = pml.frametime * fAngle * pm->leanAdd;
|
||||
|
||||
if( fLeanAngle <= fMult * 10.0f )
|
||||
if( fLeanAngle <= fMult )
|
||||
{
|
||||
fLeanAngle = fMult * 10.0f;
|
||||
fLeanAngle = fMult;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1514,11 +1514,11 @@ void PmoveSingle( pmove_t *pmove )
|
|||
}
|
||||
else if( pm->ps->fLeanAngle )
|
||||
{
|
||||
float fAngle = pm->ps->fLeanAngle * pml.frametime * 15.0f;
|
||||
float fAngle = pm->ps->fLeanAngle * pml.frametime * pm->leanRecoverSpeed;
|
||||
|
||||
if( pm->ps->fLeanAngle <= 0.0f )
|
||||
{
|
||||
float fLeanAngle = -4.0f * pml.frametime;
|
||||
float fLeanAngle = pml.frametime * -pm->leanSpeed;
|
||||
|
||||
if( fAngle <= fLeanAngle )
|
||||
{
|
||||
|
@ -1529,9 +1529,9 @@ void PmoveSingle( pmove_t *pmove )
|
|||
}
|
||||
else
|
||||
{
|
||||
float fLeanAngle = pml.frametime * 4.0f;
|
||||
float fLeanAngle = pml.frametime * pm->leanSpeed;
|
||||
|
||||
if( fLeanAngle <= fAngle ) {
|
||||
if(fAngle >= fLeanAngle) {
|
||||
fLeanAngle = fAngle;
|
||||
}
|
||||
|
||||
|
|
|
@ -340,6 +340,10 @@ movement on the server game.
|
|||
// Openmohaa addition
|
||||
//
|
||||
int protocol;
|
||||
float leanSpeed;
|
||||
float leanRecoverSpeed;
|
||||
float leanAdd;
|
||||
float leanMax;
|
||||
} pmove_t;
|
||||
|
||||
// if a full pmove isn't done on the client, you can just update the angles
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue