@@ -5428,16 +5428,14 @@ void CClientGame::ResetMapInfo()
54285428
54295429 m_bHudAreaNameDisabled = false ;
54305430
5431- // Gravity
5432- g_pMultiplayer->SetLocalPlayerGravity (DEFAULT_GRAVITY);
5433- g_pMultiplayer->SetGlobalGravity (DEFAULT_GRAVITY);
5434- g_pGame->SetGravity (DEFAULT_GRAVITY);
5435-
5436- // Gamespeed
5437- SetGameSpeed (DEFAULT_GAME_SPEED);
5438-
5439- // Game minute duration
5440- SetMinuteDuration (DEFAULT_MINUTE_DURATION);
5431+ // Reset world special properties, world properties, weather properties etc
5432+ ResetWorldPropsInfo desc;
5433+ desc.resetSpecialProperties = true ;
5434+ desc.resetWorldProperties = true ;
5435+ desc.resetWeatherProperties = true ;
5436+ desc.resetLODs = true ;
5437+ desc.resetSounds = true ;
5438+ ResetWorldProperties (desc);
54415439
54425440 // Wanted-level
54435441 SetWanted (0 );
@@ -5448,124 +5446,23 @@ void CClientGame::ResetMapInfo()
54485446 // Weather
54495447 m_pBlendedWeather->SetWeather (0 );
54505448
5451- // Rain
5452- g_pGame->GetWeather ()->ResetAmountOfRain ();
5453-
5454- // Wind
5455- g_pMultiplayer->RestoreWindVelocity ();
5456-
5457- // Far clip distance
5458- g_pMultiplayer->RestoreFarClipDistance ();
5459-
5460- // Near clip distance
5461- g_pMultiplayer->RestoreNearClipDistance ();
5462-
5463- // Fog distance
5464- g_pMultiplayer->RestoreFogDistance ();
5465-
5466- // Vehicles LOD distance
5467- g_pGame->GetSettings ()->ResetVehiclesLODDistance (true );
5468-
5469- // Peds LOD distance
5470- g_pGame->GetSettings ()->ResetPedsLODDistance (true );
5471-
5472- // Blur
5473- g_pGame->GetSettings ()->SetBlurControlledByScript (false );
5474- g_pGame->GetSettings ()->ResetBlurEnabled ();
5475-
5476- // Corona rain reflections
5477- g_pGame->GetSettings ()->SetCoronaReflectionsControlledByScript (false );
5478- g_pGame->GetSettings ()->ResetCoronaReflectionsEnabled ();
5479-
5480- // Sun color
5481- g_pMultiplayer->ResetSunColor ();
5482-
5483- // Sun size
5484- g_pMultiplayer->ResetSunSize ();
5485-
5486- // Sky-gradient
5487- g_pMultiplayer->ResetSky ();
5488-
5489- // Heat haze
5490- g_pMultiplayer->ResetHeatHaze ();
5491-
5492- // Water-colour
5493- g_pMultiplayer->ResetWater ();
5494- g_pMultiplayer->ResetColorFilter ();
5495-
54965449 // Grain effect
54975450 g_pMultiplayer->SetGrainMultiplier (eGrainMultiplierType::ALL, 1 .0f );
54985451 g_pMultiplayer->SetGrainLevel (0 );
54995452
5500- // Water
5501- GetManager ()->GetWaterManager ()->ResetWorldWaterLevel ();
5502-
5503- // Re-enable interior sounds and furniture
5504- g_pMultiplayer->SetInteriorSoundsEnabled (true );
5505- for (int i = 0 ; i <= 4 ; ++i)
5506- g_pMultiplayer->SetInteriorFurnitureEnabled (i, true );
5507-
5508- // Clouds
5509- g_pMultiplayer->SetCloudsEnabled (true );
5510- g_pClientGame->SetCloudsEnabled (true );
5511-
5512- // Birds
5513- g_pMultiplayer->DisableBirds (false );
5514- g_pClientGame->SetBirdsEnabled (true );
5515-
5516- // Ambient sounds
5517- g_pGame->GetAudioEngine ()->ResetAmbientSounds ();
5518-
5519- // World sounds
5520- g_pGame->GetAudioEngine ()->ResetWorldSounds ();
5521-
55225453 // Cheats
55235454 g_pGame->ResetCheats ();
55245455
55255456 // Players
55265457 m_pPlayerManager->ResetAll ();
55275458
5528- // Jetpack max height
5529- g_pGame->GetWorld ()->SetJetpackMaxHeight (DEFAULT_JETPACK_MAXHEIGHT);
5530-
5531- // Aircraft max height
5532- g_pGame->GetWorld ()->SetAircraftMaxHeight (DEFAULT_AIRCRAFT_MAXHEIGHT);
5533-
5534- // Aircraft max velocity
5535- g_pGame->GetWorld ()->SetAircraftMaxVelocity (DEFAULT_AIRCRAFT_MAXVELOCITY);
5536-
5537- // Moon size
5538- g_pMultiplayer->ResetMoonSize ();
5539-
5540- // World properties
5541- g_pMultiplayer->ResetAmbientColor ();
5542- g_pMultiplayer->ResetAmbientObjectColor ();
5543- g_pMultiplayer->ResetDirectionalColor ();
5544- g_pMultiplayer->ResetSpriteSize ();
5545- g_pMultiplayer->ResetSpriteBrightness ();
5546- g_pMultiplayer->ResetPoleShadowStrength ();
5547- g_pMultiplayer->ResetShadowStrength ();
5548- g_pMultiplayer->ResetShadowsOffset ();
5549- g_pMultiplayer->ResetLightsOnGroundBrightness ();
5550- g_pMultiplayer->ResetLowCloudsColor ();
5551- g_pMultiplayer->ResetBottomCloudsColor ();
5552- g_pMultiplayer->ResetCloudsAlpha1 ();
5553- g_pMultiplayer->ResetIllumination ();
5554- g_pGame->GetWeather ()->ResetWetRoads ();
5555- g_pGame->GetWeather ()->ResetFoggyness ();
5556- g_pGame->GetWeather ()->ResetFog ();
5557- g_pGame->GetWeather ()->ResetRainFog ();
5558- g_pGame->GetWeather ()->ResetWaterFog ();
5559- g_pGame->GetWeather ()->ResetSandstorm ();
5560- g_pGame->GetWeather ()->ResetRainbow ();
5459+ // Reset Frozen Time
5460+ g_pGame->GetClock ()->ResetTimeFrozen ();
55615461 g_pGame->GetSettings ()->ResetVolumetricShadows ();
55625462
55635463 // Disable the change of any player stats
55645464 g_pMultiplayer->SetLocalStatsStatic (true );
55655465
5566- // Reset Frozen Time
5567- g_pGame->GetClock ()->ResetTimeFrozen ();
5568-
55695466 // Close all garages
55705467 CGarage* pGarage = NULL ;
55715468 CGarages* pGarages = g_pCore->GetGame ()->GetGarages ();
@@ -6853,6 +6750,145 @@ void CClientGame::ReinitMarkers()
68536750 g_pGame->Get3DMarkers ()->ReinitMarkers ();
68546751}
68556752
6753+ void CClientGame::ResetWorldProperties (const ResetWorldPropsInfo& resetPropsInfo)
6754+ {
6755+ // Reset all setWorldSpecialPropertyEnabled to default
6756+ if (resetPropsInfo.resetSpecialProperties )
6757+ {
6758+ g_pGame->SetCheatEnabled (" hovercars" , false );
6759+ g_pGame->SetCheatEnabled (" aircars" , false );
6760+ g_pGame->SetCheatEnabled (" extrabunny" , false );
6761+ g_pGame->SetCheatEnabled (" extrajump" , false );
6762+
6763+ g_pGame->SetRandomFoliageEnabled (true );
6764+ g_pGame->SetMoonEasterEggEnabled (false );
6765+ g_pGame->SetExtraAirResistanceEnabled (true );
6766+ g_pGame->SetUnderWorldWarpEnabled (true );
6767+ g_pGame->SetVehicleSunGlareEnabled (false );
6768+ g_pGame->SetCoronaZTestEnabled (true );
6769+ g_pGame->SetWaterCreaturesEnabled (true );
6770+ g_pGame->SetBurnFlippedCarsEnabled (true );
6771+ g_pGame->SetFireballDestructEnabled (true );
6772+ g_pGame->SetRoadSignsTextEnabled (true );
6773+ g_pGame->SetExtendedWaterCannonsEnabled (true );
6774+ g_pGame->SetTunnelWeatherBlendEnabled (true );
6775+ }
6776+
6777+ // Reset all setWorldProperty to default
6778+ if (resetPropsInfo.resetWorldProperties )
6779+ {
6780+ g_pMultiplayer->ResetAmbientColor ();
6781+ g_pMultiplayer->ResetAmbientObjectColor ();
6782+ g_pMultiplayer->ResetDirectionalColor ();
6783+ g_pMultiplayer->ResetSpriteSize ();
6784+ g_pMultiplayer->ResetSpriteBrightness ();
6785+ g_pMultiplayer->ResetPoleShadowStrength ();
6786+ g_pMultiplayer->ResetShadowStrength ();
6787+ g_pMultiplayer->ResetShadowsOffset ();
6788+ g_pMultiplayer->ResetLightsOnGroundBrightness ();
6789+ g_pMultiplayer->ResetLowCloudsColor ();
6790+ g_pMultiplayer->ResetBottomCloudsColor ();
6791+ g_pMultiplayer->ResetCloudsAlpha1 ();
6792+ g_pMultiplayer->ResetIllumination ();
6793+
6794+ CWeather* weather = g_pGame->GetWeather ();
6795+ weather->ResetWetRoads ();
6796+ weather->ResetFoggyness ();
6797+ weather->ResetFog ();
6798+ weather->ResetRainFog ();
6799+ weather->ResetWaterFog ();
6800+ weather->ResetSandstorm ();
6801+ weather->ResetRainbow ();
6802+ }
6803+
6804+ // Reset all weather stuff like heat haze, wind velocity etc
6805+ if (resetPropsInfo.resetWeatherProperties )
6806+ {
6807+ g_pMultiplayer->ResetHeatHaze ();
6808+ g_pMultiplayer->RestoreFogDistance ();
6809+ g_pMultiplayer->ResetMoonSize ();
6810+ g_pMultiplayer->ResetSky ();
6811+ g_pMultiplayer->ResetSunColor ();
6812+ g_pMultiplayer->ResetSunSize ();
6813+ g_pMultiplayer->RestoreWindVelocity ();
6814+ g_pMultiplayer->ResetColorFilter ();
6815+
6816+ g_pGame->GetWeather ()->ResetAmountOfRain ();
6817+ }
6818+
6819+ // Reset LODs
6820+ if (resetPropsInfo.resetLODs )
6821+ {
6822+ g_pGame->GetSettings ()->ResetVehiclesLODDistance (true );
6823+ g_pGame->GetSettings ()->ResetPedsLODDistance (true );
6824+ }
6825+
6826+ // Reset & restore sounds
6827+ if (resetPropsInfo.resetSounds )
6828+ {
6829+ g_pMultiplayer->SetInteriorSoundsEnabled (true );
6830+ g_pGame->GetAudioEngine ()->ResetAmbientSounds ();
6831+ g_pGame->GetAudioEngine ()->ResetWorldSounds ();
6832+ }
6833+
6834+ // Reset all other world stuff
6835+ // Reset clip distances
6836+ g_pMultiplayer->RestoreFarClipDistance ();
6837+ g_pMultiplayer->RestoreNearClipDistance ();
6838+
6839+ // Reset clouds
6840+ g_pMultiplayer->SetCloudsEnabled (true );
6841+ SetCloudsEnabled (true );
6842+
6843+ // Reset birds
6844+ g_pMultiplayer->DisableBirds (false );
6845+ SetBirdsEnabled (true );
6846+
6847+ // Reset occlusions
6848+ g_pGame->GetWorld ()->SetOcclusionsEnabled (true );
6849+
6850+ // Reset gravity
6851+ g_pMultiplayer->SetGlobalGravity (DEFAULT_GRAVITY);
6852+ g_pCore->GetMultiplayer ()->SetLocalPlayerGravity (DEFAULT_GRAVITY);
6853+ g_pGame->SetGravity (DEFAULT_GRAVITY);
6854+
6855+ // Reset game speed
6856+ g_pGame->SetGameSpeed (DEFAULT_GAME_SPEED);
6857+
6858+ // Reset aircraft max velocity & height
6859+ g_pMultiplayer->SetAircraftMaxHeight (DEFAULT_AIRCRAFT_MAXHEIGHT);
6860+ g_pMultiplayer->SetAircraftMaxVelocity (DEFAULT_AIRCRAFT_MAXVELOCITY);
6861+
6862+ // Reset jetpack max height
6863+ g_pGame->GetWorld ()->SetJetpackMaxHeight (DEFAULT_JETPACK_MAXHEIGHT);
6864+
6865+ // Restore furnitures in the interiors
6866+ for (std::uint8_t i = 0 ; i <= 4 ; ++i)
6867+ g_pMultiplayer->SetInteriorFurnitureEnabled (i, true );
6868+
6869+ // Reset minute duration
6870+ SetMinuteDuration (DEFAULT_MINUTE_DURATION);
6871+
6872+ // Reset blur level
6873+ g_pGame->GetSettings ()->SetBlurControlledByScript (false );
6874+ g_pGame->GetSettings ()->ResetBlurEnabled ();
6875+
6876+ // Reset corona reflections
6877+ g_pGame->GetSettings ()->SetCoronaReflectionsControlledByScript (false );
6878+ g_pGame->GetSettings ()->ResetCoronaReflectionsEnabled ();
6879+
6880+ // Reset traffic lights
6881+ g_pMultiplayer->SetTrafficLightsLocked (false );
6882+
6883+ // Reset water color, water level & wave height
6884+ g_pMultiplayer->ResetWater ();
6885+ GetManager ()->GetWaterManager ()->ResetWorldWaterLevel ();
6886+ GetManager ()->GetWaterManager ()->SetWaveLevel (0 .0f );
6887+
6888+ // Reset volumetric shadows
6889+ g_pGame->GetSettings ()->ResetVolumetricShadows ();
6890+ }
6891+
68566892void CClientGame::OnWindowFocusChange (bool state)
68576893{
68586894 if (state == m_bFocused)
0 commit comments