Remove no longer owned weapons from "already got" list on map change, so their obtain lines can play again later.

This commit is contained in:
Mari the Deer 2021-10-09 21:36:01 +02:00
commit 9b606945e7
2 changed files with 23 additions and 2 deletions

View file

@ -100,6 +100,27 @@ extend Class SWWMHandler
s.GotWeapon(Weapon(i).GetClass());
}
}
else if ( (s.lastcluster != level.cluster) || !(level.clusterflags&LevelLocals.CLUSTER_HUB) )
{
// clear the "weapon got" lists for weapons we don't have anymore (unless we're in a hub)
// so the obtain lines play again
for ( int i=0; i<s.alreadygot.Size(); i++ )
{
// special case for dual weapons
String cn = s.alreadygot[i].GetClassName();
if ( (cn.Left(4) ~== "Dual") )
{
int ss = p.mo.CountInv(GetDefaultByType(s.alreadygot[i]).SisterWeaponType);
if ( ss == 2 ) continue;
s.alreadygot.Delete(i);
i--;
continue;
}
if ( p.mo.FindInventory(s.alreadygot[i]) ) continue;
s.alreadygot.Delete(i);
i--;
}
}
// reset some vars
multilevel[e.playernumber] = 0;
spreecount[e.playernumber] = 0;