- VC++ doesn't seem to like the TArray serializer so I added a workaround
to be able to save the 3dMidtex attachment info. - Fixed: The TArray serializer needs to be declared as a friend of TArray in order to be able to access its fields. - Since there are no backwards compatibility issues due to savegame version bumping I closed all gaps in the level flag set. - Bumped min. Savegame version and Netgame version for 3dMidtex related changes. - Changed Jump and Crouch DMFlags into 3-way switches: 0: map default, 1: off, 2: on. Since I needed new bits the rest of the DMFlag bit values had to be changed as a result. - fixed: PTR_SlideTraverse didn't check ML_BLOCKMONSTERS for sliding actors without MF3_NOBLOCKMONST. - Added MAPINFO commands 'checkswitchrange' and 'nocheckswitchrange' that can enable or disable switch range checking globally per map. - Changed ML_3DMIDTEX to force ML_CHECKSWITCHRANGE. - Added a ML_CHECKSWITCHRANGE flag which allows checking whether the player can actually reach the switch he wants to use. - Made DActiveButton::EWhere global so that I can use it outside thr DActiveButton class. March 17, 2008 (Changes by Graf Zahl) - Changed P_LineOpening to pass its result in a struct instead of global variables. - Added Eternity's 3DMIDTEX feature (no Eternity code used though.) It should be feature complete with the exception of the ML_BLOCKMONSTERS flag handling. That particular part of Eternity's implementation is sub-optimal because it hijacks an existing flag and doesn't seem to make much sense to me. Maybe I'll implement it as a separate flag later. SVN r810 (trunk)
This commit is contained in:
parent
3720f7fa7d
commit
7c87465d35
30 changed files with 2361 additions and 5243 deletions
|
|
@ -307,6 +307,8 @@ static const char *MapInfoMapLevel[] =
|
|||
"skyfog",
|
||||
"teamplayon",
|
||||
"teamplayoff",
|
||||
"checkswitchrange",
|
||||
"nocheckswitchrange",
|
||||
NULL
|
||||
};
|
||||
|
||||
|
|
@ -377,8 +379,8 @@ MapHandlers[] =
|
|||
{ MITYPE_SETFLAG, LEVEL_FORCENOSKYSTRETCH, 0 },
|
||||
{ MITYPE_SCFLAGS, LEVEL_FREELOOK_YES, ~LEVEL_FREELOOK_NO },
|
||||
{ MITYPE_SCFLAGS, LEVEL_FREELOOK_NO, ~LEVEL_FREELOOK_YES },
|
||||
{ MITYPE_SCFLAGS, LEVEL_JUMP_YES, ~LEVEL_JUMP_NO },
|
||||
{ MITYPE_SCFLAGS, LEVEL_JUMP_NO, ~LEVEL_JUMP_YES },
|
||||
{ MITYPE_CLRFLAG, LEVEL_JUMP_NO, 0 },
|
||||
{ MITYPE_SETFLAG, LEVEL_JUMP_NO, 0 },
|
||||
{ MITYPE_SCFLAGS, LEVEL_FALLDMG_HX, ~LEVEL_FALLDMG_ZD },
|
||||
{ MITYPE_SCFLAGS, LEVEL_FALLDMG_ZD, ~LEVEL_FALLDMG_HX },
|
||||
{ MITYPE_SCFLAGS, LEVEL_FALLDMG_ZD, ~LEVEL_FALLDMG_HX },
|
||||
|
|
@ -423,8 +425,8 @@ MapHandlers[] =
|
|||
{ MITYPE_LUMPNAME, lioffset(soundinfo), 0 },
|
||||
{ MITYPE_SETFLAG, LEVEL_CLIPMIDTEX, 0 },
|
||||
{ MITYPE_SETFLAG, LEVEL_WRAPMIDTEX, 0 },
|
||||
{ MITYPE_SCFLAGS, LEVEL_CROUCH_YES, ~LEVEL_CROUCH_NO },
|
||||
{ MITYPE_SCFLAGS, LEVEL_CROUCH_NO, ~LEVEL_CROUCH_YES },
|
||||
{ MITYPE_CLRFLAG, LEVEL_CROUCH_NO, 0 },
|
||||
{ MITYPE_SETFLAG, LEVEL_CROUCH_NO, 0 },
|
||||
{ MITYPE_SCFLAGS, LEVEL_PAUSE_MUSIC_IN_MENUS, 0 },
|
||||
{ MITYPE_COMPATFLAG, COMPATF_SHORTTEX},
|
||||
{ MITYPE_COMPATFLAG, COMPATF_STAIRINDEX},
|
||||
|
|
@ -454,6 +456,8 @@ MapHandlers[] =
|
|||
{ MITYPE_INT, lioffset(skyfog), 0 },
|
||||
{ MITYPE_SCFLAGS, LEVEL_FORCETEAMPLAYON, ~LEVEL_FORCETEAMPLAYOFF },
|
||||
{ MITYPE_SCFLAGS, LEVEL_FORCETEAMPLAYOFF, ~LEVEL_FORCETEAMPLAYON },
|
||||
{ MITYPE_SETFLAG, LEVEL_CHECKSWITCHRANGE, 0 },
|
||||
{ MITYPE_CLRFLAG, LEVEL_CHECKSWITCHRANGE, 0 },
|
||||
};
|
||||
|
||||
static const char *MapInfoClusterLevel[] =
|
||||
|
|
@ -2426,20 +2430,20 @@ void G_InitLevelLocals ()
|
|||
|
||||
bool level_locals_s::IsJumpingAllowed() const
|
||||
{
|
||||
if (level.flags & LEVEL_JUMP_NO)
|
||||
if (dmflags & DF_NO_JUMP)
|
||||
return false;
|
||||
if (level.flags & LEVEL_JUMP_YES)
|
||||
if (dmflags & DF_YES_JUMP)
|
||||
return true;
|
||||
return !(dmflags & DF_NO_JUMP);
|
||||
return !(level.flags & LEVEL_JUMP_NO);
|
||||
}
|
||||
|
||||
bool level_locals_s::IsCrouchingAllowed() const
|
||||
{
|
||||
if (level.flags & LEVEL_CROUCH_NO)
|
||||
if (dmflags & DF_NO_CROUCH)
|
||||
return false;
|
||||
if (level.flags & LEVEL_CROUCH_YES)
|
||||
if (dmflags & DF_YES_CROUCH)
|
||||
return true;
|
||||
return !(dmflags & DF_NO_CROUCH);
|
||||
return !(level.flags & LEVEL_CROUCH_NO);
|
||||
}
|
||||
|
||||
bool level_locals_s::IsFreelookAllowed() const
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue