Merge remote-tracking branch 'gzdoom/master'

This commit is contained in:
Magnus Norddahl 2024-07-23 19:23:26 +02:00
commit bde15af593
72 changed files with 1058 additions and 517 deletions

View file

@ -1,4 +1,5 @@
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// Copyright 1993-1996 id Software
// Copyright 1999-2016 Randy Heit
// Copyright 2002-2016 Christoph Oelckers
@ -664,6 +665,19 @@ CUSTOM_CVAR(Int, compatmode, 0, CVAR_ARCHIVE|CVAR_NOINITCALL)
COMPATF_TRACE | COMPATF_HITSCAN | COMPATF_MISSILECLIP | COMPATF_MASKEDMIDTEX | COMPATF_SOUNDTARGET;
w = COMPATF2_POINTONLINE | COMPATF2_EXPLODE1 | COMPATF2_EXPLODE2 | COMPATF2_AVOID_HAZARDS | COMPATF2_STAYONLIFT | COMPATF2_NOMBF21;
break;
case 8: // MBF21 compat mode
v = COMPATF_TRACE | COMPATF_SOUNDTARGET | COMPATF_BOOMSCROLL | COMPATF_MISSILECLIP | COMPATF_CROSSDROPOFF |
COMPATF_MUSHROOM | COMPATF_MBFMONSTERMOVE | COMPATF_NOBLOCKFRIENDS | COMPATF_MASKEDMIDTEX;
w = COMPATF2_EXPLODE1 | COMPATF2_AVOID_HAZARDS | COMPATF2_STAYONLIFT;
break;
case 9: // Stricter MBF21 compatibility
v = COMPATF_NOBLOCKFRIENDS | COMPATF_MBFMONSTERMOVE | COMPATF_INVISIBILITY |
COMPATF_NOTOSSDROPS | COMPATF_MUSHROOM | COMPATF_NO_PASSMOBJ | COMPATF_BOOMSCROLL | COMPATF_WALLRUN |
COMPATF_TRACE | COMPATF_HITSCAN | COMPATF_MISSILECLIP | COMPATF_CROSSDROPOFF | COMPATF_MASKEDMIDTEX | COMPATF_SOUNDTARGET;
w = COMPATF2_POINTONLINE | COMPATF2_EXPLODE1 | COMPATF2_EXPLODE2 | COMPATF2_AVOID_HAZARDS | COMPATF2_STAYONLIFT;
break;
}
compatflags = v;
compatflags2 = w;
@ -1816,7 +1830,9 @@ static void GetCmdLineFiles(std::vector<std::string>& wadfiles)
int i, argc;
argc = Args->CheckParmList("-file", &args);
for (i = 0; i < argc; ++i)
// [RL0] Check for array size to only add new wads
for (i = wadfiles.size(); i < argc; ++i)
{
D_AddWildFile(wadfiles, args[i].GetChars(), ".wad", GameConfig);
}
@ -3385,7 +3401,7 @@ static int D_InitGame(const FIWADInfo* iwad_info, std::vector<std::string>& allw
// [CW] Parse any TEAMINFO lumps.
if (!batchrun) Printf ("ParseTeamInfo: Load team definitions.\n");
TeamLibrary.ParseTeamInfo ();
FTeam::ParseTeamInfo ();
R_ParseTrnslate();
PClassActor::StaticInit ();
@ -3660,6 +3676,7 @@ static int D_DoomMain_Internal (void)
const char *wad;
FIWadManager *iwad_man;
NetworkEntityManager::NetIDStart = MAXPLAYERS + 1;
GC::AddMarkerFunc(GC_MarkGameRoots);
VM_CastSpriteIDToString = Doom_CastSpriteIDToString;
@ -3833,6 +3850,9 @@ static int D_DoomMain_Internal (void)
std::vector<std::string> allwads;
const FIWADInfo *iwad_info = iwad_man->FindIWAD(allwads, iwad.GetChars(), basewad.GetChars(), optionalwad.GetChars());
GetCmdLineFiles(pwads); // [RL0] Update with files passed on the launcher extra args
if (!iwad_info) return 0; // user exited the selection popup via cancel button.
if ((iwad_info->flags & GI_SHAREWARE) && pwads.size() > 0)
{