mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-01-31 05:30:48 +00:00
Fix characters without SF_CANBREAKWALLS not being able to climb bustable walls.
This commit is contained in:
parent
90fbb752fa
commit
75042d781f
2 changed files with 6 additions and 6 deletions
|
@ -3341,7 +3341,7 @@ static void PTR_GlideClimbTraverse(line_t *li)
|
||||||
{
|
{
|
||||||
for (rover = checksector->ffloors; rover; rover = rover->next)
|
for (rover = checksector->ffloors; rover; rover = rover->next)
|
||||||
{
|
{
|
||||||
if (!(rover->flags & FF_EXISTS) || !(rover->flags & FF_BLOCKPLAYER) || (rover->flags & FF_BUSTUP))
|
if (!(rover->flags & FF_EXISTS) || !(rover->flags & FF_BLOCKPLAYER) || ((rover->flags & FF_BUSTUP) && (slidemo->player->charflags & SF_CANBREAKWALLS)))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
topheight = P_GetFFloorTopZAt (rover, slidemo->x, slidemo->y);
|
topheight = P_GetFFloorTopZAt (rover, slidemo->x, slidemo->y);
|
||||||
|
|
10
src/p_user.c
10
src/p_user.c
|
@ -3255,7 +3255,7 @@ static void P_DoClimbing(player_t *player)
|
||||||
|
|
||||||
for (rover = glidesector->sector->ffloors; rover; rover = rover->next)
|
for (rover = glidesector->sector->ffloors; rover; rover = rover->next)
|
||||||
{
|
{
|
||||||
if (!(rover->flags & FF_EXISTS) || !(rover->flags & FF_BLOCKPLAYER) || (rover->flags & FF_BUSTUP))
|
if (!(rover->flags & FF_EXISTS) || !(rover->flags & FF_BLOCKPLAYER) || ((rover->flags & FF_BUSTUP) && (player->charflags & SF_CANBREAKWALLS)))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
floorclimb = true;
|
floorclimb = true;
|
||||||
|
@ -3296,7 +3296,7 @@ static void P_DoClimbing(player_t *player)
|
||||||
// Is there a FOF directly below this one that we can move onto?
|
// Is there a FOF directly below this one that we can move onto?
|
||||||
for (roverbelow = glidesector->sector->ffloors; roverbelow; roverbelow = roverbelow->next)
|
for (roverbelow = glidesector->sector->ffloors; roverbelow; roverbelow = roverbelow->next)
|
||||||
{
|
{
|
||||||
if (!(roverbelow->flags & FF_EXISTS) || !(roverbelow->flags & FF_BLOCKPLAYER) || (roverbelow->flags & FF_BUSTUP))
|
if (!(roverbelow->flags & FF_EXISTS) || !(roverbelow->flags & FF_BLOCKPLAYER) || ((rover->flags & FF_BUSTUP) && (player->charflags & SF_CANBREAKWALLS)))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (roverbelow == rover)
|
if (roverbelow == rover)
|
||||||
|
@ -3341,7 +3341,7 @@ static void P_DoClimbing(player_t *player)
|
||||||
// Is there a FOF directly below this one that we can move onto?
|
// Is there a FOF directly below this one that we can move onto?
|
||||||
for (roverbelow = glidesector->sector->ffloors; roverbelow; roverbelow = roverbelow->next)
|
for (roverbelow = glidesector->sector->ffloors; roverbelow; roverbelow = roverbelow->next)
|
||||||
{
|
{
|
||||||
if (!(roverbelow->flags & FF_EXISTS) || !(roverbelow->flags & FF_BLOCKPLAYER) || (roverbelow->flags & FF_BUSTUP))
|
if (!(roverbelow->flags & FF_EXISTS) || !(roverbelow->flags & FF_BLOCKPLAYER) || ((rover->flags & FF_BUSTUP) && (player->charflags & SF_CANBREAKWALLS)))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (roverbelow == rover)
|
if (roverbelow == rover)
|
||||||
|
@ -3398,7 +3398,7 @@ static void P_DoClimbing(player_t *player)
|
||||||
ffloor_t *rover;
|
ffloor_t *rover;
|
||||||
for (rover = glidesector->sector->ffloors; rover; rover = rover->next)
|
for (rover = glidesector->sector->ffloors; rover; rover = rover->next)
|
||||||
{
|
{
|
||||||
if (!(rover->flags & FF_EXISTS) || !(rover->flags & FF_BLOCKPLAYER) || (rover->flags & FF_BUSTUP))
|
if (!(rover->flags & FF_EXISTS) || !(rover->flags & FF_BLOCKPLAYER) || ((rover->flags & FF_BUSTUP) && (player->charflags & SF_CANBREAKWALLS)))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
bottomheight = P_GetFFloorBottomZAt(rover, player->mo->x, player->mo->y);
|
bottomheight = P_GetFFloorBottomZAt(rover, player->mo->x, player->mo->y);
|
||||||
|
@ -3438,7 +3438,7 @@ static void P_DoClimbing(player_t *player)
|
||||||
ffloor_t *rover;
|
ffloor_t *rover;
|
||||||
for (rover = glidesector->sector->ffloors; rover; rover = rover->next)
|
for (rover = glidesector->sector->ffloors; rover; rover = rover->next)
|
||||||
{
|
{
|
||||||
if (!(rover->flags & FF_EXISTS) || !(rover->flags & FF_BLOCKPLAYER) || (rover->flags & FF_BUSTUP))
|
if (!(rover->flags & FF_EXISTS) || !(rover->flags & FF_BLOCKPLAYER) || ((rover->flags & FF_BUSTUP) && (player->charflags & SF_CANBREAKWALLS)))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
topheight = P_GetFFloorTopZAt(rover, player->mo->x, player->mo->y);
|
topheight = P_GetFFloorTopZAt(rover, player->mo->x, player->mo->y);
|
||||||
|
|
Loading…
Reference in a new issue