--************************************************************************--
--** QSReloadUtil
--**
--************************************************************************--
QSReloadUtil = ISReloadUtil:derive("QSReloadUtil");

	-- SMGuns
	
local LF57 = { type = "LF57",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	ammoType = 'LF57Mag',
	clipName = 'LF-57 Magazine (9mm)',
	clipIcon = 'LF57Mag',
	shootSound = '9mmFire',
	clickSound = 'QSSMGEmpty',
	ejectSound = 'QSSMG2Out',
	insertSound = 'QSSMG2In',
	rackSound = 'QSSMGRack',
	containsClip = 1,
	rackTime = 8,
	clipData = LF57Mag };
	
local UZI = { type = "UZI",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	ammoType = 'UZIMag',
	clipName = 'UZI Magazine (9mm)',
	clipIcon = 'UZIMag',
	shootSound = '9mmFire',
	clickSound = 'QSSMGEmpty',
	ejectSound = 'QSSMG2Out',
	insertSound = 'QSSMG2In',
	rackSound = 'QSSMGRack',
	containsClip = 1,
	rackTime = 8,
	clipData = UZIMag };
	
local MP9 = { type = "MP9",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	ammoType = 'MP9Mag',
	clipName = 'MP9 Magazine (9mm)',
	clipIcon = 'MP9Mag',
	shootSound = '9mmFire',
	clickSound = 'QSSMGEmpty',
	ejectSound = 'QSSMG2Out',
	insertSound = 'QSSMG2In',
	rackSound = 'QSSMGRack',
	containsClip = 1,
	rackTime = 8,
	clipData = MP9Mag };
	
local SteyrTMP = { type = "SteyrTMP",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	ammoType = 'SteyrTMPMag',
	clipName = 'Steyr TMP Magazine (9mm)',
	clipIcon = 'SteyrTMPMag',
	shootSound = '9mmFire',
	clickSound = 'QSSMGEmpty',
	ejectSound = 'QSSMG2Out',
	insertSound = 'QSSMG2In',
	rackSound = 'QSSMGRack',
	containsClip = 1,
	rackTime = 8,
	clipData = SteyrTMPMag };
	
local UZIL40 = { type = "UZIL40",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	ammoType = 'UZIMag40',
	clipName = 'UZI Magazine (40 rounds 9mm)',
	clipIcon = 'UZIMag40',
	shootSound = '9mmFire',
	clickSound = 'QSSMGEmpty',
	ejectSound = 'QSSMG2Out',
	insertSound = 'QSSMG2In',
	rackSound = 'QSSMGRack',
	containsClip = 1,
	rackTime = 8,
	clipData = UZIMag40 };

local MAC10 = { type = "MAC10",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	ammoType = 'MAC10Mag',
	clipName = 'MAC-10 Magazine (9mm)',
	clipIcon = 'MAC10Mag',
	shootSound = '9mmFire',
	clickSound = 'QSSMGEmpty',
	ejectSound = 'QSSMG2Out',
	insertSound = 'QSSMG2In',
	rackSound = 'QSSMGRack',
	containsClip = 1,
	rackTime = 8,
	clipData = MAC10Mag };	

local Skorpion = { type = "Skorpion",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	ammoType = 'SkorpionMag',
	clipName = 'Skorpion Magazine (9mm)',
	clipIcon = 'SkorpionMag',
	shootSound = '9mmFire',
	clickSound = 'QSSMGEmpty',
	ejectSound = 'QSSMG2Out',
	insertSound = 'QSSMG2In',
	rackSound = 'QSSMGRack',
	containsClip = 1,
	rackTime = 8,
	clipData = SkorpionMag };	
	
local Agram2000 = { type = "Agram2000",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	ammoType = 'Agram2000Mag',
	clipName = 'Agram 2000 Magazine (9mm)',
	clipIcon = 'Agram2000Mag',
	shootSound = '9mmFire',
	clickSound = 'QSSMGEmpty',
	ejectSound = 'QSSMG2Out',
	insertSound = 'QSSMG2In',
	rackSound = 'QSSMGRack',
	containsClip = 1,
	rackTime = 8,
	clipData = Agram2000Mag };	

local TEC9 = { type = "TEC9",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	ammoType = 'TEC9Mag',
	clipName = 'TEC-9 Magazine (9mm)',
	clipIcon = 'TEC9Mag',
	shootSound = '9mmFire',
	clickSound = 'QSSMGEmpty',
	ejectSound = 'QSSMG2Out',
	insertSound = 'QSSMG2In',
	rackSound = 'QSSMGRack',
	containsClip = 1,
	rackTime = 5,
	clipData = TEC9Mag };	

local WaltherMP = { type = "WaltherMP",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	ammoType = 'WaltherMPMag',
	clipName = 'Walther MP Magazine (9mm)',
	clipIcon = 'WaltherMPMag',
	shootSound = '9mmFire',
	clickSound = 'QSSMGEmpty',
	ejectSound = 'QSSMG2Out',
	insertSound = 'QSSMG2In',
	rackSound = 'QSSMGRack',
	containsClip = 1,
	rackTime = 8,
	clipData = WaltherMPMag };
	
local ZastavaMFLG = { type = "ZastavaMFLG",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	ammoType = 'ZastavaMFLGMag',
	clipName = 'Zastava Master FLG Magazine (9mm)',
	clipIcon = 'ZastavaMFLGMag',
	shootSound = '9mmFire',
	clickSound = 'QSSMGEmpty',
	ejectSound = 'QSSMG2Out',
	insertSound = 'QSSMG2In',
	rackSound = 'QSSMGRack',
	containsClip = 1,
	rackTime = 8,
	clipData = ZastavaMFLGMag };
	
local SpectreM4 = { type = "SpectreM4",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	ammoType = 'SpectreM4Mag',
	clipName = 'Spectre M4 Magazine (9mm)',
	clipIcon = 'SpectreM4Mag',
	shootSound = '9mmFire',
	clickSound = 'QSSMGEmpty',
	ejectSound = 'QSSMGOut',
	insertSound = 'QSSMGIn',
	rackSound = 'QSSMGRack',
	containsClip = 1,
	rackTime = 8,
	clipData = SpectreM4Mag };
	
local PP2000 = { type = "PP2000",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	ammoType = 'PP2000Mag',
	clipName = 'PP-2000 Magazine (9mm)',
	clipIcon = 'PP2000Mag',
	shootSound = '9mmFire',
	clickSound = 'QSSMGEmpty',
	ejectSound = 'QSSMGOut',
	insertSound = 'QSSMGIn',
	rackSound = 'QSSMGRack',
	containsClip = 1,
	rackTime = 8,
	clipData = PP2000Mag };
	
local VityazSN = { type = "VityazSN",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	ammoType = 'VityazSNMag',
	clipName = 'Vityaz SN Magazine (9mm)',
	clipIcon = 'VityazSNMag',
	shootSound = '9mmFire',
	clickSound = 'QSSMGEmpty',
	ejectSound = 'QSSMG2Out',
	insertSound = 'QSSMG2In',
	rackSound = 'QSSMGRack',
	containsClip = 1,
	rackTime = 8,
	clipData = VityazSNMag };
	
local MP5 = { type = "MP5",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	ammoType = 'MP5Mag',
	clipName = 'MP5 Magazine (9mm)',
	clipIcon = 'MP5Mag',
	shootSound = '9mmFire',
	clickSound = 'QSSMGEmpty',
	ejectSound = 'QSSMG2Out',
	insertSound = 'QSSMG2In',
	rackSound = 'QSSMGRack',
	containsClip = 1,
	rackTime = 8,
	clipData = MP5Mag };
	
local UMP = { type = "UMP",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	ammoType = 'UMPMag',
	clipName = 'UMP Magazine (.45 ACP)',
	clipIcon = 'UMPMag',
	shootSound = '9mmFire',
	clickSound = 'QSSMGEmpty',
	ejectSound = 'QSSMG2Out',
	insertSound = 'QSSMG2In',
	rackSound = 'QSSMGRack',
	containsClip = 1,
	rackTime = 8,
	clipData = UMPMag };
	
local UMPsawed = { type = "UMPsawed",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	ammoType = 'UMPMag',
	clipName = 'UMP Magazine (.45 ACP)',
	clipIcon = 'UMPMag',
	shootSound = '9mmFire',
	clickSound = 'QSSMGEmpty',
	ejectSound = 'QSSMG2Out',
	insertSound = 'QSSMG2In',
	rackSound = 'QSSMGRack',
	containsClip = 1,
	rackTime = 8,
	clipData = UMPMag };
	
local MP5sawed = { type = "MP5sawed",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	ammoType = 'MP5Mag',
	clipName = 'MP5 Magazine (9mm)',
	clipIcon = 'MP5Mag',
	shootSound = '9mmFire',
	clickSound = 'QSSMGEmpty',
	ejectSound = 'QSSMG2Out',
	insertSound = 'QSSMG2In',
	rackSound = 'QSSMGRack',
	containsClip = 1,
	rackTime = 8,
	clipData = MP5Mag };

	
	-- Magazines

local UZIMag = { type = "UZIMag",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	clipType = 'UZIMag',
	ammoType = '9mmRounds',
	shootSound = 'none',
	clickSound = nil,
	ejectSound = 'QSMagLoad',
	insertSound = 'QSMagLoad',
	rackSound = 'QSMagLoad',
	containsClip = 0,
	maxCapacity = 25,
	reloadTime = 30,
	rackTime = 4};
	
local MP9Mag = { type = "MP9Mag",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	clipType = 'MP9Mag',
	ammoType = '9mmRounds',
	shootSound = 'none',
	clickSound = nil,
	ejectSound = 'QSMagLoad',
	insertSound = 'QSMagLoad',
	rackSound = 'QSMagLoad',
	containsClip = 0,
	maxCapacity = 32,
	reloadTime = 30,
	rackTime = 4};

local SteyrTMPMag = { type = "SteyrTMPMag",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	clipType = 'SteyrTMPMag',
	ammoType = '9mmRounds',
	shootSound = 'none',
	clickSound = nil,
	ejectSound = 'QSMagLoad',
	insertSound = 'QSMagLoad',
	rackSound = 'QSMagLoad',
	containsClip = 0,
	maxCapacity = 30,
	reloadTime = 25,
	rackTime = 4};
	
local UZIMag40 = { type = "UZIMag40",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	clipType = 'UZIMag40',
	ammoType = '9mmRounds',
	shootSound = 'none',
	clickSound = nil,
	ejectSound = 'QSMagLoad',
	insertSound = 'QSMagLoad',
	rackSound = 'QSMagLoad',
	containsClip = 0,
	maxCapacity = 40,
	reloadTime = 30,
	rackTime = 4};
	
local LF57Mag = { type = "LF57Mag",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	clipType = 'LF57Mag',
	ammoType = '9mmRounds',
	shootSound = 'none',
	clickSound = nil,
	ejectSound = 'QSMagLoad',
	insertSound = 'QSMagLoad',
	rackSound = 'QSMagLoad',
	containsClip = 0,
	maxCapacity = 40,
	reloadTime = 35,
	rackTime = 4};
	
local MAC10Mag = { type = "MAC10Mag",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	clipType = 'MAC10Mag',
	ammoType = '9mmRounds',
	shootSound = 'none',
	clickSound = nil,
	ejectSound = 'QSMagLoad',
	insertSound = 'QSMagLoad',
	rackSound = 'QSMagLoad',
	containsClip = 0,
	maxCapacity = 32,
	reloadTime = 25,
	rackTime = 4};
	
local SkorpionMag = { type = "SkorpionMag",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	clipType = 'SkorpionMag',
	ammoType = '9mmRounds',
	shootSound = 'none',
	clickSound = nil,
	ejectSound = 'QSMagLoad',
	insertSound = 'QSMagLoad',
	rackSound = 'QSMagLoad',
	containsClip = 0,
	maxCapacity = 25,
	reloadTime = 20,
	rackTime = 4};
	
local TEC9Mag = { type = "TEC9Mag",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	clipType = 'TEC9Mag',
	ammoType = '9mmRounds',
	shootSound = 'none',
	clickSound = nil,
	ejectSound = 'QSMagLoad',
	insertSound = 'QSMagLoad',
	rackSound = 'QSMagLoad',
	containsClip = 0,
	maxCapacity = 36,
	reloadTime = 20,
	rackTime = 4};	

local WaltherMPMag = { type = "WaltherMPMag",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	clipType = 'WaltherMPMag',
	ammoType = '9mmRounds',
	shootSound = 'none',
	clickSound = nil,
	ejectSound = 'QSMagLoad',
	insertSound = 'QSMagLoad',
	rackSound = 'QSMagLoad',
	containsClip = 0,
	maxCapacity = 32,
	reloadTime = 38,
	rackTime = 8};
	
local Agram2000Mag = { type = "Agram2000Mag",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	clipType = 'Agram2000Mag',
	ammoType = '9mmRounds',
	shootSound = 'none',
	clickSound = nil,
	ejectSound = 'QSMagLoad',
	insertSound = 'QSMagLoad',
	rackSound = 'QSMagLoad',
	containsClip = 0,
	maxCapacity = 32,
	reloadTime = 35,
	rackTime = 8};
	
local ZastavaMFLGMag = { type = "ZastavaMFLGMag",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	clipType = 'ZastavaMFLGMag',
	ammoType = '9mmRounds',
	shootSound = 'none',
	clickSound = nil,
	ejectSound = 'QSMagLoad',
	insertSound = 'QSMagLoad',
	rackSound = 'QSMagLoad',
	containsClip = 0,
	maxCapacity = 30,
	reloadTime = 35,
	rackTime = 8};	

local SpectreM4Mag = { type = "SpectreM4Mag",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	clipType = 'SpectreM4Mag',
	ammoType = '9mmRounds',
	shootSound = 'none',
	clickSound = nil,
	ejectSound = 'QSMagLoad',
	insertSound = 'QSMagLoad',
	rackSound = 'QSMagLoad',
	containsClip = 0,
	maxCapacity = 50,
	reloadTime = 35,
	rackTime = 10};
	
local PP2000Mag = { type = "PP2000Mag",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	clipType = 'PP2000Mag',
	ammoType = '9mmRounds',
	shootSound = 'none',
	clickSound = nil,
	ejectSound = 'QSMagLoad',
	insertSound = 'QSMagLoad',
	rackSound = 'QSMagLoad',
	containsClip = 0,
	maxCapacity = 30,
	reloadTime = 30,
	rackTime = 10};
	
local VityazSNMag = { type = "VityazSNMag",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	clipType = 'VityazSNMag',
	ammoType = '9mmRounds',
	shootSound = 'none',
	clickSound = nil,
	ejectSound = 'QSMagLoad',
	insertSound = 'QSMagLoad',
	rackSound = 'QSMagLoad',
	containsClip = 0,
	maxCapacity = 30,
	reloadTime = 35,
	rackTime = 10};
	
local MP5Mag = { type = "MP5Mag",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	clipType = 'MP5Mag',
	ammoType = '9mmRounds',
	shootSound = 'none',
	clickSound = nil,
	ejectSound = 'QSMagLoad',
	insertSound = 'QSMagLoad',
	rackSound = 'QSMagLoad',
	containsClip = 0,
	maxCapacity = 30,
	reloadTime = 35,
	rackTime = 8};
	
local UMPMag = { type = "UMPMag",
	moduleName = 'QS',
	reloadClass = 'QSWeaponAutoMF',
	clipType = 'UMPMag',
	ammoType = '45ACPRounds',
	shootSound = 'none',
	clickSound = nil,
	ejectSound = 'QSMagLoad',
	insertSound = 'QSMagLoad',
	rackSound = 'QSMagLoad',
	containsClip = 0,
	maxCapacity = 30,
	reloadTime = 35,
	rackTime = 8};


	--ReloadUtil
ReloadUtil:addWeaponType(LF57)
ReloadUtil:addWeaponType(UZI)
ReloadUtil:addWeaponType(UZIL40)
ReloadUtil:addWeaponType(MAC10)
ReloadUtil:addWeaponType(MP9)
ReloadUtil:addWeaponType(SteyrTMP)
ReloadUtil:addWeaponType(Skorpion)
ReloadUtil:addWeaponType(TEC9)
ReloadUtil:addWeaponType(WaltherMP)
ReloadUtil:addWeaponType(Agram2000)
ReloadUtil:addWeaponType(ZastavaMFLG)
ReloadUtil:addWeaponType(SpectreM4)
ReloadUtil:addWeaponType(PP2000)
ReloadUtil:addWeaponType(VityazSN)
ReloadUtil:addWeaponType(MP5)
ReloadUtil:addWeaponType(MP5sawed)
ReloadUtil:addWeaponType(UMP)
ReloadUtil:addWeaponType(UMPsawed)

ReloadUtil:addMagazineType(LF57Mag)
ReloadUtil:addMagazineType(UZIMag)
ReloadUtil:addMagazineType(UZIMag40)
ReloadUtil:addMagazineType(MAC10Mag)
ReloadUtil:addMagazineType(MP9Mag)
ReloadUtil:addMagazineType(SteyrTMPMag)
ReloadUtil:addMagazineType(SkorpionMag)
ReloadUtil:addMagazineType(TEC9Mag)
ReloadUtil:addMagazineType(WaltherMPMag)
ReloadUtil:addMagazineType(Agram2000Mag)
ReloadUtil:addMagazineType(ZastavaMFLGMag)
ReloadUtil:addMagazineType(SpectreM4Mag)
ReloadUtil:addMagazineType(PP2000Mag)
ReloadUtil:addMagazineType(VityazSNMag)
ReloadUtil:addMagazineType(MP5Mag)
ReloadUtil:addMagazineType(UMPMag)