NOW we make it past p_mobj

This commit is contained in:
Sally Coolatta 2020-08-14 22:28:49 -04:00
parent 9c51086348
commit 5a98c00405
18 changed files with 210 additions and 2396 deletions

View file

@ -475,17 +475,14 @@ typedef struct player_s
playerstate_t playerstate;
// Determine POV, including viewpoint bobbing during movement.
fixed_t camerascale;
fixed_t shieldscale;
// Focal origin above r.z
fixed_t viewz;
// Base height above floor for viewz.
fixed_t viewheight;
// Bob/squat speed.
//fixed_t deltaviewheight;
fixed_t deltaviewheight;
// bounded/scaled total momentum.
//fixed_t bob;
fixed_t bob;
angle_t viewrollangle;

View file

@ -136,8 +136,8 @@ typedef struct
#define ML_NONET 4096 // Apply effect only in single player games
#define ML_EFFECT6 8192
// Bounce off walls!
#define ML_BOUNCY 16384
// Don't bounce off this wall!
#define ML_NOTBOUNCY 16384
#define ML_TFERLINE 32768

View file

@ -286,7 +286,7 @@ static void K_SpawnOvertimeParticles(fixed_t x, fixed_t y, fixed_t scale, mobjty
boolean flip[MAXPLANESPERSECTOR];
UINT8 numflats = 0;
mobj_t *mo;
subsector_t *ss = R_IsPointInSubsector(x, y);
subsector_t *ss = R_PointInSubsectorOrNull(x, y);
sector_t *sec;
if (!ss)

View file

@ -36,6 +36,20 @@
UINT8 K_ColorRelativeLuminance(UINT8 r, UINT8 g, UINT8 b);
/*--------------------------------------------------
UINT16 K_RainbowColor(tic_t time)
Gives you a color to use for rainbow effects (like invincibility).
Input Arguments:-
time - Time offset, usually is leveltime.
Return:-
Skincolor value.
--------------------------------------------------*/
UINT16 K_RainbowColor(tic_t time);
/*--------------------------------------------------
void K_RainbowColormap(UINT8 *dest_colormap, UINT8 skincolor);

View file

@ -1576,7 +1576,7 @@ static boolean K_drawKartPositionFaces(void)
else
Y -= (9*5);
if (G_BattleGametype() || strank <= 2) // too close to the top, or playing battle, or a spectator? would have had (strank == -1) called out, but already caught by (strank <= 2)
if (gametype == GT_BATTLE || strank <= 2) // too close to the top, or playing battle, or a spectator? would have had (strank == -1) called out, but already caught by (strank <= 2)
{
i = 0;
if (ranklines > 5) // could be both...
@ -1616,7 +1616,7 @@ static boolean K_drawKartPositionFaces(void)
if (LUA_HudEnabled(hud_battlebumpers))
{
#endif
if (G_BattleGametype() && players[rankplayer[i]].kartstuff[k_bumper] > 0)
if (gametype == GT_BATTLE && players[rankplayer[i]].kartstuff[k_bumper] > 0)
{
V_DrawMappedPatch(bumperx-2, Y, V_HUDTRANS|V_SLIDEIN|V_SNAPTOLEFT, kp_tinybumper[0], colormap);
for (j = 1; j < players[rankplayer[i]].kartstuff[k_bumper]; j++)
@ -1633,7 +1633,7 @@ static boolean K_drawKartPositionFaces(void)
if (i == strank)
V_DrawScaledPatch(FACE_X, Y, V_HUDTRANS|V_SLIDEIN|V_SNAPTOLEFT, kp_facehighlight[(leveltime / 4) % 8]);
if (G_BattleGametype() && players[rankplayer[i]].kartstuff[k_bumper] <= 0)
if (gametype == GT_BATTLE && players[rankplayer[i]].kartstuff[k_bumper] <= 0)
V_DrawScaledPatch(FACE_X-4, Y-3, V_HUDTRANS|V_SLIDEIN|V_SNAPTOLEFT, kp_ranknobumpers);
else
{
@ -1731,7 +1731,7 @@ void K_DrawTabRankings(INT32 x, INT32 y, playersort_t *tab, INT32 scorelines, IN
colormap = R_GetTranslationColormap(players[tab[i].num].skin, players[tab[i].num].mo->color, GTC_CACHE);
V_DrawMappedPatch(x, y-4, 0, facerankprefix[players[tab[i].num].skin], colormap);
/*if (G_BattleGametype() && players[tab[i].num].kartstuff[k_bumper] > 0) -- not enough space for this
/*if (gametype == GT_BATTLE && players[tab[i].num].kartstuff[k_bumper] > 0) -- not enough space for this
{
INT32 bumperx = x+19;
V_DrawMappedPatch(bumperx-2, y-4, 0, kp_tinybumper[0], colormap);
@ -1746,7 +1746,7 @@ void K_DrawTabRankings(INT32 x, INT32 y, playersort_t *tab, INT32 scorelines, IN
if (tab[i].num == whiteplayer)
V_DrawScaledPatch(x, y-4, 0, kp_facehighlight[(leveltime / 4) % 8]);
if (G_BattleGametype() && players[tab[i].num].kartstuff[k_bumper] <= 0)
if (gametype == GT_BATTLE && players[tab[i].num].kartstuff[k_bumper] <= 0)
V_DrawScaledPatch(x-4, y-7, 0, kp_ranknobumpers);
else
{
@ -1757,7 +1757,7 @@ void K_DrawTabRankings(INT32 x, INT32 y, playersort_t *tab, INT32 scorelines, IN
V_DrawScaledPatch(x-5, y+6, 0, kp_facenum[pos]);
}
if (G_RaceGametype())
if (gametype == GT_RACE)
{
#define timestring(time) va("%i'%02i\"%02i", G_TicsToMinutes(time, true), G_TicsToSeconds(time), G_TicsToCentiseconds(time))
if (scorelines > 8)
@ -1996,7 +1996,7 @@ static void K_drawKartSpeedometer(void)
numbers[1] = ((convSpeed / 10) % 10);
numbers[2] = (convSpeed % 10);
if (G_BattleGametype())
if (gametype == GT_BATTLE)
battleoffset = 8;
V_DrawScaledPatch(LAPS_X, LAPS_Y-25 + battleoffset, V_HUDTRANS|V_SLIDEIN|splitflags, kp_speedometersticker);
@ -2419,7 +2419,7 @@ static boolean K_ShowPlayerNametag(player_t *p)
return false;
}
if (G_RaceGametype())
if (gametype == GT_RACE)
{
if ((p->kartstuff[k_position] < stplyr->kartstuff[k_position]-2)
|| (p->kartstuff[k_position] > stplyr->kartstuff[k_position]+2))
@ -2814,7 +2814,7 @@ static void K_drawKartMinimap(void)
y -= SHORT(AutomapPic->topoffset);
// Draw the super item in Battle
if (G_BattleGametype() && battleovertime.enabled)
if (gametype == GT_BATTLE && battleovertime.enabled)
{
if (battleovertime.enabled >= 10*TICRATE || (battleovertime.enabled & 1))
{
@ -2831,7 +2831,7 @@ static void K_drawKartMinimap(void)
for (i = 0; i < 4; i++)
localplayers[i] = -1;
if (G_RaceGametype())
if (gametype == GT_RACE)
hyu *= 2; // double in race
// Player's tiny icons on the Automap. (drawn opposite direction so player 1 is drawn last in splitscreen)
@ -2874,7 +2874,7 @@ static void K_drawKartMinimap(void)
if (i != displayplayers[0] || r_splitscreen)
{
if (G_BattleGametype() && players[i].kartstuff[k_bumper] <= 0)
if (gametype == GT_BATTLE && players[i].kartstuff[k_bumper] <= 0)
continue;
if (players[i].kartstuff[k_hyudorotimer] > 0)
@ -2911,8 +2911,8 @@ static void K_drawKartMinimap(void)
K_drawKartMinimapIcon(players[i].mo->x, players[i].mo->y, x, y, splitflags, facemmapprefix[skin], colormap, AutomapPic);
// Target reticule
if ((G_RaceGametype() && players[i].kartstuff[k_position] == spbplace)
|| (G_BattleGametype() && K_IsPlayerWanted(&players[i])))
if ((gametype == GT_RACE && players[i].kartstuff[k_position] == spbplace)
|| (gametype == GT_BATTLE && K_IsPlayerWanted(&players[i])))
K_drawKartMinimapIcon(players[i].mo->x, players[i].mo->y, x, y, splitflags, kp_wantedreticle, NULL, AutomapPic);
}
}
@ -2964,8 +2964,8 @@ static void K_drawKartMinimap(void)
K_drawKartMinimapIcon(players[localplayers[i]].mo->x, players[localplayers[i]].mo->y, x, y, splitflags, facemmapprefix[skin], colormap, AutomapPic);
// Target reticule
if ((G_RaceGametype() && players[localplayers[i]].kartstuff[k_position] == spbplace)
|| (G_BattleGametype() && K_IsPlayerWanted(&players[localplayers[i]])))
if ((gametype == GT_RACE && players[localplayers[i]].kartstuff[k_position] == spbplace)
|| (gametype == GT_BATTLE && K_IsPlayerWanted(&players[localplayers[i]])))
K_drawKartMinimapIcon(players[localplayers[i]].mo->x, players[localplayers[i]].mo->y, x, y, splitflags, kp_wantedreticle, NULL, AutomapPic);
}
}
@ -3889,7 +3889,7 @@ void K_drawKartHUD(void)
return;
}
battlefullscreen = ((G_BattleGametype())
battlefullscreen = ((gametype == GT_BATTLE)
&& (stplyr->exiting
|| (stplyr->kartstuff[k_bumper] <= 0
&& stplyr->kartstuff[k_comebacktimer]
@ -3912,7 +3912,7 @@ void K_drawKartHUD(void)
K_drawKartNameTags();
// Draw WANTED status
if (G_BattleGametype())
if (gametype == GT_BATTLE)
{
#ifdef HAVE_BLUA
if (LUA_HudEnabled(hud_wanted))
@ -3996,7 +3996,7 @@ void K_drawKartHUD(void)
V_DrawTinyScaledPatch(x-54, y, 0, W_CachePatchName("TTKBANNR", PU_CACHE));
V_DrawTinyScaledPatch(x-54, y+25, 0, W_CachePatchName("TTKART", PU_CACHE));
}
else if (G_RaceGametype()) // Race-only elements
else if (gametype == GT_RACE) // Race-only elements
{
// Draw the lap counter
#ifdef HAVE_BLUA
@ -4023,7 +4023,7 @@ void K_drawKartHUD(void)
K_drawInput();
}
}
else if (G_BattleGametype()) // Battle-only
else if (gametype == GT_BATTLE) // Battle-only
{
// Draw the hits left!
#ifdef HAVE_BLUA
@ -4053,7 +4053,7 @@ void K_drawKartHUD(void)
}
// Race overlays
if (G_RaceGametype() && !freecam)
if (gametype == GT_RACE && !freecam)
{
if (stplyr->exiting)
K_drawKartFinish();
@ -4064,7 +4064,7 @@ void K_drawKartHUD(void)
if (modeattacking || freecam) // everything after here is MP and debug only
return;
if (G_BattleGametype() && !r_splitscreen && (stplyr->karthud[khud_yougotem] % 2)) // * YOU GOT EM *
if (gametype == GT_BATTLE && !r_splitscreen && (stplyr->karthud[khud_yougotem] % 2)) // * YOU GOT EM *
V_DrawScaledPatch(BASEVIDWIDTH/2 - (SHORT(kp_yougotem->width)/2), 32, V_HUDTRANS, kp_yougotem);
// Draw FREE PLAY.

View file

@ -1043,9 +1043,6 @@ fixed_t K_GetMobjWeight(mobj_t *mobj, mobj_t *against)
// This kind of wipeout happens with no rings -- doesn't remove a bumper, has no invulnerability, and is much shorter.
static void K_DebtStingPlayer(player_t *player, INT32 length)
{
if (player->health <= 0)
return;
if (player->powers[pw_flashing] > 0 || player->kartstuff[k_squishedtimer] > 0 || player->kartstuff[k_spinouttimer] > 0
|| player->kartstuff[k_invincibilitytimer] > 0 || player->kartstuff[k_growshrinktimer] > 0 || player->kartstuff[k_hyudorotimer] > 0
|| ((gametyperules & GTR_BUMPERS) && ((player->kartstuff[k_bumper] <= 0 && player->kartstuff[k_comebacktimer]) || player->kartstuff[k_comebackmode] == 1)))
@ -2271,7 +2268,7 @@ UINT16 K_GetKartFlashing(player_t *player)
tics += (tics/8) * (player->kartspeed);
if (G_BattleGametype())
if (gametype == GT_BATTLE)
tics *= 2;
return tics;
@ -2393,9 +2390,6 @@ void K_SpinPlayer(player_t *player, mobj_t *source, INT32 type, mobj_t *inflicto
scoremultiply = 2;
}
if (player->health <= 0)
return;
if (player->powers[pw_flashing] > 0 || player->kartstuff[k_squishedtimer] > 0 || (player->kartstuff[k_spinouttimer] > 0 && player->kartstuff[k_spinouttype] != 2)
|| player->kartstuff[k_invincibilitytimer] > 0 || player->kartstuff[k_growshrinktimer] > 0 || player->kartstuff[k_hyudorotimer] > 0
|| ((gametyperules & GTR_BUMPERS) && ((player->kartstuff[k_bumper] <= 0 && player->kartstuff[k_comebacktimer]) || player->kartstuff[k_comebackmode] == 1)))
@ -2537,9 +2531,6 @@ void K_SquishPlayer(player_t *player, mobj_t *source, mobj_t *inflictor)
scoremultiply = 2;
}
if (player->health <= 0)
return;
if (player->powers[pw_flashing] > 0 || player->kartstuff[k_squishedtimer] > 0 || player->kartstuff[k_invincibilitytimer] > 0
|| player->kartstuff[k_growshrinktimer] > 0 || player->kartstuff[k_hyudorotimer] > 0
|| ((gametyperules & GTR_BUMPERS) && ((player->kartstuff[k_bumper] <= 0 && player->kartstuff[k_comebacktimer]) || player->kartstuff[k_comebackmode] == 1)))
@ -2652,9 +2643,6 @@ void K_ExplodePlayer(player_t *player, mobj_t *source, mobj_t *inflictor) // A b
scoremultiply = 2;
}
if (player->health <= 0)
return;
if (player->kartstuff[k_invincibilitytimer] > 0 || player->kartstuff[k_growshrinktimer] > 0 || player->kartstuff[k_hyudorotimer] > 0 // Do not check spinout, because SPB and Eggman should combo
|| ((gametyperules & GTR_BUMPERS) && ((player->kartstuff[k_bumper] <= 0 && player->kartstuff[k_comebacktimer]) || player->kartstuff[k_comebackmode] == 1)))
{
@ -2763,9 +2751,6 @@ void K_StealBumper(player_t *player, player_t *victim, boolean force)
if (!(gametyperules & GTR_BUMPERS))
return;
if (player->health <= 0 || victim->health <= 0)
return;
if (!force)
{
if (victim->kartstuff[k_bumper] <= 0) // || player->kartstuff[k_bumper] >= K_StartingBumperCount()+2
@ -4895,8 +4880,10 @@ static void K_MoveHeldObjects(player_t *player)
cur->momx = FixedMul(FINECOSINE(cur->angle>>ANGLETOFINESHIFT), cur->extravalue1);
cur->momy = FixedMul(FINESINE(cur->angle>>ANGLETOFINESHIFT), cur->extravalue1);
cur->flags &= ~MF_NOCLIPTHING;
if (!P_TryMove(cur, player->mo->x + cur->momx, player->mo->y + cur->momy, true))
P_SlideMove(cur, true);
P_SlideMove(cur);
if (P_IsObjectOnGround(player->mo))
{
if (P_MobjFlip(cur) > 0)
@ -5361,7 +5348,7 @@ void K_KartPlayerHUDUpdate(player_t *player)
else if (player->karthud[khud_fault] > 0 && player->karthud[khud_fault] < 2*TICRATE)
player->karthud[khud_fault]++;
if (G_RaceGametype())
if (gametype == GT_RACE)
{
// 0 is the fast spin animation, set at 30 tics of ring boost or higher!
if (player->kartstuff[k_ringboost] >= 30)

View file

@ -35,11 +35,11 @@ SINT8 K_UsingPowerLevels(void)
return PWRLV_DISABLED;
}
if (G_RaceGametype())
if (gametype == GT_RACE)
{
pt = PWRLV_RACE;
}
else if (G_BattleGametype())
else if (gametype == GT_BATTLE)
{
pt = PWRLV_BATTLE;
}

View file

@ -1541,12 +1541,11 @@ static int lib_pTeleportMove(lua_State *L)
static int lib_pSlideMove(lua_State *L)
{
mobj_t *mo = *((mobj_t **)luaL_checkudata(L, 1, META_MOBJ));
boolean forceslide = luaL_checkboolean(L, 2);
NOHUD
INLEVEL
if (!mo)
return LUA_ErrInvalid(L, "mobj_t");
P_SlideMove(mo, forceslide);
P_SlideMove(mo);
return 0;
}

View file

@ -197,10 +197,6 @@ static int player_get(lua_State *L)
LUA_PushUserdata(L, &plr->cmd, META_TICCMD);
else if (fastcmp(field,"playerstate"))
lua_pushinteger(L, plr->playerstate);
else if (fastcmp(field,"camerascale"))
lua_pushfixed(L, plr->camerascale);
else if (fastcmp(field,"shieldscale"))
lua_pushfixed(L, plr->shieldscale);
else if (fastcmp(field,"viewz"))
lua_pushfixed(L, plr->viewz);
else if (fastcmp(field,"viewheight"))
@ -464,10 +460,6 @@ static int player_set(lua_State *L)
return NOSET;
else if (fastcmp(field,"playerstate"))
plr->playerstate = luaL_checkinteger(L, 3);
else if (fastcmp(field,"camerascale"))
plr->camerascale = luaL_checkfixed(L, 3);
else if (fastcmp(field,"shieldscale"))
plr->shieldscale = luaL_checkfixed(L, 3);
else if (fastcmp(field,"viewz"))
plr->viewz = luaL_checkfixed(L, 3);
else if (fastcmp(field,"viewheight"))

View file

@ -1062,8 +1062,8 @@ void OP_ObjectplaceMovement(player_t *player)
player->mo->eflags &= ~MFE_VERTICALFLIP;
// make sure viewz follows player if in 1st person mode
//player->deltaviewheight = 0;
player->viewheight = FixedMul(32 << FRACBITS, player->mo->scale);
player->deltaviewheight = 0;
player->viewheight = P_GetPlayerViewHeight(player);
if (player->mo->eflags & MFE_VERTICALFLIP)
player->viewz = player->mo->z + player->mo->height - player->viewheight;
else

View file

@ -293,7 +293,7 @@ boolean P_MobjWasRemoved(mobj_t *th);
void P_RemoveSavegameMobj(mobj_t *th);
boolean P_SetPlayerMobjState(mobj_t *mobj, statenum_t state);
boolean P_SetMobjState(mobj_t *mobj, statenum_t state);
//void P_RunShields(void);
void P_RunShields(void);
void P_RunOverlays(void);
void P_HandleMinecartSegments(mobj_t *mobj);
void P_MobjThinker(mobj_t *mobj);
@ -417,7 +417,7 @@ boolean P_CheckCameraPosition(fixed_t x, fixed_t y, camera_t *thiscam);
boolean P_TryMove(mobj_t *thing, fixed_t x, fixed_t y, boolean allowdropoff);
boolean P_Move(mobj_t *actor, fixed_t speed);
boolean P_TeleportMove(mobj_t *thing, fixed_t x, fixed_t y, fixed_t z);
void P_SlideMove(mobj_t *mo, boolean forceslide);
void P_SlideMove(mobj_t *mo);
void P_BouncePlayerMove(mobj_t *mo);
void P_BounceMove(mobj_t *mo);
boolean P_CheckSight(mobj_t *t1, mobj_t *t2);

View file

@ -3357,7 +3357,7 @@ static void P_CheckLavaWall(mobj_t *mo, sector_t *sec)
//
// This is a kludgy mess.
//
void P_SlideMove(mobj_t *mo, boolean forceslide)
void P_SlideMove(mobj_t *mo)
{
fixed_t leadx, leady, trailx, traily, newx, newy;
INT16 hitcount = 0;
@ -3541,13 +3541,6 @@ retry:
P_CheckLavaWall(mo, sec);
}
// Some walls are bouncy even if you're not
if (!forceslide && bestslideline && !(bestslideline->flags & ML_BOUNCY)) // SRB2kart - All walls are bouncy unless specified otherwise
{
P_BounceMove(mo);
return;
}
papercollision:
// move up to the wall
if (bestslidefrac == FRACUNIT+1)
@ -3637,7 +3630,7 @@ void P_BouncePlayerMove(mobj_t *mo)
if (mo->player->spectator)
{
P_SlideMove(mo, true);
P_SlideMove(mo);
return;
}
@ -3743,7 +3736,7 @@ void P_BounceMove(mobj_t *mo)
if (mo->eflags & MFE_JUSTBOUNCEDWALL)
{
P_SlideMove(mo, true);
P_SlideMove(mo);
return;
}
@ -3844,6 +3837,14 @@ bounceback:
tmymove = FixedMul(mmomy, (FRACUNIT - (FRACUNIT>>2) - (FRACUNIT>>3)));
}
// Some walls aren't bouncy even if you are
if (bestslideline && (bestslideline->flags & ML_NOTBOUNCY))
{
// SRB2Kart: Non-bouncy line!
P_SlideMove(mo);
return;
}
P_HitBounceLine(bestslideline); // clip the moves
mo->momx = tmxmove;

File diff suppressed because it is too large Load diff

View file

@ -1619,8 +1619,8 @@ static void ParseTextmapLinedefParameter(UINT32 i, char *param, char *val)
lines[i].flags |= ML_NONET;
else if (fastcmp(param, "netonly") && fastcmp("true", val))
lines[i].flags |= ML_NETONLY;
else if (fastcmp(param, "bouncy") && fastcmp("true", val))
lines[i].flags |= ML_BOUNCY;
else if (fastcmp(param, "notbouncy") && fastcmp("true", val))
lines[i].flags |= ML_NOTBOUNCY;
else if (fastcmp(param, "transfer") && fastcmp("true", val))
lines[i].flags |= ML_TFERLINE;
}
@ -3019,7 +3019,7 @@ static void P_ConvertBinaryMap(void)
lines[i].args[3] |= TMCF_SUBLIGHTG|TMCF_SUBFADEG;
if (lines[i].flags & ML_EFFECT2)
lines[i].args[3] |= TMCF_SUBLIGHTB|TMCF_SUBFADEB;
if (lines[i].flags & ML_BOUNCY)
if (lines[i].flags & ML_NOTBOUNCY)
lines[i].args[3] |= TMCF_FROMBLACK;
if (lines[i].flags & ML_EFFECT5)
lines[i].args[3] |= TMCF_OVERRIDE;
@ -3428,7 +3428,7 @@ static void P_InitLevelSettings(void)
// SRB2Kart: map load variables
if (grandprixinfo.gp == true)
{
if (G_BattleGametype())
if (gametype == GT_BATTLE)
{
gamespeed = KARTSPEED_EASY;
}

View file

@ -1262,7 +1262,7 @@ static boolean PolyFade(line_t *line)
if (po->translucency == pfd.destvalue)
return 1;
pfd.docollision = !(line->flags & ML_BOUNCY); // do not handle collision flags
pfd.docollision = !(line->flags & ML_NOTBOUNCY); // do not handle collision flags
pfd.doghostfade = (line->flags & ML_EFFECT1); // do ghost fade (no collision flags during fade)
pfd.ticbased = (line->flags & ML_EFFECT4); // Speed = Tic Duration
@ -1497,8 +1497,8 @@ void P_RunNightsCapsuleTouchExecutors(mobj_t *actor, boolean entering, boolean e
&& ((entering && (lines[i].flags & ML_TFERLINE))
|| (!entering && !(lines[i].flags & ML_TFERLINE)))
&& ((lines[i].flags & ML_DONTPEGTOP)
|| (enoughspheres && !(lines[i].flags & ML_BOUNCY))
|| (!enoughspheres && (lines[i].flags & ML_BOUNCY))))
|| (enoughspheres && !(lines[i].flags & ML_NOTBOUNCY))
|| (!enoughspheres && (lines[i].flags & ML_NOTBOUNCY))))
P_RunTriggerLinedef(&lines[i], actor, NULL);
}
}
@ -2521,7 +2521,7 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
mapmusflags = tracknum & MUSIC_TRACKMASK;
if (!(line->flags & ML_BLOCKPLAYERS))
mapmusflags |= MUSIC_RELOADRESET;
if (line->flags & ML_BOUNCY)
if (line->flags & ML_NOTBOUNCY)
mapmusflags |= MUSIC_FORCERESET;
mapmusposition = position;
@ -2932,7 +2932,7 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
mo->player->rmomx = mo->player->rmomy = 1;
mo->player->cmomx = mo->player->cmomy = 0;
P_ResetPlayer(mo->player);
P_SetPlayerMobjState(mo, S_KART_STILL1);
P_SetPlayerMobjState(mo, S_KART_STILL);
}
break;
@ -3553,7 +3553,7 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
!(line->flags & ML_NOCLIMB), // do not handle FF_TRANSLUCENT
!(line->flags & ML_EFFECT2), // do not handle lighting
!(line->flags & ML_EFFECT2), // do not handle colormap (ran out of flags)
!(line->flags & ML_BOUNCY), // do not handle collision
!(line->flags & ML_NOTBOUNCY), // do not handle collision
(line->flags & ML_EFFECT1), // do ghost fade (no collision during fade)
(line->flags & ML_TFERLINE)); // use exact alpha values (for opengl)
else
@ -3578,7 +3578,7 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
!(line->flags & ML_NOCLIMB), // do not handle FF_TRANSLUCENT
!(line->flags & ML_EFFECT2), // do not handle lighting
!(line->flags & ML_EFFECT2), // do not handle colormap (ran out of flags)
!(line->flags & ML_BOUNCY), // do not handle collision
!(line->flags & ML_NOTBOUNCY), // do not handle collision
(line->flags & ML_EFFECT1), // do ghost fade (no collision during fade)
(line->flags & ML_TFERLINE)); // use exact alpha values (for opengl)
}
@ -5872,7 +5872,7 @@ static void P_AddEachTimeThinker(line_t *sourceline)
eachtime->thinker.function.acp1 = (actionf_p1)T_EachTimeThinker;
eachtime->sourceline = sourceline;
eachtime->triggerOnExit = !!(sourceline->flags & ML_BOUNCY);
eachtime->triggerOnExit = !!(sourceline->flags & ML_NOTBOUNCY);
}
/** Adds a camera scanner.

View file

@ -94,7 +94,7 @@ void P_MixUp(mobj_t *thing, fixed_t x, fixed_t y, fixed_t z, angle_t angle,
P_ResetStarposts();
P_ResetPlayer(thing->player);
P_SetPlayerMobjState(thing, S_KART_STILL1); // SRB2kart - was S_PLAY_STND
P_SetPlayerMobjState(thing, S_KART_STILL); // SRB2kart - was S_PLAY_STND
P_FlashPal(thing->player, PAL_MIXUP, 10);
}

View file

@ -588,7 +588,7 @@ void P_Ticker(boolean run)
}
// Run shield positioning
//P_RunShields();
P_RunShields();
P_RunOverlays();
P_UpdateSpecials();
@ -769,7 +769,7 @@ void P_PreTicker(INT32 frames)
LUAh_ThinkFrame();
// Run shield positioning
//P_RunShields();
P_RunShields();
P_RunOverlays();
P_UpdateSpecials();

View file

@ -1672,7 +1672,7 @@ static void P_CheckBouncySectors(player_t *player)
goto bouncydone;
}
if (!(rover->master->flags & ML_BOUNCY))
if (!(rover->master->flags & ML_NOTBOUNCY))
{
if (newmom > 0)
{
@ -1870,11 +1870,8 @@ static void P_3dMovement(player_t *player)
{
ticcmd_t *cmd;
angle_t movepushangle; // Analog
//INT32 topspeed, acceleration, thrustfactor;
fixed_t movepushforward = 0;
angle_t dangle; // replaces old quadrants bits
//boolean dangleflip = false; // SRB2kart - toaster
//fixed_t normalspd = FixedMul(player->normalspeed, player->mo->scale);
fixed_t oldMagnitude, newMagnitude;
#ifdef ESLOPE
vector3_t totalthrust;
@ -4433,8 +4430,8 @@ void P_PlayerThink(player_t *player)
if (player->spectator)
{
//player->score = 0;
player->rings = 0;
player->mo->health = 1;
player->health = 1;
}
// SRB2kart 010217