Merge branch 'lachfixes' into 'master'
Several bug fixes! Closes #210, #192, and #189 See merge request STJr/SRB2Internal!345
This commit is contained in:
commit
4d058d1d25
|
@ -1596,7 +1596,7 @@ state_t states[NUMSTATES] =
|
||||||
{SPR_FLME, FF_FULLBRIGHT|2, -1, {NULL}, 0, 0, S_CYBRAKDEMONFLAMESHOT_FLY3}, // S_CYBRAKDEMONFLAMESHOT_FLY3
|
{SPR_FLME, FF_FULLBRIGHT|2, -1, {NULL}, 0, 0, S_CYBRAKDEMONFLAMESHOT_FLY3}, // S_CYBRAKDEMONFLAMESHOT_FLY3
|
||||||
{SPR_FLME, FF_FULLBRIGHT|2, 0, {A_SpawnObjectRelative}, 0, MT_CYBRAKDEMON_FLAMEREST, S_NULL}, // S_CYBRAKDEMONFLAMESHOT_DIE
|
{SPR_FLME, FF_FULLBRIGHT|2, 0, {A_SpawnObjectRelative}, 0, MT_CYBRAKDEMON_FLAMEREST, S_NULL}, // S_CYBRAKDEMONFLAMESHOT_DIE
|
||||||
|
|
||||||
{SPR_FLAM, FF_FULLBRIGHT, 0, {A_SetFuse}, 10*TICRATE, 0, S_FLAMEREST}, // S_CYBRAKDEMONFLAMEREST
|
{SPR_FLAM, FF_FULLBRIGHT, 1, {A_SetFuse}, 10*TICRATE, 0, S_FLAMEREST}, // S_CYBRAKDEMONFLAMEREST
|
||||||
|
|
||||||
{SPR_ELEC, 0 + FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER_INIT2}, // S_CYBRAKDEMONELECTRICBARRIER_INIT1
|
{SPR_ELEC, 0 + FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER_INIT2}, // S_CYBRAKDEMONELECTRICBARRIER_INIT1
|
||||||
{SPR_ELEC, 0 + FF_FULLBRIGHT, 0, {A_RemoteAction}, -1, S_CYBRAKDEMON_INVINCIBLERIZE, S_CYBRAKDEMONELECTRICBARRIER_PLAYSOUND}, // S_CYBRAKDEMONELECTRICBARRIER_INIT2
|
{SPR_ELEC, 0 + FF_FULLBRIGHT, 0, {A_RemoteAction}, -1, S_CYBRAKDEMON_INVINCIBLERIZE, S_CYBRAKDEMONELECTRICBARRIER_PLAYSOUND}, // S_CYBRAKDEMONELECTRICBARRIER_INIT2
|
||||||
|
|
|
@ -13104,11 +13104,14 @@ static boolean PIT_DustDevilLaunch(mobj_t *thing)
|
||||||
if (dustdevil->height - pos > thresh)
|
if (dustdevil->height - pos > thresh)
|
||||||
{
|
{
|
||||||
fixed_t dist = FixedHypot(thing->x - dustdevil->x, thing->y - dustdevil->y);
|
fixed_t dist = FixedHypot(thing->x - dustdevil->x, thing->y - dustdevil->y);
|
||||||
fixed_t dragamount = 6 * FRACUNIT;
|
fixed_t dragamount = player->speed;
|
||||||
fixed_t x, y;
|
fixed_t x, y;
|
||||||
|
|
||||||
if (player->powers[pw_nocontrol] == 0)
|
if (player->powers[pw_nocontrol] == 0)
|
||||||
|
{
|
||||||
|
P_ResetPlayer(player);
|
||||||
A_PlayActiveSound(dustdevil);
|
A_PlayActiveSound(dustdevil);
|
||||||
|
}
|
||||||
player->powers[pw_nocontrol] = 2;
|
player->powers[pw_nocontrol] = 2;
|
||||||
player->drawangle += ANG20;
|
player->drawangle += ANG20;
|
||||||
P_SetPlayerMobjState(thing, S_PLAY_PAIN);
|
P_SetPlayerMobjState(thing, S_PLAY_PAIN);
|
||||||
|
|
|
@ -3408,7 +3408,7 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Spectator handling
|
// Spectator handling
|
||||||
if (netgame)
|
if (multiplayer)
|
||||||
{
|
{
|
||||||
if (damagetype != DMG_SPECTATOR && target->player && target->player->spectator)
|
if (damagetype != DMG_SPECTATOR && target->player && target->player->spectator)
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -7311,7 +7311,8 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
case MT_FLAMEAURA_ORB:
|
case MT_FLAMEAURA_ORB:
|
||||||
if (!(mobj->flags2 & MF2_SHIELD))
|
if (!(mobj->flags2 & MF2_SHIELD))
|
||||||
return;
|
return;
|
||||||
mobj->angle = mobj->target->angle; // implicitly okay because of P_AddShield
|
if ((statenum_t)(mobj->state-states) < mobj->info->painstate)
|
||||||
|
mobj->angle = mobj->target->angle; // implicitly okay because of P_AddShield
|
||||||
if (mobj->tracer
|
if (mobj->tracer
|
||||||
/* && mobj->target -- the following is implicit by P_AddShield
|
/* && mobj->target -- the following is implicit by P_AddShield
|
||||||
&& mobj->target->player
|
&& mobj->target->player
|
||||||
|
|
|
@ -8662,7 +8662,7 @@ static void P_DoRopeHang(player_t *player)
|
||||||
|
|
||||||
if (player->cmd.buttons & BT_USE && !(player->pflags & PF_STASIS)) // Drop off of the rope
|
if (player->cmd.buttons & BT_USE && !(player->pflags & PF_STASIS)) // Drop off of the rope
|
||||||
{
|
{
|
||||||
player->pflags |= P_GetJumpFlags(player);
|
player->pflags |= (P_GetJumpFlags(player)|PF_USEDOWN);
|
||||||
P_SetPlayerMobjState(player->mo, S_PLAY_JUMP);
|
P_SetPlayerMobjState(player->mo, S_PLAY_JUMP);
|
||||||
|
|
||||||
P_SetTarget(&player->mo->tracer, NULL);
|
P_SetTarget(&player->mo->tracer, NULL);
|
||||||
|
@ -9620,7 +9620,7 @@ boolean P_MoveChaseCamera(player_t *player, camera_t *thiscam, boolean resetcall
|
||||||
|
|
||||||
if (!(twodlevel || (mo->flags2 & MF2_TWOD)) && !(player->powers[pw_carry] == CR_NIGHTSMODE)) // This block here is like 90% Lach's work, thanks bud
|
if (!(twodlevel || (mo->flags2 & MF2_TWOD)) && !(player->powers[pw_carry] == CR_NIGHTSMODE)) // This block here is like 90% Lach's work, thanks bud
|
||||||
{
|
{
|
||||||
if ((thiscam == &camera && cv_cam_adjust.value) || (thiscam == &camera2 && cv_cam2_adjust.value))
|
if (!resetcalled && ((thiscam == &camera && cv_cam_adjust.value) || (thiscam == &camera2 && cv_cam2_adjust.value)))
|
||||||
{
|
{
|
||||||
if (!(mo->eflags & MFE_JUSTHITFLOOR) && (P_IsObjectOnGround(mo)) // Check that player is grounded
|
if (!(mo->eflags & MFE_JUSTHITFLOOR) && (P_IsObjectOnGround(mo)) // Check that player is grounded
|
||||||
&& thiscam->ceilingz - thiscam->floorz >= P_GetPlayerHeight(player)) // Check that camera's sector is large enough for the player to fit into, at least
|
&& thiscam->ceilingz - thiscam->floorz >= P_GetPlayerHeight(player)) // Check that camera's sector is large enough for the player to fit into, at least
|
||||||
|
|
Loading…
Reference in a new issue