Merge branch 'public_next'

This commit is contained in:
Monster Iestyn 2016-08-27 15:49:32 +01:00
commit 541c53c3e1
8 changed files with 67 additions and 42 deletions

View file

@ -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)

View file

@ -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,

View file

@ -44,6 +44,9 @@ static const char *const hud_disable_options[] = {
"rings", "rings",
"lives", "lives",
"weaponrings",
"powerstones",
"nightslink", "nightslink",
"nightsdrill", "nightsdrill",
"nightsrings", "nightsrings",

View file

@ -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);

View file

@ -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))
{ {

View file

@ -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)
{ {

View file

@ -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)
{ {

View file

@ -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)