From b8f2fe4bcc7162714cd212c2f1b054acf5c162fc Mon Sep 17 00:00:00 2001 From: Latapostrophe Date: Fri, 24 Jul 2020 15:04:55 +0200 Subject: [PATCH 1/6] Fix respawns in antigrav --- src/k_respawn.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/k_respawn.c b/src/k_respawn.c index 6c20c8f62..71b96e085 100644 --- a/src/k_respawn.c +++ b/src/k_respawn.c @@ -34,13 +34,22 @@ fixed_t K_RespawnOffset(player_t *player, boolean flip) if (flip == true) { - player->mo->flags2 |= MF2_OBJECTFLIP; + // Lat 24/7/20: Okay so before we even think about applying this flag, check if the sector we're in doesn't already have reverse gravity for that. + // Otherwise, we would reverse the reverse gravity and cancel it out. Yes, this is absolutely fucking dumb. + // I'm honestly not sure if this flag is even necessary anymore but we'll keep it just in case. + + if (P_GetMobjGravity(player->mo) < 0) + player->mo->flags2 |= MF2_OBJECTFLIP; + player->mo->eflags |= MFE_VERTICALFLIP; - z -= (128 * mapobjectscale) - (player->mo->height); + z -= ((128 * mapobjectscale) + (player->mo->height)); } else { - player->mo->flags2 &= ~MF2_OBJECTFLIP; + + if (P_GetMobjGravity(player->mo) > 0) + player->mo->flags2 &= ~MF2_OBJECTFLIP; // See comment above, ditto. + player->mo->eflags &= ~MFE_VERTICALFLIP; z += (128 * mapobjectscale); } @@ -75,7 +84,7 @@ static void K_RespawnAtWaypoint(player_t *player, waypoint_t *waypoint) player->respawn.pointx = waypoint->mobj->x; player->respawn.pointy = waypoint->mobj->y; player->respawn.pointz = waypoint->mobj->z; - player->respawn.flip = (waypoint->mobj->flags2 & MF2_OBJECTFLIP); + player->respawn.flip = (waypoint->mobj->flags2 & MF2_OBJECTFLIP) ? true : false; // K_RespawnOffset wants a boolean! player->respawn.pointz += K_RespawnOffset(player, player->respawn.flip); } @@ -301,7 +310,7 @@ static void K_MovePlayerToRespawnPoint(player_t *player) // Reduce by the amount we needed to get to this waypoint stepamt -= dist; - // We've reached the destination point, + // We've reached the destination point, P_UnsetThingPosition(player->mo); player->mo->x = dest.x; player->mo->y = dest.y; From fcacb092b7b49c6f8679288d6f4cea9b71f702ce Mon Sep 17 00:00:00 2001 From: Latapostrophe Date: Fri, 24 Jul 2020 15:51:59 +0200 Subject: [PATCH 2/6] Various antigrav item fixes --- src/k_kart.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index 810b95e24..68fbd8daa 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -2909,13 +2909,10 @@ static mobj_t *K_SpawnKartMissile(mobj_t *source, mobjtype_t type, angle_t an, I y = source->y + source->momy + FixedMul(finalspeed, FINESINE(an>>ANGLETOFINESHIFT)); z = source->z; // spawn on the ground please - if (P_MobjFlip(source) < 0) - { - z = source->z+source->height - mobjinfo[type].height; - } - th = P_SpawnMobj(x, y, z, type); + K_FlipFromObject(th, source); + th->flags2 |= flags2; th->threshold = 10; @@ -3654,8 +3651,8 @@ static mobj_t *K_ThrowKartItem(player_t *player, boolean missile, mobjtype_t map if (player->mo->eflags & MFE_VERTICALFLIP) { mo->z -= player->mo->height; - mo->flags2 |= MF2_OBJECTFLIP; mo->eflags |= MFE_VERTICALFLIP; + mo->flags2 |= (player->mo->flags2 & MF2_OBJECTFLIP); } mo->threshold = 10; @@ -3685,8 +3682,8 @@ static mobj_t *K_ThrowKartItem(player_t *player, boolean missile, mobjtype_t map if (player->mo->eflags & MFE_VERTICALFLIP) { throwmo->z -= player->mo->height; - throwmo->flags2 |= MF2_OBJECTFLIP; throwmo->eflags |= MFE_VERTICALFLIP; + mo->flags2 |= (player->mo->flags2 & MF2_OBJECTFLIP); } throwmo->movecount = 0; // above player @@ -4296,6 +4293,7 @@ void K_DropHnextList(player_t *player, boolean keepshields) dropwork->flags |= MF_NOCLIPTHING; dropwork->flags2 = work->flags2; + dropwork->eflags = work->eflags; dropwork->floorz = work->floorz; dropwork->ceilingz = work->ceilingz; @@ -4402,6 +4400,8 @@ void K_DropItems(player_t *player) drop->threshold = player->kartstuff[k_itemtype]; drop->movecount = player->kartstuff[k_itemamount]; + K_FlipFromObject(drop, player->mo); + drop->flags |= MF_NOCLIPTHING; } @@ -4747,6 +4747,9 @@ static void K_MoveHeldObjects(player_t *player) cur->flags &= ~MF_NOCLIPTHING; + if ((player->mo->eflags & MFE_VERTICALFLIP) != (cur->eflags & MFE_VERTICALFLIP)) + K_FlipFromObject(cur, player->mo); + if (!cur->health) { cur = cur->hnext; @@ -6956,6 +6959,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground) mo = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_EGGMANITEM_SHIELD); if (mo) { + K_FlipFromObject(mo, player->mo); mo->flags |= MF_NOCLIPTHING; mo->threshold = 10; mo->movecount = 1; From 06d70c1f8e247d88449690cc5ed3bc93926d3feb Mon Sep 17 00:00:00 2001 From: Latapostrophe Date: Fri, 24 Jul 2020 16:17:07 +0200 Subject: [PATCH 3/6] Push flipcam down the nearest staircase --- src/d_netcmd.c | 63 -------------------------------------------------- src/d_player.h | 62 ++++++++++++++++++++++++------------------------- src/dehacked.c | 3 --- src/g_game.c | 15 +++++------- src/p_mobj.c | 24 ------------------- src/r_main.c | 33 -------------------------- src/r_main.h | 1 - 7 files changed, 36 insertions(+), 165 deletions(-) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index b55441b2d..9ade70301 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -65,7 +65,6 @@ // ------ static void Got_NameAndColor(UINT8 **cp, INT32 playernum); -static void Got_WeaponPref(UINT8 **cp, INT32 playernum); static void Got_PowerLevel(UINT8 **cp, INT32 playernum); static void Got_PartyInvite(UINT8 **cp, INT32 playernum); static void Got_AcceptPartyInvite(UINT8 **cp, INT32 playernum); @@ -222,11 +221,6 @@ static void Command_KartGiveItem_f(void); // CLIENT VARIABLES // ========================================================================= -void SendWeaponPref(void); -void SendWeaponPref2(void); -void SendWeaponPref3(void); -void SendWeaponPref4(void); - static CV_PossibleValue_t usemouse_cons_t[] = {{0, "Off"}, {1, "On"}, {2, "Force"}, {0, NULL}}; #if (defined (__unix__) && !defined (MSDOS)) || defined(__APPLE__) || defined (UNIXCOMMON) static CV_PossibleValue_t mouse2port_cons_t[] = {{0, "/dev/gpmdata"}, {1, "/dev/ttyS0"}, @@ -630,7 +624,6 @@ void D_RegisterServerCommands(void) Forceskin_cons_t[i].strvalue = NULL; } RegisterNetXCmd(XD_NAMEANDCOLOR, Got_NameAndColor); - RegisterNetXCmd(XD_WEAPONPREF, Got_WeaponPref); RegisterNetXCmd(XD_POWERLEVEL, Got_PowerLevel); RegisterNetXCmd(XD_PARTYINVITE, Got_PartyInvite); RegisterNetXCmd(XD_ACCEPTPARTYINVITE, Got_AcceptPartyInvite); @@ -2100,55 +2093,6 @@ static void Got_NameAndColor(UINT8 **cp, INT32 playernum) SetFollower(playernum, follower); } -void SendWeaponPref(void) -{ - XBOXSTATIC UINT8 buf[1]; - - buf[0] = 0; - if (cv_flipcam.value) - buf[0] |= 1; - SendNetXCmd(XD_WEAPONPREF, buf, 1); -} - -void SendWeaponPref2(void) -{ - XBOXSTATIC UINT8 buf[1]; - - buf[0] = 0; - if (cv_flipcam2.value) - buf[0] |= 1; - SendNetXCmd2(XD_WEAPONPREF, buf, 1); -} - -void SendWeaponPref3(void) -{ - XBOXSTATIC UINT8 buf[1]; - - buf[0] = 0; - if (cv_flipcam3.value) - buf[0] |= 1; - SendNetXCmd3(XD_WEAPONPREF, buf, 1); -} - -void SendWeaponPref4(void) -{ - XBOXSTATIC UINT8 buf[1]; - - buf[0] = 0; - if (cv_flipcam4.value) - buf[0] |= 1; - SendNetXCmd4(XD_WEAPONPREF, buf, 1); -} - -static void Got_WeaponPref(UINT8 **cp,INT32 playernum) -{ - UINT8 prefs = READUINT8(*cp); - - players[playernum].pflags &= ~(PF_FLIPCAM); - if (prefs & 1) - players[playernum].pflags |= PF_FLIPCAM; -} - static void Got_PowerLevel(UINT8 **cp,INT32 playernum) { UINT16 race = (UINT16)READUINT16(*cp); @@ -2356,13 +2300,6 @@ void D_SendPlayerConfig(void) SendNameAndColor3(); if (splitscreen > 2) SendNameAndColor4(); - SendWeaponPref(); - if (splitscreen) - SendWeaponPref2(); - if (splitscreen > 1) - SendWeaponPref3(); - if (splitscreen > 2) - SendWeaponPref4(); { UINT8 buf[4]; diff --git a/src/d_player.h b/src/d_player.h index 4ae420052..8ee63ca20 100644 --- a/src/d_player.h +++ b/src/d_player.h @@ -56,72 +56,70 @@ typedef enum // typedef enum { - // Flip camera angle with gravity flip prefrence. - PF_FLIPCAM = 1, // Cheats - PF_GODMODE = 1<<1, - PF_NOCLIP = 1<<2, - PF_INVIS = 1<<3, + PF_GODMODE = 1, + PF_NOCLIP = 1<<1, + PF_INVIS = 1<<2, // True if button down last tic. - PF_ATTACKDOWN = 1<<4, - PF_USEDOWN = 1<<5, - PF_JUMPDOWN = 1<<6, - PF_WPNDOWN = 1<<7, + PF_ATTACKDOWN = 1<<3, + PF_USEDOWN = 1<<4, + PF_JUMPDOWN = 1<<5, + PF_WPNDOWN = 1<<6, // Unmoving states - PF_STASIS = 1<<8, // Player is not allowed to move - PF_JUMPSTASIS = 1<<9, // and that includes jumping. + PF_STASIS = 1<<7, // Player is not allowed to move + PF_JUMPSTASIS = 1<<8, // and that includes jumping. PF_FULLSTASIS = PF_STASIS|PF_JUMPSTASIS, // Did you get a time-over? - PF_TIMEOVER = 1<<10, + PF_TIMEOVER = 1<<9, // SRB2Kart: Spectator that wants to join - PF_WANTSTOJOIN = 1<<11, + PF_WANTSTOJOIN = 1<<10, // Character action status - PF_JUMPED = 1<<12, - PF_SPINNING = 1<<13, - PF_STARTDASH = 1<<14, - PF_THOKKED = 1<<15, + PF_JUMPED = 1<<11, + PF_SPINNING = 1<<12, + PF_STARTDASH = 1<<13, + PF_THOKKED = 1<<14, // Are you gliding? - PF_GLIDING = 1<<16, + PF_GLIDING = 1<<15, // Tails pickup! - PF_CARRIED = 1<<17, + PF_CARRIED = 1<<16, // Sliding (usually in water) like Labyrinth/Oil Ocean - PF_SLIDING = 1<<18, + PF_SLIDING = 1<<17, // Hanging on a rope - PF_ROPEHANG = 1<<19, + PF_ROPEHANG = 1<<18, // Hanging on an item of some kind - zipline, chain, etc. (->tracer) - PF_ITEMHANG = 1<<20, + PF_ITEMHANG = 1<<19, // On the mace chain spinning around (->tracer) - PF_MACESPIN = 1<<21, + PF_MACESPIN = 1<<20, /*** NIGHTS STUFF ***/ // Is the player in NiGHTS mode? - PF_NIGHTSMODE = 1<<22, - PF_TRANSFERTOCLOSEST = 1<<23, + PF_NIGHTSMODE = 1<<21, + PF_TRANSFERTOCLOSEST = 1<<22, // Spill rings after falling - PF_NIGHTSFALL = 1<<24, - PF_DRILLING = 1<<25, - PF_SKIDDOWN = 1<<26, + PF_NIGHTSFALL = 1<<23, + PF_DRILLING = 1<<24, + PF_SKIDDOWN = 1<<25, /*** TAG STUFF ***/ - PF_TAGGED = 1<<27, // Player has been tagged and awaits the next round in hide and seek. - PF_TAGIT = 1<<28, // The player is it! For Tag Mode + PF_TAGGED = 1<<26, // Player has been tagged and awaits the next round in hide and seek. + PF_TAGIT = 1<<27, // The player is it! For Tag Mode /*** misc ***/ - PF_FORCESTRAFE = 1<<29, // Turning inputs are translated into strafing inputs - PF_HITFINISHLINE = 1<<30, // Already hit the finish line this tic + PF_FORCESTRAFE = 1<<28, // Turning inputs are translated into strafing inputs + PF_HITFINISHLINE = 1<<29, // Already hit the finish line this tic // free: 1<<30 and 1<<31 } pflags_t; diff --git a/src/dehacked.c b/src/dehacked.c index 372863bd5..92e80a475 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -8481,9 +8481,6 @@ static const char *const MAPTHINGFLAG_LIST[4] = { #endif static const char *const PLAYERFLAG_LIST[] = { - // Flip camera angle with gravity flip prefrence. - "FLIPCAM", - // Cheats "GODMODE", "NOCLIP", diff --git a/src/g_game.c b/src/g_game.c index 1b994ede1..fed573d13 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -1506,10 +1506,7 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer) // spectator aiming shit, ahhhh... { INT32 player_invert = invertmouse ? -1 : 1; - INT32 screen_invert = - (player->mo && (player->mo->eflags & MFE_VERTICALFLIP) - && (!thiscam->chase || player->pflags & PF_FLIPCAM)) //because chasecam's not inverted - ? -1 : 1; // set to -1 or 1 to multiply + INT32 screen_invert = (player->mo && (player->mo->eflags & MFE_VERTICALFLIP) && (!thiscam->chase)) ? -1 : 1; // set to -1 or 1 to multiply // mouse look stuff (mouse look is not the same as mouse aim) if (mouseaiming && player->spectator) @@ -1677,7 +1674,7 @@ static void Analog_OnChange(void) } */ - SendWeaponPref(); + //SendWeaponPref(); } static void Analog2_OnChange(void) @@ -1694,7 +1691,7 @@ static void Analog2_OnChange(void) } */ - SendWeaponPref2(); + //SendWeaponPref2(); } static void Analog3_OnChange(void) @@ -1711,7 +1708,7 @@ static void Analog3_OnChange(void) } */ - SendWeaponPref3(); + //SendWeaponPref3(); } static void Analog4_OnChange(void) @@ -1728,7 +1725,7 @@ static void Analog4_OnChange(void) } */ - SendWeaponPref4(); + //SendWeaponPref4(); } // @@ -2619,7 +2616,7 @@ void G_PlayerReborn(INT32 player) jointime = players[player].jointime; splitscreenindex = players[player].splitscreenindex; spectator = players[player].spectator; - pflags = (players[player].pflags & (PF_TIMEOVER|PF_FLIPCAM|PF_TAGIT|PF_TAGGED|PF_WANTSTOJOIN)); + pflags = (players[player].pflags & (PF_TIMEOVER|PF_TAGIT|PF_TAGGED|PF_WANTSTOJOIN)); // As long as we're not in multiplayer, carry over cheatcodes from map to map if (!(netgame || multiplayer)) diff --git a/src/p_mobj.c b/src/p_mobj.c index 2547f3212..027655f47 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -1168,26 +1168,6 @@ static void P_PlayerFlip(mobj_t *mo) if (mo->tracer) mo->tracer->eflags ^= MFE_VERTICALFLIP; } - else if (mo->player->pflags & PF_FLIPCAM) - { - UINT8 i; - - mo->player->aiming = InvAngle(mo->player->aiming); - - for (i = 0; i <= r_splitscreen; i++) - { - if (mo->player-players == displayplayers[i]) - { - localaiming[i] = mo->player->aiming; - if (camera[i].chase) { - camera[i].aiming = InvAngle(camera[i].aiming); - camera[i].z = mo->z - camera[i].z + mo->z; - if (mo->eflags & MFE_VERTICALFLIP) - camera[i].z += FixedMul(20*FRACUNIT, mo->scale); - } - } - } - } } // @@ -3599,8 +3579,6 @@ boolean P_CameraThinker(player_t *player, camera_t *thiscam, boolean resetcalled if (encoremode) postimg = postimg_mirror; - else if (player->pflags & PF_FLIPCAM && !(player->pflags & PF_NIGHTSMODE) && player->mo->eflags & MFE_VERTICALFLIP) - postimg = postimg_flip; else if (player->awayviewtics && player->awayviewmobj && !P_MobjWasRemoved(player->awayviewmobj)) // Camera must obviously exist { camera_t dummycam; @@ -7059,8 +7037,6 @@ void P_MobjThinker(mobj_t *mobj) if (mobj->target->eflags & MFE_VERTICALFLIP) { mobj->z = mobj->target->z - FixedMul(16*FRACUNIT, mobj->target->scale) - mobj->height; - if (mobj->target->player->pflags & PF_FLIPCAM) - mobj->eflags |= MFE_VERTICALFLIP; } else mobj->z = mobj->target->z + (mobj->target->height) + FixedMul(8*FRACUNIT, mobj->target->scale); // Adjust height for height changes diff --git a/src/r_main.c b/src/r_main.c index 5f7b0cadd..15278e66f 100644 --- a/src/r_main.c +++ b/src/r_main.c @@ -151,10 +151,6 @@ static void ChaseCam_OnChange(void); static void ChaseCam2_OnChange(void); static void ChaseCam3_OnChange(void); static void ChaseCam4_OnChange(void); -static void FlipCam_OnChange(void); -static void FlipCam2_OnChange(void); -static void FlipCam3_OnChange(void); -static void FlipCam4_OnChange(void); void SendWeaponPref(void); void SendWeaponPref2(void); void SendWeaponPref3(void); @@ -165,10 +161,6 @@ consvar_t cv_chasecam = {"chasecam", "On", CV_CALL, CV_OnOff, ChaseCam_OnChange, consvar_t cv_chasecam2 = {"chasecam2", "On", CV_CALL, CV_OnOff, ChaseCam2_OnChange, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_chasecam3 = {"chasecam3", "On", CV_CALL, CV_OnOff, ChaseCam3_OnChange, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_chasecam4 = {"chasecam4", "On", CV_CALL, CV_OnOff, ChaseCam4_OnChange, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_flipcam = {"flipcam", "No", CV_SAVE|CV_CALL|CV_NOINIT, CV_YesNo, FlipCam_OnChange, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_flipcam2 = {"flipcam2", "No", CV_SAVE|CV_CALL|CV_NOINIT, CV_YesNo, FlipCam2_OnChange, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_flipcam3 = {"flipcam3", "No", CV_SAVE|CV_CALL|CV_NOINIT, CV_YesNo, FlipCam3_OnChange, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_flipcam4 = {"flipcam4", "No", CV_SAVE|CV_CALL|CV_NOINIT, CV_YesNo, FlipCam4_OnChange, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_shadow = {"shadow", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_skybox = {"skybox", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; @@ -282,27 +274,6 @@ static void ChaseCam4_OnChange(void) else CV_SetValue(&cv_analog4, 1);*/ } - -static void FlipCam_OnChange(void) -{ - SendWeaponPref(); -} - -static void FlipCam2_OnChange(void) -{ - SendWeaponPref2(); -} - -static void FlipCam3_OnChange(void) -{ - SendWeaponPref3(); -} - -static void FlipCam4_OnChange(void) -{ - SendWeaponPref4(); -} - // // R_PointOnSide // Traverse BSP (sub) tree, @@ -1488,10 +1459,6 @@ void R_RegisterEngineStuff(void) CV_RegisterVar(&cv_soniccd); CV_RegisterVar(&cv_allowmlook); CV_RegisterVar(&cv_homremoval); - CV_RegisterVar(&cv_flipcam); - CV_RegisterVar(&cv_flipcam2); - CV_RegisterVar(&cv_flipcam3); - CV_RegisterVar(&cv_flipcam4); // Enough for dedicated server if (dedicated) diff --git a/src/r_main.h b/src/r_main.h index 879d4c6eb..ea6f6aa87 100644 --- a/src/r_main.h +++ b/src/r_main.h @@ -75,7 +75,6 @@ boolean R_DoCulling(line_t *cullheight, line_t *viewcullheight, fixed_t vz, fixe extern consvar_t cv_showhud, cv_translucenthud; extern consvar_t cv_homremoval; extern consvar_t cv_chasecam, cv_chasecam2, cv_chasecam3, cv_chasecam4; -extern consvar_t cv_flipcam, cv_flipcam2, cv_flipcam3, cv_flipcam4; extern consvar_t cv_shadow; extern consvar_t cv_translucency; extern consvar_t /*cv_precipdensity,*/ cv_drawdist, /*cv_drawdist_nights,*/ cv_drawdist_precip; From 90cde7379c4527605731dfd43a7f4e83537c24cd Mon Sep 17 00:00:00 2001 From: Latapostrophe Date: Sun, 26 Jul 2020 20:27:22 +0200 Subject: [PATCH 4/6] Revert "Push flipcam down the nearest staircase" This reverts commit 06d70c1f8e247d88449690cc5ed3bc93926d3feb. --- src/d_netcmd.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/d_player.h | 62 +++++++++++++++++++++++++------------------------ src/dehacked.c | 3 +++ src/g_game.c | 15 +++++++----- src/p_mobj.c | 24 +++++++++++++++++++ src/r_main.c | 33 ++++++++++++++++++++++++++ src/r_main.h | 1 + 7 files changed, 165 insertions(+), 36 deletions(-) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index 9ade70301..b55441b2d 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -65,6 +65,7 @@ // ------ static void Got_NameAndColor(UINT8 **cp, INT32 playernum); +static void Got_WeaponPref(UINT8 **cp, INT32 playernum); static void Got_PowerLevel(UINT8 **cp, INT32 playernum); static void Got_PartyInvite(UINT8 **cp, INT32 playernum); static void Got_AcceptPartyInvite(UINT8 **cp, INT32 playernum); @@ -221,6 +222,11 @@ static void Command_KartGiveItem_f(void); // CLIENT VARIABLES // ========================================================================= +void SendWeaponPref(void); +void SendWeaponPref2(void); +void SendWeaponPref3(void); +void SendWeaponPref4(void); + static CV_PossibleValue_t usemouse_cons_t[] = {{0, "Off"}, {1, "On"}, {2, "Force"}, {0, NULL}}; #if (defined (__unix__) && !defined (MSDOS)) || defined(__APPLE__) || defined (UNIXCOMMON) static CV_PossibleValue_t mouse2port_cons_t[] = {{0, "/dev/gpmdata"}, {1, "/dev/ttyS0"}, @@ -624,6 +630,7 @@ void D_RegisterServerCommands(void) Forceskin_cons_t[i].strvalue = NULL; } RegisterNetXCmd(XD_NAMEANDCOLOR, Got_NameAndColor); + RegisterNetXCmd(XD_WEAPONPREF, Got_WeaponPref); RegisterNetXCmd(XD_POWERLEVEL, Got_PowerLevel); RegisterNetXCmd(XD_PARTYINVITE, Got_PartyInvite); RegisterNetXCmd(XD_ACCEPTPARTYINVITE, Got_AcceptPartyInvite); @@ -2093,6 +2100,55 @@ static void Got_NameAndColor(UINT8 **cp, INT32 playernum) SetFollower(playernum, follower); } +void SendWeaponPref(void) +{ + XBOXSTATIC UINT8 buf[1]; + + buf[0] = 0; + if (cv_flipcam.value) + buf[0] |= 1; + SendNetXCmd(XD_WEAPONPREF, buf, 1); +} + +void SendWeaponPref2(void) +{ + XBOXSTATIC UINT8 buf[1]; + + buf[0] = 0; + if (cv_flipcam2.value) + buf[0] |= 1; + SendNetXCmd2(XD_WEAPONPREF, buf, 1); +} + +void SendWeaponPref3(void) +{ + XBOXSTATIC UINT8 buf[1]; + + buf[0] = 0; + if (cv_flipcam3.value) + buf[0] |= 1; + SendNetXCmd3(XD_WEAPONPREF, buf, 1); +} + +void SendWeaponPref4(void) +{ + XBOXSTATIC UINT8 buf[1]; + + buf[0] = 0; + if (cv_flipcam4.value) + buf[0] |= 1; + SendNetXCmd4(XD_WEAPONPREF, buf, 1); +} + +static void Got_WeaponPref(UINT8 **cp,INT32 playernum) +{ + UINT8 prefs = READUINT8(*cp); + + players[playernum].pflags &= ~(PF_FLIPCAM); + if (prefs & 1) + players[playernum].pflags |= PF_FLIPCAM; +} + static void Got_PowerLevel(UINT8 **cp,INT32 playernum) { UINT16 race = (UINT16)READUINT16(*cp); @@ -2300,6 +2356,13 @@ void D_SendPlayerConfig(void) SendNameAndColor3(); if (splitscreen > 2) SendNameAndColor4(); + SendWeaponPref(); + if (splitscreen) + SendWeaponPref2(); + if (splitscreen > 1) + SendWeaponPref3(); + if (splitscreen > 2) + SendWeaponPref4(); { UINT8 buf[4]; diff --git a/src/d_player.h b/src/d_player.h index 8ee63ca20..4ae420052 100644 --- a/src/d_player.h +++ b/src/d_player.h @@ -56,70 +56,72 @@ typedef enum // typedef enum { + // Flip camera angle with gravity flip prefrence. + PF_FLIPCAM = 1, // Cheats - PF_GODMODE = 1, - PF_NOCLIP = 1<<1, - PF_INVIS = 1<<2, + PF_GODMODE = 1<<1, + PF_NOCLIP = 1<<2, + PF_INVIS = 1<<3, // True if button down last tic. - PF_ATTACKDOWN = 1<<3, - PF_USEDOWN = 1<<4, - PF_JUMPDOWN = 1<<5, - PF_WPNDOWN = 1<<6, + PF_ATTACKDOWN = 1<<4, + PF_USEDOWN = 1<<5, + PF_JUMPDOWN = 1<<6, + PF_WPNDOWN = 1<<7, // Unmoving states - PF_STASIS = 1<<7, // Player is not allowed to move - PF_JUMPSTASIS = 1<<8, // and that includes jumping. + PF_STASIS = 1<<8, // Player is not allowed to move + PF_JUMPSTASIS = 1<<9, // and that includes jumping. PF_FULLSTASIS = PF_STASIS|PF_JUMPSTASIS, // Did you get a time-over? - PF_TIMEOVER = 1<<9, + PF_TIMEOVER = 1<<10, // SRB2Kart: Spectator that wants to join - PF_WANTSTOJOIN = 1<<10, + PF_WANTSTOJOIN = 1<<11, // Character action status - PF_JUMPED = 1<<11, - PF_SPINNING = 1<<12, - PF_STARTDASH = 1<<13, - PF_THOKKED = 1<<14, + PF_JUMPED = 1<<12, + PF_SPINNING = 1<<13, + PF_STARTDASH = 1<<14, + PF_THOKKED = 1<<15, // Are you gliding? - PF_GLIDING = 1<<15, + PF_GLIDING = 1<<16, // Tails pickup! - PF_CARRIED = 1<<16, + PF_CARRIED = 1<<17, // Sliding (usually in water) like Labyrinth/Oil Ocean - PF_SLIDING = 1<<17, + PF_SLIDING = 1<<18, // Hanging on a rope - PF_ROPEHANG = 1<<18, + PF_ROPEHANG = 1<<19, // Hanging on an item of some kind - zipline, chain, etc. (->tracer) - PF_ITEMHANG = 1<<19, + PF_ITEMHANG = 1<<20, // On the mace chain spinning around (->tracer) - PF_MACESPIN = 1<<20, + PF_MACESPIN = 1<<21, /*** NIGHTS STUFF ***/ // Is the player in NiGHTS mode? - PF_NIGHTSMODE = 1<<21, - PF_TRANSFERTOCLOSEST = 1<<22, + PF_NIGHTSMODE = 1<<22, + PF_TRANSFERTOCLOSEST = 1<<23, // Spill rings after falling - PF_NIGHTSFALL = 1<<23, - PF_DRILLING = 1<<24, - PF_SKIDDOWN = 1<<25, + PF_NIGHTSFALL = 1<<24, + PF_DRILLING = 1<<25, + PF_SKIDDOWN = 1<<26, /*** TAG STUFF ***/ - PF_TAGGED = 1<<26, // Player has been tagged and awaits the next round in hide and seek. - PF_TAGIT = 1<<27, // The player is it! For Tag Mode + PF_TAGGED = 1<<27, // Player has been tagged and awaits the next round in hide and seek. + PF_TAGIT = 1<<28, // The player is it! For Tag Mode /*** misc ***/ - PF_FORCESTRAFE = 1<<28, // Turning inputs are translated into strafing inputs - PF_HITFINISHLINE = 1<<29, // Already hit the finish line this tic + PF_FORCESTRAFE = 1<<29, // Turning inputs are translated into strafing inputs + PF_HITFINISHLINE = 1<<30, // Already hit the finish line this tic // free: 1<<30 and 1<<31 } pflags_t; diff --git a/src/dehacked.c b/src/dehacked.c index 92e80a475..372863bd5 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -8481,6 +8481,9 @@ static const char *const MAPTHINGFLAG_LIST[4] = { #endif static const char *const PLAYERFLAG_LIST[] = { + // Flip camera angle with gravity flip prefrence. + "FLIPCAM", + // Cheats "GODMODE", "NOCLIP", diff --git a/src/g_game.c b/src/g_game.c index fed573d13..1b994ede1 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -1506,7 +1506,10 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer) // spectator aiming shit, ahhhh... { INT32 player_invert = invertmouse ? -1 : 1; - INT32 screen_invert = (player->mo && (player->mo->eflags & MFE_VERTICALFLIP) && (!thiscam->chase)) ? -1 : 1; // set to -1 or 1 to multiply + INT32 screen_invert = + (player->mo && (player->mo->eflags & MFE_VERTICALFLIP) + && (!thiscam->chase || player->pflags & PF_FLIPCAM)) //because chasecam's not inverted + ? -1 : 1; // set to -1 or 1 to multiply // mouse look stuff (mouse look is not the same as mouse aim) if (mouseaiming && player->spectator) @@ -1674,7 +1677,7 @@ static void Analog_OnChange(void) } */ - //SendWeaponPref(); + SendWeaponPref(); } static void Analog2_OnChange(void) @@ -1691,7 +1694,7 @@ static void Analog2_OnChange(void) } */ - //SendWeaponPref2(); + SendWeaponPref2(); } static void Analog3_OnChange(void) @@ -1708,7 +1711,7 @@ static void Analog3_OnChange(void) } */ - //SendWeaponPref3(); + SendWeaponPref3(); } static void Analog4_OnChange(void) @@ -1725,7 +1728,7 @@ static void Analog4_OnChange(void) } */ - //SendWeaponPref4(); + SendWeaponPref4(); } // @@ -2616,7 +2619,7 @@ void G_PlayerReborn(INT32 player) jointime = players[player].jointime; splitscreenindex = players[player].splitscreenindex; spectator = players[player].spectator; - pflags = (players[player].pflags & (PF_TIMEOVER|PF_TAGIT|PF_TAGGED|PF_WANTSTOJOIN)); + pflags = (players[player].pflags & (PF_TIMEOVER|PF_FLIPCAM|PF_TAGIT|PF_TAGGED|PF_WANTSTOJOIN)); // As long as we're not in multiplayer, carry over cheatcodes from map to map if (!(netgame || multiplayer)) diff --git a/src/p_mobj.c b/src/p_mobj.c index 027655f47..2547f3212 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -1168,6 +1168,26 @@ static void P_PlayerFlip(mobj_t *mo) if (mo->tracer) mo->tracer->eflags ^= MFE_VERTICALFLIP; } + else if (mo->player->pflags & PF_FLIPCAM) + { + UINT8 i; + + mo->player->aiming = InvAngle(mo->player->aiming); + + for (i = 0; i <= r_splitscreen; i++) + { + if (mo->player-players == displayplayers[i]) + { + localaiming[i] = mo->player->aiming; + if (camera[i].chase) { + camera[i].aiming = InvAngle(camera[i].aiming); + camera[i].z = mo->z - camera[i].z + mo->z; + if (mo->eflags & MFE_VERTICALFLIP) + camera[i].z += FixedMul(20*FRACUNIT, mo->scale); + } + } + } + } } // @@ -3579,6 +3599,8 @@ boolean P_CameraThinker(player_t *player, camera_t *thiscam, boolean resetcalled if (encoremode) postimg = postimg_mirror; + else if (player->pflags & PF_FLIPCAM && !(player->pflags & PF_NIGHTSMODE) && player->mo->eflags & MFE_VERTICALFLIP) + postimg = postimg_flip; else if (player->awayviewtics && player->awayviewmobj && !P_MobjWasRemoved(player->awayviewmobj)) // Camera must obviously exist { camera_t dummycam; @@ -7037,6 +7059,8 @@ void P_MobjThinker(mobj_t *mobj) if (mobj->target->eflags & MFE_VERTICALFLIP) { mobj->z = mobj->target->z - FixedMul(16*FRACUNIT, mobj->target->scale) - mobj->height; + if (mobj->target->player->pflags & PF_FLIPCAM) + mobj->eflags |= MFE_VERTICALFLIP; } else mobj->z = mobj->target->z + (mobj->target->height) + FixedMul(8*FRACUNIT, mobj->target->scale); // Adjust height for height changes diff --git a/src/r_main.c b/src/r_main.c index 15278e66f..5f7b0cadd 100644 --- a/src/r_main.c +++ b/src/r_main.c @@ -151,6 +151,10 @@ static void ChaseCam_OnChange(void); static void ChaseCam2_OnChange(void); static void ChaseCam3_OnChange(void); static void ChaseCam4_OnChange(void); +static void FlipCam_OnChange(void); +static void FlipCam2_OnChange(void); +static void FlipCam3_OnChange(void); +static void FlipCam4_OnChange(void); void SendWeaponPref(void); void SendWeaponPref2(void); void SendWeaponPref3(void); @@ -161,6 +165,10 @@ consvar_t cv_chasecam = {"chasecam", "On", CV_CALL, CV_OnOff, ChaseCam_OnChange, consvar_t cv_chasecam2 = {"chasecam2", "On", CV_CALL, CV_OnOff, ChaseCam2_OnChange, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_chasecam3 = {"chasecam3", "On", CV_CALL, CV_OnOff, ChaseCam3_OnChange, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_chasecam4 = {"chasecam4", "On", CV_CALL, CV_OnOff, ChaseCam4_OnChange, 0, NULL, NULL, 0, 0, NULL}; +consvar_t cv_flipcam = {"flipcam", "No", CV_SAVE|CV_CALL|CV_NOINIT, CV_YesNo, FlipCam_OnChange, 0, NULL, NULL, 0, 0, NULL}; +consvar_t cv_flipcam2 = {"flipcam2", "No", CV_SAVE|CV_CALL|CV_NOINIT, CV_YesNo, FlipCam2_OnChange, 0, NULL, NULL, 0, 0, NULL}; +consvar_t cv_flipcam3 = {"flipcam3", "No", CV_SAVE|CV_CALL|CV_NOINIT, CV_YesNo, FlipCam3_OnChange, 0, NULL, NULL, 0, 0, NULL}; +consvar_t cv_flipcam4 = {"flipcam4", "No", CV_SAVE|CV_CALL|CV_NOINIT, CV_YesNo, FlipCam4_OnChange, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_shadow = {"shadow", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_skybox = {"skybox", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; @@ -274,6 +282,27 @@ static void ChaseCam4_OnChange(void) else CV_SetValue(&cv_analog4, 1);*/ } + +static void FlipCam_OnChange(void) +{ + SendWeaponPref(); +} + +static void FlipCam2_OnChange(void) +{ + SendWeaponPref2(); +} + +static void FlipCam3_OnChange(void) +{ + SendWeaponPref3(); +} + +static void FlipCam4_OnChange(void) +{ + SendWeaponPref4(); +} + // // R_PointOnSide // Traverse BSP (sub) tree, @@ -1459,6 +1488,10 @@ void R_RegisterEngineStuff(void) CV_RegisterVar(&cv_soniccd); CV_RegisterVar(&cv_allowmlook); CV_RegisterVar(&cv_homremoval); + CV_RegisterVar(&cv_flipcam); + CV_RegisterVar(&cv_flipcam2); + CV_RegisterVar(&cv_flipcam3); + CV_RegisterVar(&cv_flipcam4); // Enough for dedicated server if (dedicated) diff --git a/src/r_main.h b/src/r_main.h index ea6f6aa87..879d4c6eb 100644 --- a/src/r_main.h +++ b/src/r_main.h @@ -75,6 +75,7 @@ boolean R_DoCulling(line_t *cullheight, line_t *viewcullheight, fixed_t vz, fixe extern consvar_t cv_showhud, cv_translucenthud; extern consvar_t cv_homremoval; extern consvar_t cv_chasecam, cv_chasecam2, cv_chasecam3, cv_chasecam4; +extern consvar_t cv_flipcam, cv_flipcam2, cv_flipcam3, cv_flipcam4; extern consvar_t cv_shadow; extern consvar_t cv_translucency; extern consvar_t /*cv_precipdensity,*/ cv_drawdist, /*cv_drawdist_nights,*/ cv_drawdist_precip; From b62ef5a51df7f5be67c61a464a3050a56545be2c Mon Sep 17 00:00:00 2001 From: Latapostrophe Date: Sun, 26 Jul 2020 21:15:32 +0200 Subject: [PATCH 5/6] Kill flipcam again but nothing else associated with it. --- src/d_netcmd.c | 14 +------------- src/g_game.c | 4 ++-- src/p_mobj.c | 24 ------------------------ src/r_main.c | 33 --------------------------------- src/r_main.h | 1 - 5 files changed, 3 insertions(+), 73 deletions(-) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index b55441b2d..79a7e91d9 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -2105,8 +2105,6 @@ void SendWeaponPref(void) XBOXSTATIC UINT8 buf[1]; buf[0] = 0; - if (cv_flipcam.value) - buf[0] |= 1; SendNetXCmd(XD_WEAPONPREF, buf, 1); } @@ -2115,8 +2113,6 @@ void SendWeaponPref2(void) XBOXSTATIC UINT8 buf[1]; buf[0] = 0; - if (cv_flipcam2.value) - buf[0] |= 1; SendNetXCmd2(XD_WEAPONPREF, buf, 1); } @@ -2125,8 +2121,6 @@ void SendWeaponPref3(void) XBOXSTATIC UINT8 buf[1]; buf[0] = 0; - if (cv_flipcam3.value) - buf[0] |= 1; SendNetXCmd3(XD_WEAPONPREF, buf, 1); } @@ -2135,18 +2129,12 @@ void SendWeaponPref4(void) XBOXSTATIC UINT8 buf[1]; buf[0] = 0; - if (cv_flipcam4.value) - buf[0] |= 1; SendNetXCmd4(XD_WEAPONPREF, buf, 1); } static void Got_WeaponPref(UINT8 **cp,INT32 playernum) { - UINT8 prefs = READUINT8(*cp); - - players[playernum].pflags &= ~(PF_FLIPCAM); - if (prefs & 1) - players[playernum].pflags |= PF_FLIPCAM; + /*UINT8 prefs = */READUINT8(*cp); // Read it still to avoid instant desyncs in netgames. } static void Got_PowerLevel(UINT8 **cp,INT32 playernum) diff --git a/src/g_game.c b/src/g_game.c index 1b994ede1..0bb7f89fe 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -1508,7 +1508,7 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer) INT32 player_invert = invertmouse ? -1 : 1; INT32 screen_invert = (player->mo && (player->mo->eflags & MFE_VERTICALFLIP) - && (!thiscam->chase || player->pflags & PF_FLIPCAM)) //because chasecam's not inverted + && (!thiscam->chase)) //because chasecam's not inverted ? -1 : 1; // set to -1 or 1 to multiply // mouse look stuff (mouse look is not the same as mouse aim) @@ -2619,7 +2619,7 @@ void G_PlayerReborn(INT32 player) jointime = players[player].jointime; splitscreenindex = players[player].splitscreenindex; spectator = players[player].spectator; - pflags = (players[player].pflags & (PF_TIMEOVER|PF_FLIPCAM|PF_TAGIT|PF_TAGGED|PF_WANTSTOJOIN)); + pflags = (players[player].pflags & (PF_TIMEOVER|PF_TAGIT|PF_TAGGED|PF_WANTSTOJOIN)); // As long as we're not in multiplayer, carry over cheatcodes from map to map if (!(netgame || multiplayer)) diff --git a/src/p_mobj.c b/src/p_mobj.c index 2547f3212..027655f47 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -1168,26 +1168,6 @@ static void P_PlayerFlip(mobj_t *mo) if (mo->tracer) mo->tracer->eflags ^= MFE_VERTICALFLIP; } - else if (mo->player->pflags & PF_FLIPCAM) - { - UINT8 i; - - mo->player->aiming = InvAngle(mo->player->aiming); - - for (i = 0; i <= r_splitscreen; i++) - { - if (mo->player-players == displayplayers[i]) - { - localaiming[i] = mo->player->aiming; - if (camera[i].chase) { - camera[i].aiming = InvAngle(camera[i].aiming); - camera[i].z = mo->z - camera[i].z + mo->z; - if (mo->eflags & MFE_VERTICALFLIP) - camera[i].z += FixedMul(20*FRACUNIT, mo->scale); - } - } - } - } } // @@ -3599,8 +3579,6 @@ boolean P_CameraThinker(player_t *player, camera_t *thiscam, boolean resetcalled if (encoremode) postimg = postimg_mirror; - else if (player->pflags & PF_FLIPCAM && !(player->pflags & PF_NIGHTSMODE) && player->mo->eflags & MFE_VERTICALFLIP) - postimg = postimg_flip; else if (player->awayviewtics && player->awayviewmobj && !P_MobjWasRemoved(player->awayviewmobj)) // Camera must obviously exist { camera_t dummycam; @@ -7059,8 +7037,6 @@ void P_MobjThinker(mobj_t *mobj) if (mobj->target->eflags & MFE_VERTICALFLIP) { mobj->z = mobj->target->z - FixedMul(16*FRACUNIT, mobj->target->scale) - mobj->height; - if (mobj->target->player->pflags & PF_FLIPCAM) - mobj->eflags |= MFE_VERTICALFLIP; } else mobj->z = mobj->target->z + (mobj->target->height) + FixedMul(8*FRACUNIT, mobj->target->scale); // Adjust height for height changes diff --git a/src/r_main.c b/src/r_main.c index 5f7b0cadd..99afac81e 100644 --- a/src/r_main.c +++ b/src/r_main.c @@ -151,10 +151,6 @@ static void ChaseCam_OnChange(void); static void ChaseCam2_OnChange(void); static void ChaseCam3_OnChange(void); static void ChaseCam4_OnChange(void); -static void FlipCam_OnChange(void); -static void FlipCam2_OnChange(void); -static void FlipCam3_OnChange(void); -static void FlipCam4_OnChange(void); void SendWeaponPref(void); void SendWeaponPref2(void); void SendWeaponPref3(void); @@ -165,10 +161,6 @@ consvar_t cv_chasecam = {"chasecam", "On", CV_CALL, CV_OnOff, ChaseCam_OnChange, consvar_t cv_chasecam2 = {"chasecam2", "On", CV_CALL, CV_OnOff, ChaseCam2_OnChange, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_chasecam3 = {"chasecam3", "On", CV_CALL, CV_OnOff, ChaseCam3_OnChange, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_chasecam4 = {"chasecam4", "On", CV_CALL, CV_OnOff, ChaseCam4_OnChange, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_flipcam = {"flipcam", "No", CV_SAVE|CV_CALL|CV_NOINIT, CV_YesNo, FlipCam_OnChange, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_flipcam2 = {"flipcam2", "No", CV_SAVE|CV_CALL|CV_NOINIT, CV_YesNo, FlipCam2_OnChange, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_flipcam3 = {"flipcam3", "No", CV_SAVE|CV_CALL|CV_NOINIT, CV_YesNo, FlipCam3_OnChange, 0, NULL, NULL, 0, 0, NULL}; -consvar_t cv_flipcam4 = {"flipcam4", "No", CV_SAVE|CV_CALL|CV_NOINIT, CV_YesNo, FlipCam4_OnChange, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_shadow = {"shadow", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_skybox = {"skybox", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; @@ -283,26 +275,6 @@ static void ChaseCam4_OnChange(void) CV_SetValue(&cv_analog4, 1);*/ } -static void FlipCam_OnChange(void) -{ - SendWeaponPref(); -} - -static void FlipCam2_OnChange(void) -{ - SendWeaponPref2(); -} - -static void FlipCam3_OnChange(void) -{ - SendWeaponPref3(); -} - -static void FlipCam4_OnChange(void) -{ - SendWeaponPref4(); -} - // // R_PointOnSide // Traverse BSP (sub) tree, @@ -1488,11 +1460,6 @@ void R_RegisterEngineStuff(void) CV_RegisterVar(&cv_soniccd); CV_RegisterVar(&cv_allowmlook); CV_RegisterVar(&cv_homremoval); - CV_RegisterVar(&cv_flipcam); - CV_RegisterVar(&cv_flipcam2); - CV_RegisterVar(&cv_flipcam3); - CV_RegisterVar(&cv_flipcam4); - // Enough for dedicated server if (dedicated) return; diff --git a/src/r_main.h b/src/r_main.h index 879d4c6eb..ea6f6aa87 100644 --- a/src/r_main.h +++ b/src/r_main.h @@ -75,7 +75,6 @@ boolean R_DoCulling(line_t *cullheight, line_t *viewcullheight, fixed_t vz, fixe extern consvar_t cv_showhud, cv_translucenthud; extern consvar_t cv_homremoval; extern consvar_t cv_chasecam, cv_chasecam2, cv_chasecam3, cv_chasecam4; -extern consvar_t cv_flipcam, cv_flipcam2, cv_flipcam3, cv_flipcam4; extern consvar_t cv_shadow; extern consvar_t cv_translucency; extern consvar_t /*cv_precipdensity,*/ cv_drawdist, /*cv_drawdist_nights,*/ cv_drawdist_precip; From de7147008ead394a358e8ee1481c3972ac8f4850 Mon Sep 17 00:00:00 2001 From: Latapostrophe Date: Fri, 31 Jul 2020 18:13:28 +0200 Subject: [PATCH 6/6] Let's not try to outsmart the way mf2_objectflip works and just disable it entierely alongside mfe_verticalflip if the waypoint isn't flipped. --- src/k_respawn.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/k_respawn.c b/src/k_respawn.c index 71b96e085..863a309c9 100644 --- a/src/k_respawn.c +++ b/src/k_respawn.c @@ -46,10 +46,7 @@ fixed_t K_RespawnOffset(player_t *player, boolean flip) } else { - - if (P_GetMobjGravity(player->mo) > 0) - player->mo->flags2 &= ~MF2_OBJECTFLIP; // See comment above, ditto. - + player->mo->flags2 &= ~MF2_OBJECTFLIP; player->mo->eflags &= ~MFE_VERTICALFLIP; z += (128 * mapobjectscale); }