/////////////////////////////////////////////////////
// Mutator: Copy and Paste from EPIC
// Assembled By: *PingFre@K*
/////////////////////////////////////////////////////
class FirstMutator extends UTMutator
config(FirstMutator);
struct ReplacementInfo
{
/** class name of the weapon we want to get rid of */
var name OldClassName;
/** fully qualified path of the class to replace it with */
var string NewClassPath;
};
var config array<ReplacementInfo> WeaponsToReplace;
//var config array<ReplacementInfo> AmmoToReplace;
function PostBeginPlay()
{
local UTGame Game;
local int i, Index;
Super.PostBeginPlay();
// replace default weapons
Game = UTGame(WorldInfo.Game);
if (Game != None)
{
for (i = 0; i < Game.DefaultInventory.length; i++)
{
if (Game.DefaultInventory[i] != None)
{
Index = WeaponsToReplace.Find('OldClassName', Game.DefaultInventory[i].Name);
if (Index != INDEX_NONE)
{
if (WeaponsToReplace[Index].NewClassPath == "")
{
// replace with nothing
Game.DefaultInventory.Remove(i, 1);
i--;
}
Game.DefaultInventory[i] = class<UTWeapon>(DynamicLoadObject(WeaponsToReplace[Index].NewClassPath, class'Class'));
}
}
}
if (Game.TranslocatorClass != None)
{
Index = WeaponsToReplace.Find('OldClassName', Game.TranslocatorClass.Name);
if (Index != INDEX_NONE)
{
if (WeaponsToReplace[Index].NewClassPath == "")
{
// replace with nothing
Game.TranslocatorClass = None;
}
else
{
Game.TranslocatorClass = class<UTWeapon>(DynamicLoadObject(WeaponsToReplace[Index].NewClassPath, class'Class'));
}
}
}
}
}
function bool CheckReplacement(Actor Other)
{
local UTWeaponPickupFactory WeaponPickup;
local UTWeaponLocker Locker;
// local UTAmmoPickupFactory AmmoPickup, NewAmmo;
local int i, Index;
// local class<UTAmmoPickupFactory> NewAmmoClass;
WeaponPickup = UTWeaponPickupFactory(Other);
if (WeaponPickup != None)
{
if (WeaponPickup.WeaponPickupClass != None)
{
Index = WeaponsToReplace.Find('OldClassName', WeaponPickup.WeaponPickupClass.Name);
if (Index != INDEX_NONE)
{
if (WeaponsToReplace[Index].NewClassPath == "")
{
// replace with nothing
return false;
}
WeaponPickup.WeaponPickupClass = class<UTWeapon>(DynamicLoadObject(WeaponsToReplace[Index].NewClassPath, class'Class'));
WeaponPickup.InitializePickup();
}
}
}
else
{
Locker = UTWeaponLocker(Other);
if (Locker != None)
{
for (i = 0; i < Locker.Weapons.length; i++)
{
if (Locker.Weapons[i].WeaponClass != None)
{
Index = WeaponsToReplace.Find('OldClassName', Locker.Weapons[i].WeaponClass.Name);
if (Index != INDEX_NONE)
{
if (WeaponsToReplace[Index].NewClassPath == "")
{
// replace with nothing
Locker.ReplaceWeapon(i, None);
}
else
{
Locker.ReplaceWeapon(i, class<UTWeapon>(DynamicLoadObject(WeaponsToReplace[Index].NewClassPath, class'Class')));
}
}
}
}
}
// else
// {
// AmmoPickup = UTAmmoPickupFactory(Other);
// if (AmmoPickup != None)
// {
// Index = AmmoToReplace.Find('OldClassName', AmmoPickup.Class.Name);
// if (Index != INDEX_NONE)
// {
// if (AmmoToReplace[Index].NewClassPath == "")
// {
// // replace with nothing
// return false;
// }
// NewAmmoClass = class<UTAmmoPickupFactory>(DynamicLoadObject(AmmoT oReplace[Index].NewClassPath, class'Class'));
// if (NewAmmoClass == None)
// {
// // replace with nothing
// return false;
// }
// else if (NewAmmoClass.default.bStatic || NewAmmoClass.default.bNoDelete)
// {
// // transform the current ammo into the desired class
// AmmoPickup.TransformAmmoType(NewAmmoClass);
// return true;
// }
// else
// {
// // spawn the new ammo, link it to the old, then disable the old one
// NewAmmo = AmmoPickup.Spawn(NewAmmoClass);
// NewAmmo.OriginalFactory = AmmoPickup;
// AmmoPickup.ReplacementFactory = NewAmmo;
// return false;
// }
// }
// }
// }
// }
// return true;
//}
defaultproperties
{
// Fill in the blanks
WeaponsToReplace(0)=(OldClassName="UTWeap_Enforcer ",NewClassPath="FirstMutator.UTWeap_Enforcer")
AmmoToReplace(0)=(OldClassName="UTAmmo_Enforcer",N ewClassPath="UTAmmo_Enforcer")
// WeaponsToReplace(1)=(OldClassName="UTWeap_BioRifle _Content",NewClassPath="")
// AmmoToReplace(1)=(OldClassName="UTAmmo_BioRifle_Co ntent",NewClassPath="")
//WeaponsToReplace(2)=(OldClassName="UTWeap_FlakCann on",NewClassPath="")
// AmmoToReplace(2)=(OldClassName="UTAmmo_FlakCannon" ,NewClassPath="")
// WeaponsToReplace(3)=(OldClassName="UTWeap_LinkGun" ,NewClassPath="")
// AmmoToReplace(3)=(OldClassName="UTAmmo_LinkGun",Ne wClassPath="")
// WeaponsToReplace(4)=(OldClassName="UTWeap_Redeemer _Content",NewClassPath="")
// WeaponsToReplace(5)=(OldClassName="UTWeap_RocketLa uncher",NewClassPath="")
// AmmoToReplace(5)=(OldClassName="UTAmmo_RocketLaunc her",NewClassPath="")
// WeaponsToReplace(6)=(OldClassName="UTWeap_ShockRif le",NewClassPath="")
// AmmoToReplace(6)=(OldClassName="UTAmmo_ShockRifle" ,NewClassPath="")
// WeaponsToReplace(7)=(OldClassName="UTWeap_SniperRi fle",NewClassPath="")
// AmmoToReplace(7)=(OldClassName="UTAmmo_SniperRifle ",NewClassPath="")
WeaponsToReplace(8)=(OldClassName="UTWeap_Stinger" ,NewClassPath="FirstMutator.UTWeap_Stoner")
AmmoToReplace(8)=(OldClassName="UTAmmo_Stinger",Ne wClassPath="UTAmmo_Stinger")
GroupNames(0)="Zippylabs"
Name="ZippyLabs"
DefaultProperties
{
}
Bookmarks