public void Init(string name, GameFileCache gfc, bool hidef = true) { Name = name; var modelnamel = name.ToLowerInvariant(); MetaHash modelhash = JenkHash.GenHash(modelnamel); MetaHash modelhashhi = JenkHash.GenHash(modelnamel + "_hi"); var yfthash = hidef ? modelhashhi : modelhash; VehicleInitData vid = null; if (gfc.VehiclesInitDict.TryGetValue(modelhash, out vid)) { bool vehiclechange = NameHash != modelhash; ConvRoofDict = null; ConvRoofClip = null; ModelHash = yfthash; NameHash = modelhash; InitData = vid; Yft = gfc.GetYft(ModelHash); while ((Yft != null) && (!Yft.Loaded)) { Thread.Sleep(20);//kinda hacky Yft = gfc.GetYft(ModelHash); } DisplayMake = GlobalText.TryGetString(JenkHash.GenHash(vid.vehicleMakeName.ToLowerInvariant())); DisplayName = GlobalText.TryGetString(JenkHash.GenHash(vid.gameName.ToLowerInvariant())); if (!string.IsNullOrEmpty(vid.animConvRoofDictName) && (vid.animConvRoofDictName.ToLowerInvariant() != "null")) { var ycdhash = JenkHash.GenHash(vid.animConvRoofDictName.ToLowerInvariant()); var cliphash = JenkHash.GenHash(vid.animConvRoofName?.ToLowerInvariant()); ConvRoofDict = gfc.GetYcd(ycdhash); while ((ConvRoofDict != null) && (!ConvRoofDict.Loaded)) { Thread.Sleep(20);//kinda hacky ConvRoofDict = gfc.GetYcd(ycdhash); } ClipMapEntry cme = null; ConvRoofDict?.ClipMap?.TryGetValue(cliphash, out cme); ConvRoofClip = cme; } } else { ModelHash = 0; NameHash = 0; InitData = null; Yft = null; DisplayMake = "-"; DisplayName = "-"; ConvRoofDict = null; ConvRoofClip = null; } UpdateEntity(); }
public void LoadVehicle() { var modelname = VehicleModelComboBox.Text; var modelnamel = modelname.ToLowerInvariant(); MetaHash modelhash = JenkHash.GenHash(modelnamel); MetaHash modelhashhi = JenkHash.GenHash(modelnamel + "_hi"); bool hidet = VehicleHighDetailCheckBox.Checked; var yfthash = hidet ? modelhashhi : modelhash; VehicleInitData vid = null; if (GameFileCache.VehiclesInitDict.TryGetValue(modelhash, out vid)) { bool vehiclechange = SelectedVehicleHash != modelhash; SelectedModelHash = yfthash; SelectedVehicleHash = modelhash; SelectedVehicleInit = vid; SelectedVehicleYft = GameFileCache.GetYft(SelectedModelHash); while ((SelectedVehicleYft != null) && (!SelectedVehicleYft.Loaded)) { Thread.Sleep(20);//kinda hacky SelectedVehicleYft = GameFileCache.GetYft(SelectedModelHash); } LoadModel(SelectedVehicleYft, vehiclechange); VehicleMakeLabel.Text = GlobalText.TryGetString(JenkHash.GenHash(vid.vehicleMakeName.ToLower())); VehicleNameLabel.Text = GlobalText.TryGetString(JenkHash.GenHash(vid.gameName.ToLower())); } else { SelectedModelHash = 0; SelectedVehicleHash = 0; SelectedVehicleInit = null; SelectedVehicleYft = null; VehicleMakeLabel.Text = "-"; VehicleNameLabel.Text = "-"; } }