public static MultiUse Load(List <string> values) { MultiUse multiUse = new MultiUse(); multiUse.prefireGraphic = new Graphics(ref values, 71); multiUse.prefireSound = new Sound(ref values, 79); multiUse.firingSound = new Sound(ref values, 93); multiUse.iconGraphic = new Graphics(ref values, 23); ItemInfo.LoadGeneralSettings1((ItemInfo)multiUse, values); multiUse.useAmmoID = CSVReader.GetInt(values[31]); multiUse.ammoUsedPerShot = CSVReader.GetInt(values[32]); multiUse.ammoCapacity = CSVReader.GetInt(values[33]); multiUse.requiredItem = CSVReader.GetInt(values[34]); multiUse.requiredAmmoAmount = CSVReader.GetInt(values[35]); multiUse.energyCostTerrain0 = CSVReader.GetInt(values[36]); multiUse.energyCostTerrain1 = CSVReader.GetInt(values[37]); multiUse.energyCostTerrain2 = CSVReader.GetInt(values[38]); multiUse.energyCostTerrain3 = CSVReader.GetInt(values[39]); multiUse.energyCostTerrain4 = CSVReader.GetInt(values[40]); multiUse.energyCostTerrain5 = CSVReader.GetInt(values[41]); multiUse.energyCostTerrainTerrain6 = CSVReader.GetInt(values[42]); multiUse.energyCostTerrain7 = CSVReader.GetInt(values[43]); multiUse.energyCostTerrain8 = CSVReader.GetInt(values[44]); multiUse.energyCostTerrain9 = CSVReader.GetInt(values[45]); multiUse.energyCostTerrain10 = CSVReader.GetInt(values[46]); multiUse.energyCostTerrain11 = CSVReader.GetInt(values[47]); multiUse.energyCostTerrain12 = CSVReader.GetInt(values[48]); multiUse.energyCostTerrain13 = CSVReader.GetInt(values[49]); multiUse.energyCostTerrain14 = CSVReader.GetInt(values[50]); multiUse.energyCostTerrain15 = CSVReader.GetInt(values[51]); multiUse.secondShotEnergy = CSVReader.GetInt(values[52]); multiUse.secondShotTimeout = CSVReader.GetInt(values[53]); multiUse.fireDelay = CSVReader.GetInt(values[54]); multiUse.fireDelayOther = CSVReader.GetInt(values[55]); multiUse.maxFireDelay = CSVReader.GetInt(values[56]); multiUse.entryFireDelay = CSVReader.GetInt(values[57]); multiUse.reloadDelayNormal = CSVReader.GetInt(values[58]); multiUse.reloadDelayPartial = CSVReader.GetInt(values[59]); multiUse.reloadDelayAsynchronous = CSVReader.GetInt(values[60]); multiUse.reloadDelayAsynchronousPartial = CSVReader.GetInt(values[61]); multiUse.routeRange = CSVReader.GetInt(values[62]); multiUse.routeRotationalRange = CSVReader.GetInt(values[63]); multiUse.routeFriendly = CSVReader.GetBool(values[65]); multiUse.recoil = CSVReader.GetInt(values[66]); multiUse.verticalRecoil = CSVReader.GetInt(values[67]); multiUse.prefireDelay = CSVReader.GetInt(values[68]); multiUse.reliability = CSVReader.GetInt(values[69]); multiUse.reliabilityFireDelay = CSVReader.GetInt(values[70]); multiUse.movementCancelsPrefire = CSVReader.GetBool(values[83]); multiUse.notifyOthersOfPrefire = CSVReader.GetBool(values[84]); multiUse.cashCost = CSVReader.GetInt(values[85]); multiUse.useWhileCarryingBall = CSVReader.GetBool(values[86]); multiUse.useWhileCarryingFlag = CSVReader.GetBool(values[87]); multiUse.soccerThrow = CSVReader.GetInt(values[88]); multiUse.soccerBallFriction = CSVReader.GetInt(values[89]); multiUse.soccerBallSpeed = CSVReader.GetInt(values[90]); multiUse.soccerLowFireAngle = CSVReader.GetInt(values[91]); multiUse.soccerHighFireAngle = CSVReader.GetInt(values[92]); int currentPlace = 97; multiUse.childItems = new List <ChildItem>(); for (int i = 0; i < 32; i++) { if (currentPlace < values.Count) { ChildItem child = new ChildItem(); child.id = CSVReader.GetInt(values[currentPlace + 0]); child.deltaX = CSVReader.GetInt(values[currentPlace + 1]); child.deltaY = CSVReader.GetInt(values[currentPlace + 2]); child.deltaZ = CSVReader.GetInt(values[currentPlace + 3]); child.deltaAngle = CSVReader.GetInt(values[currentPlace + 4]); child.theMultiLinkMode = (ChildItem.MultiLinkModes)CSVReader.GetInt(values[currentPlace + 5]); multiUse.childItems.Add(child); currentPlace += 6; } else { break; } } return(multiUse); }
public static List <ItemInfo> Load(string filename) { List <ItemInfo> itemInfo = new List <ItemInfo>(); TextReader reader = new StreamReader(filename); string line = ""; while ((line = reader.ReadLine()) != null) { List <string> values = CSVReader.Parse(line); switch (values[0]) { case "4": Ammo ammo = Ammo.Load(values); BlobsToLoad.Add(ammo.graphic.blobName); itemInfo.Add(ammo); break; case "1": MultiItem multiItem = MultiItem.Load(values); BlobsToLoad.Add(multiItem.graphic.blobName); itemInfo.Add(multiItem); break; case "6": Projectile projectile = Projectile.Load(values); BlobsToLoad.Add(projectile.iconGraphic.blobName); BlobsToLoad.Add(projectile.fireGraphic.blobName); BlobsToLoad.Add(projectile.projectileGraphic.blobName); BlobsToLoad.Add(projectile.shadowGraphic.blobName); BlobsToLoad.Add(projectile.trailGraphic.blobName); BlobsToLoad.Add(projectile.explosionGraphic.blobName); BlobsToLoad.Add(projectile.prefireGraphic.blobName); BlobsToLoad.Add(projectile.firingSound.blobName); BlobsToLoad.Add(projectile.explosionSound.blobName); BlobsToLoad.Add(projectile.bounceSound.blobName); BlobsToLoad.Add(projectile.prefireSound.blobName); itemInfo.Add(projectile); break; case "7": VehicleMaker vehicleMaker = VehicleMaker.Load(values); BlobsToLoad.Add(vehicleMaker.prefireSound.blobName); BlobsToLoad.Add(vehicleMaker.prefireGraphic.blobName); BlobsToLoad.Add(vehicleMaker.iconGraphic.blobName); itemInfo.Add(vehicleMaker); break; case "8": MultiUse multiUse = MultiUse.Load(values); BlobsToLoad.Add(multiUse.prefireGraphic.blobName); BlobsToLoad.Add(multiUse.firingSound.blobName); BlobsToLoad.Add(multiUse.prefireSound.blobName); BlobsToLoad.Add(multiUse.iconGraphic.blobName); itemInfo.Add(multiUse); break; case "11": RepairItem repair = RepairItem.Load(values); BlobsToLoad.Add(repair.iconGraphic.blobName); BlobsToLoad.Add(repair.prefireGraphic.blobName); BlobsToLoad.Add(repair.repairGraphic.blobName); BlobsToLoad.Add(repair.prefireSound.blobName); BlobsToLoad.Add(repair.repairSound.blobName); itemInfo.Add(repair); break; case "15": UpgradeItem upgrade = UpgradeItem.Load(values); BlobsToLoad.Add(upgrade.iconGraphic.blobName); itemInfo.Add(upgrade); break; case "12": ControlItem control = ControlItem.Load(values); BlobsToLoad.Add(control.iconGraphic.blobName); BlobsToLoad.Add(control.prefireGraphic.blobName); BlobsToLoad.Add(control.effectGraphic.blobName); BlobsToLoad.Add(control.prefireSound.blobName); BlobsToLoad.Add(control.firingSound.blobName); itemInfo.Add(control); break; case "13": UtilityItem utility = UtilityItem.Load(values); BlobsToLoad.Add(utility.iconGraphic.blobName); BlobsToLoad.Add(utility.activateSound.blobName); itemInfo.Add(utility); break; case "17": WarpItem warp = WarpItem.Load(values); BlobsToLoad.Add(warp.iconGraphic.blobName); BlobsToLoad.Add(warp.prefireGraphic.blobName); BlobsToLoad.Add(warp.warpGraphic.blobName); BlobsToLoad.Add(warp.prefireSound.blobName); BlobsToLoad.Add(warp.warpSound.blobName); itemInfo.Add(warp); break; case "16": SkillItem skill = SkillItem.Load(values); BlobsToLoad.Add(skill.iconGraphic.blobName); itemInfo.Add(skill); break; case "14": ItemMaker item = ItemMaker.Load(values); BlobsToLoad.Add(item.prefireGraphic.blobName); BlobsToLoad.Add(item.prefireSound.blobName); BlobsToLoad.Add(item.iconGraphic.blobName); itemInfo.Add(item); break; case "18": NestedItem nested = NestedItem.Load(values); FilesToLoad.Add(nested.location); itemInfo.Add(nested); break; case "default": //F**k you, you idiot. use Log.write //Console.WriteLine("If you see this Toriad f****d up"); break; } } return(itemInfo); }