Finetuned the saloon door swinging

This commit is contained in:
MascaraSnake 2019-06-16 17:57:03 +02:00
parent 7e0c9d9398
commit fbd7a5ae59
3 changed files with 15 additions and 2 deletions

View File

@ -12066,7 +12066,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
0, // damage
sfx_s3k90, // activesound
MF_SOLID|MF_NOGRAVITY|MF_RUNSPAWNFUNC|MF_PAPERCOLLISION, // flags
MF_SOLID|MF_NOGRAVITY|MF_RUNSPAWNFUNC|MF_PAPERCOLLISION|MF_NOCLIPHEIGHT, // flags
S_NULL // raisestate
},

View File

@ -844,7 +844,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
angle_t ang = R_PointToAngle2(0, 0, dx, dy) - thing->angle;
fixed_t s = FINESINE((ang >> ANGLETOFINESHIFT) & FINEMASK);
S_StartSound(tmthing, thing->info->activesound);
thing->extravalue2 += FixedMul(s, dm);
thing->extravalue2 += 2*FixedMul(s, dm)/3;
return true;
}
}

View File

@ -8536,6 +8536,7 @@ void P_MobjThinker(mobj_t *mobj)
fixed_t s0 = -96*FINESINE(fa);
angle_t fma;
fixed_t c, s;
angle_t angdiff;
// Adjust angular speed
fixed_t da = AngleFixed(mobj->angle - oang);
@ -8546,6 +8547,18 @@ void P_MobjThinker(mobj_t *mobj)
// Update angle
mobj->angle += FixedAngle(mobj->extravalue2);
angdiff = mobj->angle - FixedAngle(mobj->extravalue1);
if (angdiff > (ANGLE_90 - ANG2) && angdiff < ANGLE_180)
{
mobj->angle = FixedAngle(mobj->extravalue1) + (ANGLE_90 - ANG2);
mobj->extravalue2 /= 2;
}
else if (angdiff < (ANGLE_270 + ANG2) && angdiff >= ANGLE_180)
{
mobj->angle = FixedAngle(mobj->extravalue1) + (ANGLE_270 + ANG2);
mobj->extravalue2 /= 2;
}
// Update position
fma = (mobj->angle >> ANGLETOFINESHIFT) & FINEMASK;
c = 48*FINECOSINE(fma);