| 1908 | } |
| 1909 | |
| 1910 | static void ParseLua(const Save::SaveGame* s, bool hubMode) |
| 1911 | { |
| 1912 | // Global level data |
| 1913 | |
| 1914 | auto* level = (Level*)g_GameFlow->GetLevel(CurrentLevel); |
| 1915 | |
| 1916 | Random::SetSeed(s->level_data()->random_seed()); |
| 1917 | |
| 1918 | level->LevelFarView = s->level_data()->level_far_view(); |
| 1919 | |
| 1920 | level->Fog.MaxDistance = s->level_data()->fog_max_distance(); |
| 1921 | level->Fog.MinDistance = s->level_data()->fog_min_distance(); |
| 1922 | level->Fog.SetColor(s->level_data()->fog_color()); |
| 1923 | |
| 1924 | level->Layer1.Enabled = s->level_data()->sky_layer_1_enabled(); |
| 1925 | level->Layer1.CloudSpeed = s->level_data()->sky_layer_1_speed(); |
| 1926 | level->Layer1.SetColor(s->level_data()->sky_layer_1_color()); |
| 1927 | |
| 1928 | level->Layer2.Enabled = s->level_data()->sky_layer_2_enabled(); |
| 1929 | level->Layer2.CloudSpeed = s->level_data()->sky_layer_2_speed(); |
| 1930 | level->Layer2.SetColor(s->level_data()->sky_layer_2_color()); |
| 1931 | |
| 1932 | level->LensFlare.SetEnabled(s->level_data()->lensflare_enabled()); |
| 1933 | level->LensFlare.SetSunSpriteID(s->level_data()->lensflare_sprite_id()); |
| 1934 | level->LensFlare.SetPitch(s->level_data()->lensflare_pitch()); |
| 1935 | level->LensFlare.SetYaw(s->level_data()->lensflare_yaw()); |
| 1936 | level->LensFlare.SetColor(s->level_data()->lensflare_color()); |
| 1937 | |
| 1938 | level->Starfield.SetStarCount(s->level_data()->starfield_star_count()); |
| 1939 | level->Starfield.SetMeteorCount(s->level_data()->starfield_meteor_count()); |
| 1940 | level->Starfield.SetMeteorSpawnDensity(s->level_data()->starfield_meteor_spawn_density()); |
| 1941 | level->Starfield.SetMeteorVelocity(s->level_data()->starfield_meteor_velocity()); |
| 1942 | |
| 1943 | level->Horizon1.SetEnabled(s->level_data()->horizon1_enabled()); |
| 1944 | level->Horizon1.SetObjectID((GAME_OBJECT_ID)s->level_data()->horizon1_object_id()); |
| 1945 | level->Horizon1.SetPosition(ToVector3(s->level_data()->horizon1_position()), true); |
| 1946 | level->Horizon1.SetRotation(ToEulerAngles(s->level_data()->horizon1_orientation()), true); |
| 1947 | level->Horizon1.SetTransparency(s->level_data()->horizon1_transparency()); |
| 1948 | |
| 1949 | level->Horizon2.SetEnabled(s->level_data()->horizon2_enabled()); |
| 1950 | level->Horizon2.SetObjectID((GAME_OBJECT_ID)s->level_data()->horizon2_object_id()); |
| 1951 | level->Horizon2.SetPosition(ToVector3(s->level_data()->horizon2_position()), true); |
| 1952 | level->Horizon2.SetRotation(ToEulerAngles(s->level_data()->horizon2_orientation()), true); |
| 1953 | level->Horizon2.SetTransparency(s->level_data()->horizon2_transparency()); |
| 1954 | |
| 1955 | level->Storm = s->level_data()->storm_enabled(); |
| 1956 | level->Rumble = s->level_data()->rumble_enabled(); |
| 1957 | level->Weather = (WeatherType)s->level_data()->weather_type(); |
| 1958 | level->WeatherStrength = s->level_data()->weather_strength(); |
| 1959 | level->WeatherClustering = s->level_data()->weather_clustering(); |
| 1960 | |
| 1961 | // Event sets |
| 1962 | |
| 1963 | if (g_Level.VolumeEventSets.size() == s->volume_event_sets()->size()) |
| 1964 | { |
| 1965 | for (int i = 0; i < s->volume_event_sets()->size(); ++i) |
| 1966 | { |
| 1967 | auto setSaved = s->volume_event_sets()->Get(i); |
no test coverage detected