Merge branch 'next' into gravityflipping

This commit is contained in:
spherallic 2022-09-30 21:27:32 +02:00
commit 9da90cef8e
6 changed files with 41 additions and 6 deletions

View file

@ -245,7 +245,8 @@ typedef enum
CR_MINECART,
CR_ROLLOUT,
CR_PTERABYTE,
CR_DUSTDEVIL
CR_DUSTDEVIL,
CR_FAN
} carrytype_t; // pw_carry
// Player powers. (don't edit this comment)

View file

@ -5119,6 +5119,7 @@ struct int_const_s const INT_CONST[] = {
{"CR_ROLLOUT",CR_ROLLOUT},
{"CR_PTERABYTE",CR_PTERABYTE},
{"CR_DUSTDEVIL",CR_DUSTDEVIL},
{"CR_FAN",CR_FAN},
// Ring weapons (ringweapons_t)
// Useful for A_GiveWeapon

View file

@ -505,11 +505,12 @@ static void P_DoFanAndGasJet(mobj_t *spring, mobj_t *object)
if (flipval*object->momz > FixedMul(speed, spring->scale))
object->momz = flipval*FixedMul(speed, spring->scale);
if (p && !p->powers[pw_tailsfly]) // doesn't reset anim for Tails' flight
if (p && !p->powers[pw_tailsfly] && !p->powers[pw_carry]) // doesn't reset anim for Tails' flight
{
P_ResetPlayer(p);
if (p->panim != PA_FALL)
P_SetPlayerMobjState(object, S_PLAY_FALL);
P_SetPlayerMobjState(object, S_PLAY_FALL);
P_SetTarget(&object->tracer, spring);
p->powers[pw_carry] = CR_FAN;
}
break;
case MT_STEAM: // Steam

View file

@ -4978,9 +4978,13 @@ static void P_EvaluateSpecialFlags(player_t *player, sector_t *sector, sector_t
if (player->mo->momz > mobjinfo[MT_FAN].mass)
player->mo->momz = mobjinfo[MT_FAN].mass;
P_ResetPlayer(player);
if (player->panim != PA_FALL)
if (!player->powers[pw_carry])
{
P_ResetPlayer(player);
P_SetPlayerMobjState(player->mo, S_PLAY_FALL);
P_SetTarget(&player->mo->tracer, player->mo);
player->powers[pw_carry] = CR_FAN;
}
}
if (sector->specialflags & SSF_SUPERTRANSFORM)
{

View file

@ -12633,6 +12633,29 @@ void P_PlayerAfterThink(player_t *player)
break;
}
case CR_FAN:
{
fixed_t zdist;
mobj_t *mo = player->mo, *fan = player->mo->tracer;
if (!(player->pflags & PF_JUMPSTASIS))
player->pflags |= PF_JUMPSTASIS;
if (fan->eflags & MFE_VERTICALFLIP)
zdist = (mo->z + mo->height) - (fan->z + fan->height);
else
zdist = mo->z - fan->z;
if ((fan->type != MT_FAN && !P_PlayerTouchingSectorSpecialFlag(player, SSF_FAN))
|| (fan->type == MT_FAN && (abs(mo->x - fan->x) > fan->radius || abs(mo->y - fan->y) > fan->radius || zdist > (fan->health << FRACBITS))))
{
P_SetTarget(&player->mo->tracer, NULL);
player->pflags &= ~PF_JUMPSTASIS;
player->powers[pw_carry] = CR_NONE;
break;
}
break;
}
case CR_ROLLOUT:
{
mobj_t *mo = player->mo, *rock = player->mo->tracer;

View file

@ -1633,6 +1633,11 @@ static SDL_bool Impl_CreateWindow(SDL_bool fullscreen)
#ifdef HWRENDER
if (vid.glstate == VID_GL_LIBRARY_LOADED)
flags |= SDL_WINDOW_OPENGL;
// Without a 24-bit depth buffer many visuals are ruined by z-fighting.
// Some GPU drivers may give us a 16-bit depth buffer since the
// default value for SDL_GL_DEPTH_SIZE is 16.
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24);
#endif
// Create a window