4.10 support update (unfinished and untested).

This commit is contained in:
Mari the Deer 2022-12-05 02:10:56 +01:00
commit 8e952f412f
80 changed files with 2343 additions and 2356 deletions

View file

@ -111,10 +111,10 @@ Class SWWMAmmo : Ammo
// enumerate all subclasses
Array<Class<Ammo> > ammotypes;
ammotypes.Clear();
for ( int i=0; i<AllActorClasses.Size(); i++ )
foreach ( cls:AllActorClasses )
{
if ( AllActorClasses[i] is GetParentAmmo() )
ammotypes.Push((Class<Ammo>)(AllActorClasses[i]));
if ( cls is GetParentAmmo() )
ammotypes.Push((Class<Ammo>)(cls));
}
// sort from largest to smallest
qsort_ammotypes(ammotypes,0,ammotypes.Size()-1);
@ -122,12 +122,12 @@ Class SWWMAmmo : Ammo
Inventory last = null;
while ( amt > 0 )
{
for ( int i=0; i<ammotypes.Size(); i++ )
foreach ( type:ammotypes )
{
let def = GetDefaultByType(ammotypes[i]);
let def = GetDefaultByType(type);
if ( amt >= def.Amount )
{
last = DoDrop(ammotypes[i]);
last = DoDrop(type);
amt -= def.Amount;
Amount -= def.Amount;
break;
@ -149,10 +149,10 @@ Class SWWMAmmo : Ammo
// enumerate all subclasses
Array<Class<Ammo> > ammotypes;
ammotypes.Clear();
for ( int i=0; i<AllActorClasses.Size(); i++ )
foreach ( cls:AllActorClasses )
{
if ( AllActorClasses[i] is GetParentAmmo() )
ammotypes.Push((Class<Ammo>)(AllActorClasses[i]));
if ( cls is GetParentAmmo() )
ammotypes.Push((Class<Ammo>)(cls));
}
// sort from largest to smallest
qsort_ammotypes(ammotypes,0,ammotypes.Size()-1);
@ -177,13 +177,13 @@ Class SWWMAmmo : Ammo
continue;
}
}
for ( int i=0; i<ammotypes.Size(); i++ )
foreach ( type:ammotypes )
{
let def = GetDefaultByType(ammotypes[i]);
let def = GetDefaultByType(type);
if ( excess >= def.Amount )
{
double ang = FRandom[Junk](0,360);
last = DoDrop(ammotypes[i]);
last = DoDrop(type);
last.SetOrigin(item.pos,false);
last.vel.xy = AngleToVector(ang,FRandom[Junk](2,5));
excess -= def.Amount;
@ -252,10 +252,10 @@ Class SWWMAmmo : Ammo
{
Super.ModifyDropAmount(dropamount);
int maxdrop = 1;
for ( int i=0; i<AllActorClasses.Size(); i++ )
foreach ( cls:AllActorClasses )
{
if ( !(AllActorClasses[i] is GetParentAmmo()) ) continue;
let def = GetDefaultByType((Class<Ammo>)(AllActorClasses[i]));
if ( !(cls is GetParentAmmo()) ) continue;
let def = GetDefaultByType((Class<Ammo>)(cls));
maxdrop = max(maxdrop,def.amount);
}
Amount = Random[ShellDrop](1,clamp(dropamount,1,maxdrop));
@ -393,10 +393,10 @@ Class MagAmmo : Inventory abstract
// enumerate all subclasses
Array<Class<MagAmmo> > ammotypes;
ammotypes.Clear();
for ( int i=0; i<AllActorClasses.Size(); i++ )
foreach ( cls:AllActorClasses )
{
if ( AllActorClasses[i] is GetParentMagAmmo() )
ammotypes.Push((Class<MagAmmo>)(AllActorClasses[i]));
if ( cls is GetParentMagAmmo() )
ammotypes.Push((Class<MagAmmo>)(cls));
}
// sort from largest to smallest
qsort_ammotypes(ammotypes,0,ammotypes.Size()-1);
@ -415,13 +415,13 @@ Class MagAmmo : Inventory abstract
continue;
}
// drop bullets otherwise
for ( int i=0; i<ammotypes.Size(); i++ )
foreach ( type:ammotypes )
{
let def = GetDefaultByType(ammotypes[i]);
let def = GetDefaultByType(type);
if ( excess >= def.Amount )
{
double ang = FRandom[Junk](0,360);
last = DoDrop(ammotypes[i]);
last = DoDrop(type);
last.SetOrigin(item.pos,false);
last.vel.xy = AngleToVector(ang,FRandom[Junk](2,5));
excess -= def.Amount;
@ -566,10 +566,10 @@ Class MagAmmo : Inventory abstract
// enumerate all subclasses
Array<Class<MagAmmo> > ammotypes;
ammotypes.Clear();
for ( int i=0; i<AllActorClasses.Size(); i++ )
foreach ( cls:AllActorClasses )
{
if ( AllActorClasses[i] is GetParentMagAmmo() )
ammotypes.Push((Class<MagAmmo>)(AllActorClasses[i]));
if ( cls is GetParentMagAmmo() )
ammotypes.Push((Class<MagAmmo>)(cls));
}
// sort from largest to smallest
qsort_ammotypes(ammotypes,0,ammotypes.Size()-1);
@ -587,12 +587,12 @@ Class MagAmmo : Inventory abstract
continue;
}
// drop bullets otherwise
for ( int i=0; i<ammotypes.Size(); i++ )
foreach ( type:ammotypes )
{
let def = GetDefaultByType(ammotypes[i]);
let def = GetDefaultByType(type);
if ( amt >= def.Amount )
{
last = DoDrop(ammotypes[i]);
last = DoDrop(type);
amt -= def.Amount;
Amount -= def.Amount;
break;
@ -606,10 +606,10 @@ Class MagAmmo : Inventory abstract
{
Super.ModifyDropAmount(dropamount);
int maxdrop = 1;
for ( int i=0; i<AllActorClasses.Size(); i++ )
foreach ( cls:AllActorClasses )
{
if ( !(AllActorClasses[i] is GetParentMagAmmo()) ) continue;
let def = GetDefaultByType((Class<MagAmmo>)(AllActorClasses[i]));
if ( !(cls is GetParentMagAmmo()) ) continue;
let def = GetDefaultByType((Class<MagAmmo>)(cls));
maxdrop = max(maxdrop,def.amount);
}
Amount = Random[ShellDrop](1,clamp(dropamount,1,maxdrop));