mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-26 14:01:45 +00:00
- added jpalomo's submission to make freelook a 3-state setting, like crouch and jump. This required moving around the flags a bit so demo compatibility had to be bumped. It may also require adjustment for launchers that can set the dmflags.
This commit is contained in:
parent
484eb347ca
commit
a21f01bc5f
7 changed files with 25 additions and 14 deletions
|
@ -422,7 +422,7 @@ CVAR (Flag, sv_fastmonsters, dmflags, DF_FAST_MONSTERS);
|
|||
CVAR (Flag, sv_nojump, dmflags, DF_NO_JUMP);
|
||||
CVAR (Flag, sv_allowjump, dmflags, DF_YES_JUMP);
|
||||
CVAR (Flag, sv_nofreelook, dmflags, DF_NO_FREELOOK);
|
||||
CVAR (Flag, sv_respawnsuper, dmflags, DF_RESPAWN_SUPER);
|
||||
CVAR (Flag, sv_allowfreelook, dmflags, DF_YES_FREELOOK);
|
||||
CVAR (Flag, sv_nofov, dmflags, DF_NO_FOV);
|
||||
CVAR (Flag, sv_noweaponspawn, dmflags, DF_NO_COOP_WEAPON_SPAWN);
|
||||
CVAR (Flag, sv_nocrouch, dmflags, DF_NO_CROUCH);
|
||||
|
@ -439,6 +439,7 @@ CVAR (Flag, sv_coophalveammo, dmflags, DF_COOP_HALVE_AMMO);
|
|||
CVAR (Mask, sv_crouch, dmflags, DF_NO_CROUCH|DF_YES_CROUCH);
|
||||
CVAR (Mask, sv_jump, dmflags, DF_NO_JUMP|DF_YES_JUMP);
|
||||
CVAR (Mask, sv_fallingdamage, dmflags, DF_FORCE_FALLINGHX|DF_FORCE_FALLINGZD);
|
||||
CVAR (Mask, sv_freelook, dmflags, DF_NO_FREELOOK|DF_YES_FREELOOK);
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
|
@ -510,6 +511,8 @@ CVAR (Flag, sv_noautoaim, dmflags2, DF2_NOAUTOAIM);
|
|||
CVAR (Flag, sv_dontcheckammo, dmflags2, DF2_DONTCHECKAMMO);
|
||||
CVAR (Flag, sv_killbossmonst, dmflags2, DF2_KILLBOSSMONST);
|
||||
CVAR (Flag, sv_nocountendmonst, dmflags2, DF2_NOCOUNTENDMONST);
|
||||
CVAR (Flag, sv_respawnsuper, dmflags2, DF2_RESPAWN_SUPER);
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
// CVAR compatflags
|
||||
|
|
|
@ -254,7 +254,7 @@ enum
|
|||
DF_NO_JUMP = 1 << 16, // Don't allow jumping
|
||||
DF_YES_JUMP = 2 << 16,
|
||||
DF_NO_FREELOOK = 1 << 18, // Don't allow freelook
|
||||
DF_RESPAWN_SUPER = 1 << 19, // Respawn invulnerability and invisibility
|
||||
DF_YES_FREELOOK = 2 << 18,
|
||||
DF_NO_FOV = 1 << 20, // Only let the arbitrator set FOV (for all players)
|
||||
DF_NO_COOP_WEAPON_SPAWN = 1 << 21, // Don't spawn multiplayer weapons in coop games
|
||||
DF_NO_CROUCH = 1 << 22, // Don't allow crouching
|
||||
|
@ -298,6 +298,7 @@ enum
|
|||
DF2_DONTCHECKAMMO = 1 << 24, // Don't Check ammo when switching weapons.
|
||||
DF2_KILLBOSSMONST = 1 << 25, // Kills all monsters spawned by a boss cube when the boss dies
|
||||
DF2_NOCOUNTENDMONST = 1 << 26, // Do not count monsters in 'end level when dying' sectors towards kill count
|
||||
DF2_RESPAWN_SUPER = 1 << 27, // Respawn invulnerability and invisibility
|
||||
};
|
||||
|
||||
// [RH] Compatibility flags.
|
||||
|
|
|
@ -1835,6 +1835,13 @@ void G_DoLoadGame ()
|
|||
BYTE *vars_p = (BYTE *)text;
|
||||
C_ReadCVars (&vars_p);
|
||||
delete[] text;
|
||||
if (SaveVersion <= 4509)
|
||||
{
|
||||
// account for the flag shuffling for making freelook a 3-state option
|
||||
INTBOOL flag = dmflags & DF_YES_FREELOOK;
|
||||
dmflags = dmflags & ~DF_YES_FREELOOK;
|
||||
if (flag) dmflags2 = dmflags2 | DF2_RESPAWN_SUPER;
|
||||
}
|
||||
}
|
||||
|
||||
// dearchive all the modifications
|
||||
|
|
|
@ -1320,11 +1320,11 @@ bool FLevelLocals::IsCrouchingAllowed() const
|
|||
|
||||
bool FLevelLocals::IsFreelookAllowed() const
|
||||
{
|
||||
if (level.flags & LEVEL_FREELOOK_NO)
|
||||
if (dmflags & DF_NO_FREELOOK)
|
||||
return false;
|
||||
if (level.flags & LEVEL_FREELOOK_YES)
|
||||
if (dmflags & DF_YES_FREELOOK)
|
||||
return true;
|
||||
return !(dmflags & DF_NO_FREELOOK);
|
||||
return !(level.flags & LEVEL_FREELOOK_NO);
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
|
|
|
@ -497,7 +497,7 @@ bool AInventory::SpecialDropAction (AActor *dropper)
|
|||
|
||||
bool AInventory::ShouldRespawn ()
|
||||
{
|
||||
if ((ItemFlags & IF_BIGPOWERUP) && !(dmflags & DF_RESPAWN_SUPER)) return false;
|
||||
if ((ItemFlags & IF_BIGPOWERUP) && !(dmflags2 & DF2_RESPAWN_SUPER)) return false;
|
||||
if (ItemFlags & IF_NEVERRESPAWN) return false;
|
||||
return !!(dmflags & DF_ITEMS_RESPAWN);
|
||||
}
|
||||
|
|
|
@ -51,7 +51,7 @@ const char *GetVersionString();
|
|||
// Version identifier for network games.
|
||||
// Bump it every time you do a release unless you're certain you
|
||||
// didn't change anything that will affect sync.
|
||||
#define NETGAMEVERSION 229
|
||||
#define NETGAMEVERSION 230
|
||||
|
||||
// Version stored in the ini's [LastRun] section.
|
||||
// Bump it if you made some configuration change that you want to
|
||||
|
@ -61,11 +61,11 @@ const char *GetVersionString();
|
|||
// Protocol version used in demos.
|
||||
// Bump it if you change existing DEM_ commands or add new ones.
|
||||
// Otherwise, it should be safe to leave it alone.
|
||||
#define DEMOGAMEVERSION 0x21A
|
||||
#define DEMOGAMEVERSION 0x21B
|
||||
|
||||
// Minimum demo version we can play.
|
||||
// Bump it whenever you change or remove existing DEM_ commands.
|
||||
#define MINDEMOVERSION 0x215
|
||||
#define MINDEMOVERSION 0x21B
|
||||
|
||||
// SAVEVER is the version of the information stored in level snapshots.
|
||||
// Note that SAVEVER is not directly comparable to VERSION.
|
||||
|
@ -76,7 +76,7 @@ const char *GetVersionString();
|
|||
|
||||
// Use 4500 as the base git save version, since it's higher than the
|
||||
// SVN revision ever got.
|
||||
#define SAVEVER 4509
|
||||
#define SAVEVER 4510
|
||||
|
||||
#define SAVEVERSTRINGIFY2(x) #x
|
||||
#define SAVEVERSTRINGIFY(x) SAVEVERSTRINGIFY2(x)
|
||||
|
|
|
@ -1157,7 +1157,7 @@ OptionValue FallingDM
|
|||
3, "Strife"
|
||||
}
|
||||
|
||||
OptionValue JumpCrouch
|
||||
OptionValue JumpCrouchFreeLook
|
||||
{
|
||||
0, "Default"
|
||||
1, "Off"
|
||||
|
@ -1189,9 +1189,9 @@ OptionMenu GameplayOptions
|
|||
Option "Degeneration", "sv_degeneration", "YesNo"
|
||||
Option "Allow Autoaim", "sv_noautoaim", "NoYes"
|
||||
Option "Allow Suicide", "sv_disallowsuicide", "NoYes"
|
||||
Option "Allow jump", "sv_jump", "JumpCrouch"
|
||||
Option "Allow crouch", "sv_crouch", "JumpCrouch"
|
||||
Option "Allow freelook", "sv_nofreelook", "NoYes"
|
||||
Option "Allow jump", "sv_jump", "JumpCrouchFreeLook"
|
||||
Option "Allow crouch", "sv_crouch", "JumpCrouchFreeLook"
|
||||
Option "Allow freelook", "sv_freelook", "JumpCrouchFreeLook"
|
||||
Option "Allow FOV", "sv_nofov", "NoYes"
|
||||
Option "Allow BFG aiming", "sv_nobfgaim", "NoYes"
|
||||
Option "Allow automap", "sv_noautomap", "NoYes"
|
||||
|
|
Loading…
Reference in a new issue