diff --git a/TagTool/Commands/Porting/PortMultiplayerScenarioCommand.cs b/TagTool/Commands/Porting/PortMultiplayerScenarioCommand.cs index 8d99b6a0..0e0f6db6 100644 --- a/TagTool/Commands/Porting/PortMultiplayerScenarioCommand.cs +++ b/TagTool/Commands/Porting/PortMultiplayerScenarioCommand.cs @@ -249,7 +249,10 @@ int ParseConversionFlags(List args, out MultiplayerScenarioConversionFla if (arg.Length > 1) { not = arg[0] == '!'; - flagName = arg.Substring(1); + if (not) + flagName = arg.Substring(1); + else + flagName = arg; } @@ -475,9 +478,6 @@ public void Convert(Stream destStream, GameCacheHaloOnlineBase destCache, Stream if (conversionFlags.HasFlag(MultiplayerScenarioConversionFlags.SpawnPoint)) AddRespawnPoint(scnr, 0, spawnPoint, new RealEulerAngles3d()); - // add the prematch camera - AddPrematchCamera(scnr, spawnPoint + new RealPoint3d(0, 0, 0.62f), new RealEulerAngles3d()); - // add generic player starting profile AddPlayerStartingProfile(scnr); @@ -524,17 +524,6 @@ void GenerateMapFile(Stream cacheStream, GameCache cache, CachedTag scenarioTag, } } - private void AddPrematchCamera(Scenario scnr, RealPoint3d position, RealEulerAngles3d rotation) - { - scnr.CutsceneCameraPoints.Add(new CutsceneCameraPoint() - { - Position = position, - Orientation = rotation, - Flags = CutsceneCameraPointFlags.PrematchCameraHack, - Name = "prematch_camera", - }); - } - private void AddRespawnPoint(Scenario scnr, int bspIndex, RealPoint3d position, RealEulerAngles3d rotation) { var instance = new SceneryInstance(); @@ -707,7 +696,12 @@ public void Convert() Scenario.Scripts?.Clear(); Scenario.Globals?.Clear(); Scenario.CutsceneFlags?.Clear(); - Scenario.CutsceneCameraPoints?.Clear(); + for(int i = Scenario.CutsceneCameraPoints.Count - 1; i >= 0; i--) + { + var cameraPoint = Scenario.CutsceneCameraPoints[i]; + if(cameraPoint.Name!= "prematch_camera" && cameraPoint.Name != "podium_camera") + Scenario.CutsceneCameraPoints.RemoveAt(i); + } Scenario.Cinematics?.Clear(); Scenario.CinematicLighting?.Clear(); Scenario.CutsceneTitles?.Clear();