Revert "Push flipcam down the nearest staircase"

This reverts commit 06d70c1f8e.
This commit is contained in:
Latapostrophe 2020-07-26 20:27:22 +02:00
parent 06d70c1f8e
commit 90cde7379c
7 changed files with 165 additions and 36 deletions

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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