mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-01-18 07:22:28 +00:00
Merge branch 'public_next'
This commit is contained in:
commit
541c53c3e1
8 changed files with 67 additions and 42 deletions
42
.travis.yml
42
.travis.yml
|
@ -162,28 +162,28 @@ matrix:
|
||||||
- clang-3.8
|
- clang-3.8
|
||||||
compiler: clang-3.8
|
compiler: clang-3.8
|
||||||
#clang version 3.8.1-svn271127-1~exp1 (branches/release_38)
|
#clang version 3.8.1-svn271127-1~exp1 (branches/release_38)
|
||||||
- os: osx
|
|
||||||
osx_image: beta-xcode6.1
|
|
||||||
#Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn)
|
|
||||||
- os: osx
|
|
||||||
osx_image: beta-xcode6.2
|
|
||||||
compiler: gcc
|
|
||||||
#Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
|
|
||||||
# - os: osx
|
# - os: osx
|
||||||
# osx_image: beta-xcode6.3
|
# osx_image: beta-xcode6.1
|
||||||
# #I think xcode.6.3 VM is broken, it does not boot
|
# #Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn)
|
||||||
- os: osx
|
# - os: osx
|
||||||
osx_image: xcode6.4
|
# osx_image: beta-xcode6.2
|
||||||
#Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
|
# compiler: gcc
|
||||||
- os: osx
|
# #Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
|
||||||
osx_image: xcode7
|
## - os: osx
|
||||||
#Apple LLVM version 7.0.0 (clang-700.0.72)
|
## osx_image: beta-xcode6.3
|
||||||
- os: osx
|
## #I think xcode.6.3 VM is broken, it does not boot
|
||||||
osx_image: xcode7.1
|
# - os: osx
|
||||||
#Apple LLVM version 7.0.0 (clang-700.1.76)
|
# osx_image: xcode6.4
|
||||||
- os: osx
|
# #Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
|
||||||
osx_image: xcode7.2
|
# - os: osx
|
||||||
#Apple LLVM version 7.0.2 (clang-700.1.81)
|
# osx_image: xcode7
|
||||||
|
# #Apple LLVM version 7.0.0 (clang-700.0.72)
|
||||||
|
# - os: osx
|
||||||
|
# osx_image: xcode7.1
|
||||||
|
# #Apple LLVM version 7.0.0 (clang-700.1.76)
|
||||||
|
# - os: osx
|
||||||
|
# osx_image: xcode7.2
|
||||||
|
# #Apple LLVM version 7.0.2 (clang-700.1.81)
|
||||||
- os: osx
|
- os: osx
|
||||||
osx_image: xcode7.3
|
osx_image: xcode7.3
|
||||||
#Apple LLVM version 7.3.0 (clang-703.0.31)
|
#Apple LLVM version 7.3.0 (clang-703.0.31)
|
||||||
|
|
|
@ -18,6 +18,9 @@ enum hud {
|
||||||
hud_time,
|
hud_time,
|
||||||
hud_rings,
|
hud_rings,
|
||||||
hud_lives,
|
hud_lives,
|
||||||
|
// Match / CTF / Tag / Ringslinger
|
||||||
|
hud_weaponrings,
|
||||||
|
hud_powerstones,
|
||||||
// NiGHTS mode
|
// NiGHTS mode
|
||||||
hud_nightslink,
|
hud_nightslink,
|
||||||
hud_nightsdrill,
|
hud_nightsdrill,
|
||||||
|
|
|
@ -44,6 +44,9 @@ static const char *const hud_disable_options[] = {
|
||||||
"rings",
|
"rings",
|
||||||
"lives",
|
"lives",
|
||||||
|
|
||||||
|
"weaponrings",
|
||||||
|
"powerstones",
|
||||||
|
|
||||||
"nightslink",
|
"nightslink",
|
||||||
"nightsdrill",
|
"nightsdrill",
|
||||||
"nightsrings",
|
"nightsrings",
|
||||||
|
|
10
src/p_map.c
10
src/p_map.c
|
@ -2009,8 +2009,12 @@ boolean P_TryMove(mobj_t *thing, fixed_t x, fixed_t y, boolean allowdropoff)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ramp test
|
// Ramp test
|
||||||
if (thing->player && maxstep > 0
|
if (maxstep > 0 && !(
|
||||||
&& !(P_PlayerTouchingSectorSpecial(thing->player, 1, 14) || GETSECSPECIAL(R_PointInSubsector(x, y)->sector->special, 1) == 14))
|
thing->player && (
|
||||||
|
P_PlayerTouchingSectorSpecial(thing->player, 1, 14)
|
||||||
|
|| GETSECSPECIAL(R_PointInSubsector(x, y)->sector->special, 1) == 14)
|
||||||
|
)
|
||||||
|
)
|
||||||
{
|
{
|
||||||
// If the floor difference is MAXSTEPMOVE or less, and the sector isn't Section1:14, ALWAYS
|
// If the floor difference is MAXSTEPMOVE or less, and the sector isn't Section1:14, ALWAYS
|
||||||
// step down! Formerly required a Section1:13 sector for the full MAXSTEPMOVE, but no more.
|
// step down! Formerly required a Section1:13 sector for the full MAXSTEPMOVE, but no more.
|
||||||
|
@ -2696,7 +2700,7 @@ isblocking:
|
||||||
// see about climbing on the wall
|
// see about climbing on the wall
|
||||||
if (!(checkline->flags & ML_NOCLIMB))
|
if (!(checkline->flags & ML_NOCLIMB))
|
||||||
{
|
{
|
||||||
boolean canclimb; // FUCK C90
|
boolean canclimb;
|
||||||
angle_t climbangle, climbline;
|
angle_t climbangle, climbline;
|
||||||
INT32 whichside = P_PointOnLineSide(slidemo->x, slidemo->y, li);
|
INT32 whichside = P_PointOnLineSide(slidemo->x, slidemo->y, li);
|
||||||
|
|
||||||
|
|
12
src/p_mobj.c
12
src/p_mobj.c
|
@ -1837,8 +1837,6 @@ void P_XYMovement(mobj_t *mo)
|
||||||
I_Assert(mo != NULL);
|
I_Assert(mo != NULL);
|
||||||
I_Assert(!P_MobjWasRemoved(mo));
|
I_Assert(!P_MobjWasRemoved(mo));
|
||||||
|
|
||||||
moved = true;
|
|
||||||
|
|
||||||
// if it's stopped
|
// if it's stopped
|
||||||
if (!mo->momx && !mo->momy)
|
if (!mo->momx && !mo->momy)
|
||||||
{
|
{
|
||||||
|
@ -1895,9 +1893,9 @@ void P_XYMovement(mobj_t *mo)
|
||||||
if (!P_TryMove(mo, mo->x + xmove, mo->y + ymove, true) && !(mo->eflags & MFE_SPRUNG))
|
if (!P_TryMove(mo, mo->x + xmove, mo->y + ymove, true) && !(mo->eflags & MFE_SPRUNG))
|
||||||
{
|
{
|
||||||
// blocked move
|
// blocked move
|
||||||
|
moved = false;
|
||||||
|
|
||||||
if (player) {
|
if (player) {
|
||||||
moved = false;
|
|
||||||
if (player->bot)
|
if (player->bot)
|
||||||
B_MoveBlocked(player);
|
B_MoveBlocked(player);
|
||||||
}
|
}
|
||||||
|
@ -2002,7 +2000,7 @@ void P_XYMovement(mobj_t *mo)
|
||||||
else
|
else
|
||||||
mo->momx = mo->momy = 0;
|
mo->momx = mo->momy = 0;
|
||||||
}
|
}
|
||||||
else if (player)
|
else
|
||||||
moved = true;
|
moved = true;
|
||||||
|
|
||||||
if (P_MobjWasRemoved(mo)) // MF_SPECIAL touched a player! O_o;;
|
if (P_MobjWasRemoved(mo)) // MF_SPECIAL touched a player! O_o;;
|
||||||
|
@ -2562,6 +2560,12 @@ static boolean P_ZMovement(mobj_t *mo)
|
||||||
mo->z = mo->floorz;
|
mo->z = mo->floorz;
|
||||||
|
|
||||||
#ifdef ESLOPE
|
#ifdef ESLOPE
|
||||||
|
if (mo->standingslope) // You're still on the ground; why are we here?
|
||||||
|
{
|
||||||
|
mo->momz = 0;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
P_CheckPosition(mo, mo->x, mo->y); // Sets mo->standingslope correctly
|
P_CheckPosition(mo, mo->x, mo->y); // Sets mo->standingslope correctly
|
||||||
if (((mo->eflags & MFE_VERTICALFLIP) ? tmceilingslope : tmfloorslope) && (mo->type != MT_STEAM))
|
if (((mo->eflags & MFE_VERTICALFLIP) ? tmceilingslope : tmfloorslope) && (mo->type != MT_STEAM))
|
||||||
{
|
{
|
||||||
|
|
23
src/p_user.c
23
src/p_user.c
|
@ -2271,25 +2271,24 @@ static void P_DoClimbing(player_t *player)
|
||||||
fixed_t platy;
|
fixed_t platy;
|
||||||
subsector_t *glidesector;
|
subsector_t *glidesector;
|
||||||
boolean climb = true;
|
boolean climb = true;
|
||||||
|
boolean onesided = ((player->lastsidehit != -1 && player->lastlinehit != -1) && !(lines[player->lastlinehit].backsector));
|
||||||
|
|
||||||
platx = P_ReturnThrustX(player->mo, player->mo->angle, player->mo->radius + FixedMul(8*FRACUNIT, player->mo->scale));
|
platx = P_ReturnThrustX(player->mo, player->mo->angle, player->mo->radius + FixedMul(8*FRACUNIT, player->mo->scale));
|
||||||
platy = P_ReturnThrustY(player->mo, player->mo->angle, player->mo->radius + FixedMul(8*FRACUNIT, player->mo->scale));
|
platy = P_ReturnThrustY(player->mo, player->mo->angle, player->mo->radius + FixedMul(8*FRACUNIT, player->mo->scale));
|
||||||
|
|
||||||
glidesector = R_IsPointInSubsector(player->mo->x + platx, player->mo->y + platy);
|
glidesector = R_PointInSubsector(player->mo->x + platx, player->mo->y + platy);
|
||||||
|
|
||||||
if (!glidesector || glidesector->sector != player->mo->subsector->sector)
|
if (onesided || glidesector->sector != player->mo->subsector->sector)
|
||||||
{
|
{
|
||||||
boolean floorclimb;
|
boolean floorclimb = false;
|
||||||
boolean thrust;
|
boolean thrust = false;
|
||||||
boolean boostup;
|
boolean boostup = false;
|
||||||
boolean skyclimber;
|
boolean skyclimber = false;
|
||||||
fixed_t floorheight, ceilingheight; // ESLOPE
|
fixed_t floorheight, ceilingheight; // ESLOPE
|
||||||
thrust = false;
|
|
||||||
floorclimb = false;
|
|
||||||
boostup = false;
|
|
||||||
skyclimber = false;
|
|
||||||
|
|
||||||
if (glidesector)
|
if (onesided)
|
||||||
|
floorclimb = true;
|
||||||
|
else
|
||||||
{
|
{
|
||||||
#ifdef ESLOPE
|
#ifdef ESLOPE
|
||||||
floorheight = glidesector->sector->f_slope ? P_GetZAt(glidesector->sector->f_slope, player->mo->x, player->mo->y)
|
floorheight = glidesector->sector->f_slope ? P_GetZAt(glidesector->sector->f_slope, player->mo->x, player->mo->y)
|
||||||
|
@ -2584,8 +2583,6 @@ static void P_DoClimbing(player_t *player)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
floorclimb = true;
|
|
||||||
|
|
||||||
if (player->lastsidehit != -1 && player->lastlinehit != -1)
|
if (player->lastsidehit != -1 && player->lastlinehit != -1)
|
||||||
{
|
{
|
||||||
|
|
|
@ -771,7 +771,7 @@ subsector_t *R_PointInSubsector(fixed_t x, fixed_t y)
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// R_IsPointInSubsector, same as above but returns 0 if not in subsector
|
// R_IsPointInSubsector, same as above but returns 0 if not in subsector - this does not work in opengl because of polyvertex_t
|
||||||
//
|
//
|
||||||
subsector_t *R_IsPointInSubsector(fixed_t x, fixed_t y)
|
subsector_t *R_IsPointInSubsector(fixed_t x, fixed_t y)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1385,6 +1385,10 @@ static void ST_drawMatchHUD(void)
|
||||||
if (G_TagGametype() && !(stplyr->pflags & PF_TAGIT))
|
if (G_TagGametype() && !(stplyr->pflags & PF_TAGIT))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
#ifdef HAVE_BLUA
|
||||||
|
if (LUA_HudEnabled(hud_weaponrings)) {
|
||||||
|
#endif
|
||||||
|
|
||||||
if (stplyr->powers[pw_infinityring])
|
if (stplyr->powers[pw_infinityring])
|
||||||
ST_drawWeaponRing(pw_infinityring, 0, 0, offset, infinityring);
|
ST_drawWeaponRing(pw_infinityring, 0, 0, offset, infinityring);
|
||||||
else if (stplyr->health > 1)
|
else if (stplyr->health > 1)
|
||||||
|
@ -1408,6 +1412,12 @@ static void ST_drawMatchHUD(void)
|
||||||
offset += 20;
|
offset += 20;
|
||||||
ST_drawWeaponRing(pw_railring, RW_RAIL, WEP_RAIL, offset, railring);
|
ST_drawWeaponRing(pw_railring, RW_RAIL, WEP_RAIL, offset, railring);
|
||||||
|
|
||||||
|
#ifdef HAVE_BLUA
|
||||||
|
}
|
||||||
|
|
||||||
|
if (LUA_HudEnabled(hud_powerstones)) {
|
||||||
|
#endif
|
||||||
|
|
||||||
// Power Stones collected
|
// Power Stones collected
|
||||||
offset = 136; // Used for Y now
|
offset = 136; // Used for Y now
|
||||||
|
|
||||||
|
@ -1439,6 +1449,10 @@ static void ST_drawMatchHUD(void)
|
||||||
|
|
||||||
if (stplyr->powers[pw_emeralds] & EMERALD7)
|
if (stplyr->powers[pw_emeralds] & EMERALD7)
|
||||||
V_DrawScaledPatch(28, STRINGY(offset), V_SNAPTOLEFT, tinyemeraldpics[6]);
|
V_DrawScaledPatch(28, STRINGY(offset), V_SNAPTOLEFT, tinyemeraldpics[6]);
|
||||||
|
|
||||||
|
#ifdef HAVE_BLUA
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void ST_drawRaceHUD(void)
|
static inline void ST_drawRaceHUD(void)
|
||||||
|
|
Loading…
Reference in a new issue