Finetuned the saloon door swinging
This commit is contained in:
parent
7e0c9d9398
commit
fbd7a5ae59
|
@ -12066,7 +12066,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
100, // mass
|
100, // mass
|
||||||
0, // damage
|
0, // damage
|
||||||
sfx_s3k90, // activesound
|
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
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -844,7 +844,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
||||||
angle_t ang = R_PointToAngle2(0, 0, dx, dy) - thing->angle;
|
angle_t ang = R_PointToAngle2(0, 0, dx, dy) - thing->angle;
|
||||||
fixed_t s = FINESINE((ang >> ANGLETOFINESHIFT) & FINEMASK);
|
fixed_t s = FINESINE((ang >> ANGLETOFINESHIFT) & FINEMASK);
|
||||||
S_StartSound(tmthing, thing->info->activesound);
|
S_StartSound(tmthing, thing->info->activesound);
|
||||||
thing->extravalue2 += FixedMul(s, dm);
|
thing->extravalue2 += 2*FixedMul(s, dm)/3;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
13
src/p_mobj.c
13
src/p_mobj.c
|
@ -8536,6 +8536,7 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
fixed_t s0 = -96*FINESINE(fa);
|
fixed_t s0 = -96*FINESINE(fa);
|
||||||
angle_t fma;
|
angle_t fma;
|
||||||
fixed_t c, s;
|
fixed_t c, s;
|
||||||
|
angle_t angdiff;
|
||||||
|
|
||||||
// Adjust angular speed
|
// Adjust angular speed
|
||||||
fixed_t da = AngleFixed(mobj->angle - oang);
|
fixed_t da = AngleFixed(mobj->angle - oang);
|
||||||
|
@ -8546,6 +8547,18 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
// Update angle
|
// Update angle
|
||||||
mobj->angle += FixedAngle(mobj->extravalue2);
|
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
|
// Update position
|
||||||
fma = (mobj->angle >> ANGLETOFINESHIFT) & FINEMASK;
|
fma = (mobj->angle >> ANGLETOFINESHIFT) & FINEMASK;
|
||||||
c = 48*FINECOSINE(fma);
|
c = 48*FINECOSINE(fma);
|
||||||
|
|
Loading…
Reference in a new issue