@@ -563,74 +563,35 @@ void CSettingsSA::SetFieldOfViewVehicleMax(float fAngle, bool bFromScript)
563563// Vehicles LOD draw distance
564564//
565565// //////////////////////////////////////////////
566- float ms_fClientMaxVehicleLODDistance = DEFAULT_VEHICLE_LOD_DISTANCE;
567- float ms_fClientMaxTrainPlaneLODDistance = DEFAULT_VEHICLE_LOD_DISTANCE * TRAIN_LOD_DISTANCE_MULTIPLIER;
568- float ms_fScriptMaxVehicleLODDistance = ms_fClientMaxVehicleLODDistance;
569- float ms_fScriptMaxTrainPlaneLODDistance = ms_fClientMaxTrainPlaneLODDistance;
570566bool ms_bMaxVehicleLODDistanceFromScript = false ;
571567
572568void CSettingsSA::SetVehiclesLODDistance (float fVehiclesLODDistance , float fTrainsPlanesLODDistance , bool bFromScript)
573569{
574- if (bFromScript)
575- {
576- ms_fScriptMaxVehicleLODDistance = fVehiclesLODDistance ;
577- ms_fScriptMaxTrainPlaneLODDistance = fTrainsPlanesLODDistance ;
578- ms_bMaxVehicleLODDistanceFromScript = bFromScript;
579- }
580- else
581- {
582- ms_fClientMaxVehicleLODDistance = fVehiclesLODDistance ;
583- ms_fClientMaxTrainPlaneLODDistance = fTrainsPlanesLODDistance ;
584- }
585-
586- if (ms_bMaxVehicleLODDistanceFromScript)
587- {
588- ms_fVehicleLODDistance = Min (ms_fClientMaxVehicleLODDistance, ms_fScriptMaxVehicleLODDistance);
589- ms_fTrainPlaneLODDistance = Min (ms_fClientMaxTrainPlaneLODDistance, ms_fScriptMaxTrainPlaneLODDistance);
590- }
591- else
592- {
593- ms_fVehicleLODDistance = Min (fVehiclesLODDistance , ms_fClientMaxVehicleLODDistance);
594- ms_fTrainPlaneLODDistance = Min (fTrainsPlanesLODDistance , ms_fClientMaxTrainPlaneLODDistance);
595- }
570+ ms_fVehicleLODDistance = fVehiclesLODDistance ;
571+ ms_fTrainPlaneLODDistance = fTrainsPlanesLODDistance ;
572+ ms_bMaxVehicleLODDistanceFromScript = bFromScript;
596573}
597574
598- void CSettingsSA::ResetVehiclesLODDistance (bool bFromScript )
575+ void CSettingsSA::ResetVehiclesLODDistance (bool bForceDefault )
599576{
600- if (!bFromScript)
601- {
602- bool bHighDetailVehicles;
603- g_pCore->GetCVars ()->Get (" high_detail_vehicles" , bHighDetailVehicles);
577+ if (ms_bMaxVehicleLODDistanceFromScript && !bForceDefault)
578+ return ;
604579
605- if (bHighDetailVehicles)
606- {
607- ms_fClientMaxVehicleLODDistance = MAX_VEHICLE_LOD_DISTANCE;
608- ms_fClientMaxTrainPlaneLODDistance = MAX_VEHICLE_LOD_DISTANCE;
609- }
610- else
611- {
612- ms_fClientMaxVehicleLODDistance = DEFAULT_VEHICLE_LOD_DISTANCE;
613- ms_fClientMaxTrainPlaneLODDistance = DEFAULT_VEHICLE_LOD_DISTANCE * TRAIN_LOD_DISTANCE_MULTIPLIER;
614- }
580+ bool bHighDetailVehicles;
581+ g_pCore->GetCVars ()->Get (" high_detail_vehicles" , bHighDetailVehicles);
615582
616- // Script still wants to override client setting, let's make sure we use latest max
617- if (ms_bMaxVehicleLODDistanceFromScript)
618- {
619- ms_fVehicleLODDistance = Min (ms_fClientMaxVehicleLODDistance, ms_fScriptMaxVehicleLODDistance);
620- ms_fTrainPlaneLODDistance = Min (ms_fClientMaxTrainPlaneLODDistance, ms_fScriptMaxTrainPlaneLODDistance);
621- return ;
622- }
583+ if (bHighDetailVehicles)
584+ {
585+ ms_fVehicleLODDistance = MAX_VEHICLE_LOD_DISTANCE;
586+ ms_fTrainPlaneLODDistance = MAX_VEHICLE_LOD_DISTANCE;
587+ }
588+ else
589+ {
590+ ms_fVehicleLODDistance = DEFAULT_VEHICLE_LOD_DISTANCE;
591+ ms_fTrainPlaneLODDistance = DEFAULT_VEHICLE_LOD_DISTANCE * TRAIN_LOD_DISTANCE_MULTIPLIER;
623592 }
624593
625594 ms_bMaxVehicleLODDistanceFromScript = false ;
626- ms_fVehicleLODDistance = ms_fClientMaxVehicleLODDistance;
627- ms_fTrainPlaneLODDistance = ms_fClientMaxTrainPlaneLODDistance;
628- }
629-
630- void CSettingsSA::ResetVehiclesLODDistanceFromScript ()
631- {
632- ms_bMaxVehicleLODDistanceFromScript = false ;
633- ResetVehiclesLODDistance (false );
634595}
635596
636597void CSettingsSA::GetVehiclesLODDistance (float & fVehiclesLODDistance , float & fTrainsPlanesLODDistance )
@@ -644,54 +605,28 @@ void CSettingsSA::GetVehiclesLODDistance(float& fVehiclesLODDistance, float& fTr
644605// Peds LOD draw distance
645606//
646607// //////////////////////////////////////////////
647- float ms_fClientMaxPedsLODDistance = DEFAULT_PEDS_LOD_DISTANCE;
648- float ms_fScriptMaxPedsLODDistance = ms_fClientMaxPedsLODDistance;
649608bool ms_bMaxPedsLODDistanceFromScript = false ;
650609
651610void CSettingsSA::SetPedsLODDistance (float fPedsLODDistance , bool bFromScript)
652611{
653- if (bFromScript)
654- {
655- ms_fScriptMaxPedsLODDistance = fPedsLODDistance ;
656- ms_bMaxPedsLODDistanceFromScript = bFromScript;
657- }
658- else
659- ms_fClientMaxPedsLODDistance = fPedsLODDistance ;
660-
661- if (ms_bMaxPedsLODDistanceFromScript)
662- ms_fPedsLODDistance = Min (ms_fClientMaxPedsLODDistance, ms_fScriptMaxPedsLODDistance);
663- else
664- ms_fPedsLODDistance = Min (fPedsLODDistance , ms_fClientMaxPedsLODDistance);
612+ ms_fPedsLODDistance = fPedsLODDistance ;
613+ ms_bMaxPedsLODDistanceFromScript = bFromScript;
665614}
666615
667- void CSettingsSA::ResetPedsLODDistance (bool bFromScript )
616+ void CSettingsSA::ResetPedsLODDistance (bool bForceDefault )
668617{
669- if (!bFromScript)
670- {
671- bool bHighDetailPeds;
672- g_pCore->GetCVars ()->Get (" high_detail_peds" , bHighDetailPeds);
673-
674- if (bHighDetailPeds)
675- ms_fClientMaxPedsLODDistance = MAX_PEDS_LOD_DISTANCE;
676- else
677- ms_fClientMaxPedsLODDistance = DEFAULT_PEDS_LOD_DISTANCE;
618+ if (ms_bMaxPedsLODDistanceFromScript && !bForceDefault)
619+ return ;
678620
679- // Script still wants to override client setting, let's make sure we use latest max
680- if (ms_bMaxPedsLODDistanceFromScript)
681- {
682- ms_fPedsLODDistance = Min (ms_fClientMaxPedsLODDistance, ms_fScriptMaxPedsLODDistance);
683- return ;
684- }
685- }
621+ bool bHighDetailPeds;
622+ g_pCore->GetCVars ()->Get (" high_detail_peds" , bHighDetailPeds);
686623
687- ms_bMaxPedsLODDistanceFromScript = false ;
688- ms_fPedsLODDistance = ms_fClientMaxPedsLODDistance;
689- }
624+ if (bHighDetailPeds)
625+ ms_fPedsLODDistance = MAX_PEDS_LOD_DISTANCE;
626+ else
627+ ms_fPedsLODDistance = DEFAULT_PEDS_LOD_DISTANCE;
690628
691- void CSettingsSA::ResetPedsLODDistanceFromScript ()
692- {
693629 ms_bMaxPedsLODDistanceFromScript = false ;
694- ResetPedsLODDistance (false );
695630}
696631
697632float CSettingsSA::GetPedsLODDistance ()
0 commit comments