// Just a helper class to help manage dual wield weapons. class DualWeaponsManager extends Object abstract; struct FDualList { var class Single,Dual; }; var array DualMap; static final function bool IsDualWeapon( class W, optional out class SingleType ) { local int i; if( W.Default.DemoReplacement!=None ) { SingleType = class(W.Default.DemoReplacement); return true; } for( i=(Default.DualMap.Length-1); i>=0; --i ) if( W==Default.DualMap[i].Dual ) { SingleType = Default.DualMap[i].Single; return true; } return false; } static final function bool HasDualies( class W, Inventory InvList, optional out class DualType ) { local int i; local Inventory In; for ( In=InvList; In!=None; In=In.Inventory ) if( Weapon(In)!=None && Weapon(In).DemoReplacement==W ) { DualType = class(In.Class); return true; } for( i=(Default.DualMap.Length-1); i>=0; --i ) if( W==Default.DualMap[i].Single ) { DualType = Default.DualMap[i].Dual; W = Default.DualMap[i].Dual; for ( In=InvList; In!=None; In=In.Inventory ) if( In.Class==W ) return true; return false; } return false; } defaultproperties { DualMap(0)=(Single=Class'KFMod.Single',Dual=Class'KFMod.Dualies') DualMap(1)=(Single=Class'KFMod.Magnum44Pistol',Dual=Class'KFMod.Dual44Magnum') DualMap(2)=(Single=Class'KFMod.Deagle',Dual=Class'KFMod.DualDeagle') DualMap(3)=(Single=Class'KFMod.FlareRevolver',Dual=Class'KFMod.DualFlareRevolver') DualMap(4)=(Single=Class'KFMod.MK23Pistol',Dual=Class'KFMod.DualMK23Pistol') }