Merge commit 'refs/pull/980/head' of https://github.com/coelckers/gzdoom
# Conflicts: # wadsrc/static/menudef.txt
This commit is contained in:
commit
5f9377ae2a
3 changed files with 46 additions and 4 deletions
|
|
@ -226,11 +226,45 @@ void D_LoadWadSettings ()
|
|||
ParsingKeyConf = false;
|
||||
}
|
||||
|
||||
// Strict handling of SetSlot and ClearPlayerClasses in KEYCONF (see a_weapons.cpp)
|
||||
EXTERN_CVAR (Bool, setslotstrict)
|
||||
|
||||
// Specifically hunt for and remove IWAD playerclasses
|
||||
void ClearIWADPlayerClasses (PClassActor *ti)
|
||||
{
|
||||
for(unsigned i=0; i < PlayerClasses.Size(); i++)
|
||||
{
|
||||
if(PlayerClasses[i].Type==ti)
|
||||
{
|
||||
for(unsigned j = i; j < PlayerClasses.Size()-1; j++)
|
||||
{
|
||||
PlayerClasses[j] = PlayerClasses[j+1];
|
||||
}
|
||||
PlayerClasses.Pop();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
CCMD(clearplayerclasses)
|
||||
{
|
||||
if (ParsingKeyConf)
|
||||
{
|
||||
PlayerClasses.Clear();
|
||||
{
|
||||
// Only clear the playerclasses first if setslotstrict is true
|
||||
// If not, we'll only remove the IWAD playerclasses
|
||||
if(setslotstrict)
|
||||
PlayerClasses.Clear();
|
||||
else
|
||||
{
|
||||
// I wish I had a better way to pick out IWAD playerclasses
|
||||
// without having to explicitly name them here...
|
||||
ClearIWADPlayerClasses(PClass::FindActor("DoomPlayer"));
|
||||
ClearIWADPlayerClasses(PClass::FindActor("HereticPlayer"));
|
||||
ClearIWADPlayerClasses(PClass::FindActor("StrifePlayer"));
|
||||
ClearIWADPlayerClasses(PClass::FindActor("FighterPlayer"));
|
||||
ClearIWADPlayerClasses(PClass::FindActor("ClericPlayer"));
|
||||
ClearIWADPlayerClasses(PClass::FindActor("MagePlayer"));
|
||||
ClearIWADPlayerClasses(PClass::FindActor("ChexPlayer"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue