public TurretType(FITFile objFitFile) : base(objFitFile) { objectTypeClass = (int)ObjectTypeClass.TURRET_TYPE; objectClass = ObjectClass.TURRET; damageLevel = 0f; blownEffectId = -1; normalEffectId = -1; damageEffectId = -1; explDmg = explRad = 0f; baseTonnage = 0f; weaponMasterId[0] = weaponMasterId[1] = weaponMasterId[2] = weaponMasterId[3] = -1; pilotSkill = 0; punch = 0f; turretYawRate = 0f; turretTypeName = 0; blocksLineOfFire = false; lowTemplate = 0; highTemplate = 0; if (!objFitFile.SeekSection("TurretData")) { return; } objFitFile.GetBool("BlocksLineOfFire", out blocksLineOfFire); objFitFile.GetFloat("DmgLevel", out damageLevel); if (!objFitFile.GetInt("BlownEffectId", out blownEffectId)) { blownEffectId = -1; } if (!objFitFile.GetInt("NormalEffectId", out normalEffectId)) { normalEffectId = -1; } if (!objFitFile.GetInt("DamageEffectId", out damageEffectId)) { damageEffectId = -1; } objFitFile.GetInt("LowTemplate", out lowTemplate); objFitFile.GetInt("HighTemplate", out highTemplate); if (!objFitFile.GetFloat("ExplosionRadius", out explRad)) { explRad = 0f;// if this fails, explosion radius is not set and no splash damage. } if (!objFitFile.GetFloat("ExplosionDamage", out explDmg)) { explDmg = 0f; // if this fails, explosion damage is not set and no splash damage. } if (!objFitFile.GetFloat("Tonnage", out baseTonnage)) { baseTonnage = 20f; } if (!objFitFile.GetFloat("AttackRadius", out engageRadius)) { return; } if (!objFitFile.GetFloat("MaxTurretYawRate", out turretYawRate)) { return; } if (!objFitFile.GetInt("WeaponType", out weaponMasterId[0])) { return; } //SPOTLIGHTS!!!! if (weaponMasterId[0] != -1) { punch = 99999f;//TODO: MASTERCOMPONENTLIST MasterComponent::masterList[weaponMasterId[0]].getCV(); } else { punch = 0.0f; } if (!objFitFile.GetInt("WeaponType1", out weaponMasterId[1])) { weaponMasterId[1] = -1; } else { punch += 99999f;//TODO: MasterComponent::masterList[weaponMasterId[1]].getCV(); } if (!objFitFile.GetInt("WeaponType2", out weaponMasterId[2])) { weaponMasterId[2] = -1; } else { punch += 99999f;//TODO: MasterComponent::masterList[weaponMasterId[2]].getCV(); } if (!objFitFile.GetInt("WeaponType3", out weaponMasterId[3])) { weaponMasterId[3] = -1; } else { punch += 99999f;//TODO: MasterComponent::masterList[weaponMasterId[3]].getCV(); } if (!objFitFile.GetInt("PilotSkill", out pilotSkill)) { return; } if (!objFitFile.GetInt("BuildingName", out turretTypeName)) { turretTypeName = 30164;// IDS_TRTOBJ_NAME; } }
public BuildingType(FITFile objFitFile) : base(objFitFile) { objectTypeClass = (int)ObjectTypeClass.BUILDING_TYPE; //any reason to record TREEBUILDING_TYPE? objectClass = ObjectClass.BUILDING; damageLevel = 0f; sensorRange = -1f; teamId = -1; explDmg = explRad = 0f; baseTonnage = 0f; buildingTypeName = 0; buildingDescriptionID = -1; startBR = 0; numMarines = 0; canRefit = false; mechBay = false; blocksLineOfFire = false; lowTemplate = 0; highTemplate = 0; if (!objFitFile.SeekSection("TreeData") || !objFitFile.SeekSection("BuildingData")) { return; } //objFitFile.SeekSection("BuildingData"); objFitFile.GetFloat("DmgLevel", out damageLevel); objFitFile.GetBool("CanRefit", out canRefit); if (canRefit) { objFitFile.GetBool("MechBay", out mechBay); } objFitFile.GetBool("BlocksLineOfFire", out blocksLineOfFire); objFitFile.GetInt("LowTemplate", out lowTemplate); objFitFile.GetInt("HighTemplate", out highTemplate); if (!objFitFile.GetFloat("ExplosionRadius", out explRad)) { explRad = 0f;// if this fails, explosion radius is not set and no splash damage. } if (!objFitFile.GetFloat("ExplosionDamage", out explDmg)) { explDmg = 0f; // if this fails, explosion damage is not set and no splash damage. } if (!objFitFile.GetFloat("Tonnage", out baseTonnage)) { baseTonnage = 20f; } if (!objFitFile.GetInt("BattleRating", out startBR)) { startBR = 20; } if (!objFitFile.GetInt("NumMarines", out numMarines)) { numMarines = 0; } float realExtent = 0f; if (!objFitFile.GetFloat("ExtentRadius", out realExtent)) { realExtent = -1f; } //---------------------------- // Init sensor-related data... if (!objFitFile.GetInt("TeamID", out teamId)) { teamId = -1; } if (!objFitFile.GetFloat("SensorRange", out sensorRange)) { sensorRange = -1f; } int buildingNameInt = 30163; if (!objFitFile.GetInt("BuildingName", out buildingNameInt)) { buildingNameInt = 30163; } buildingName = buildingNameInt.ToString(); if (!objFitFile.GetInt("BattleRating", out resourcePoints)) { resourcePoints = -1; } if (!objFitFile.GetInt("BasePixelOffsetX", out basePixelOffsetX)) { basePixelOffsetX = 0; } if (!objFitFile.GetInt("BasePixelOffsetY", out basePixelOffsetY)) { basePixelOffsetY = 0; } if (!objFitFile.GetInt("CollisionOffsetX", out collisionOffsetX)) { collisionOffsetX = 0; } if (!objFitFile.GetInt("CollisionOffsetY", out collisionOffsetY)) { collisionOffsetY = 0; } objFitFile.GetInt("HighTemplate", out highTemplate); objFitFile.GetInt("LowTemplate", out lowTemplate); // impassability = (highTemplate << 32) | lowTemplate; //------------------------------------------------------- // Initialize the base object Type from the current file. extentRadius = realExtent; }