diff --git a/src/p_map.c b/src/p_map.c index 6103b3c2d..0317b34c3 100644 --- a/src/p_map.c +++ b/src/p_map.c @@ -3496,25 +3496,12 @@ static void P_BouncePlayerMove(mobj_t *mo, TryMoveResult_t *result) slidemo = mo; bestslideline = result->line; - if (bestslideline == NULL && cv_showgremlins.value) + /*if (mo->health <= 0) { - // debug - mobj_t*x = P_SpawnMobj(mo->x, mo->y, mo->z, MT_THOK); - x->frame = FF_FULLBRIGHT | FF_ADD; - x->renderflags = RF_ALWAYSONTOP; - x->color = SKINCOLOR_RED; - - CONS_Printf( - "GREMLIN: leveltime=%u x=%f y=%f z=%f angle=%f\n", - leveltime, - FixedToFloat(mo->x), - FixedToFloat(mo->y), - FixedToFloat(mo->z), - AngleToFloat(R_PointToAngle2(0, 0, oldmomx, oldmomy)) - ); + tmxmove = mo->momx; + tmymove = mo->momy; } - - if (mo->eflags & MFE_JUSTBOUNCEDWALL) // Stronger push-out + else */if (mo->eflags & MFE_JUSTBOUNCEDWALL) // Stronger push-out { tmxmove = mmomx; tmymove = mmomy; diff --git a/src/p_test.cpp b/src/p_test.cpp index fb1959610..9930a4434 100644 --- a/src/p_test.cpp +++ b/src/p_test.cpp @@ -34,6 +34,8 @@ void P_TestLine(line_t* ld) line_t* P_SweepTestLines(fixed_t ax, fixed_t ay, fixed_t bx, fixed_t by, fixed_t r, vector2_t* return_normal) { + extern consvar_t cv_showgremlins; + using namespace srb2::math; using namespace srb2::sweep; @@ -90,6 +92,32 @@ line_t* P_SweepTestLines(fixed_t ax, fixed_t ay, fixed_t bx, fixed_t by, fixed_t return_normal->x = FINECOSINE((lineangle >> ANGLETOFINESHIFT) & FINEMASK); return_normal->y = FINESINE((lineangle >> ANGLETOFINESHIFT) & FINEMASK); + + // Moving the gremlin debug here so that it + // still fires even when the workaround is used. + if (cv_showgremlins.value) + { + mobj_t *mo = g_tm.thing; + + if (mo) + { + mobj_t *x = P_SpawnMobj(mo->x, mo->y, mo->z, MT_THOK); + x->frame = FF_FULLBRIGHT | FF_ADD; + x->renderflags = RF_ALWAYSONTOP; + x->color = SKINCOLOR_RED; + + CONS_Printf( + "GREMLIN: leveltime=%u x=%f y=%f z=%f momx=%f momy=%f momz=%f\n", + leveltime, + FixedToFloat(mo->x), + FixedToFloat(mo->y), + FixedToFloat(mo->z), + FixedToFloat(mo->momx), + FixedToFloat(mo->momy), + FixedToFloat(mo->momz) + ); + } + } } g_lines.clear();