Extract ExitMapEditor in IngameMenuLogic

This commit is contained in:
Gustas
2022-09-09 16:12:06 +03:00
committed by Matthias Mailänder
parent 5cc59ae3ac
commit 0e5ed6a30c

View File

@@ -484,10 +484,11 @@ namespace OpenRA.Mods.Common.Widgets.Logic
return;
var actionManager = world.WorldActor.Trait<EditorActionManager>();
var button = AddButton("EXIT_EDITOR", ExitMapButton);
AddButton("EXIT_EDITOR", ExitMapButton)
.OnClick = () => ExitEditor(actionManager, () => OnQuit(world));
}
// Show dialog only if updated since last save
button.OnClick = () =>
void ExitEditor(EditorActionManager actionManager, Action onSuccess)
{
var map = modData.MapCache.GetUpdatedMap(world.Map.Uid);
var deletedOrUnavailable = map == null || modData.MapCache[map].Status != MapStatus.Available;
@@ -498,15 +499,14 @@ namespace OpenRA.Mods.Common.Widgets.Logic
title: ExitMapEditorTitle,
text: deletedOrUnavailable ? ExitMapEditorPromptDeleted : ExitMapEditorPromptUnsaved,
confirmText: deletedOrUnavailable ? ExitMapEditorAnywayConfirm : ExitMapEditorConfirm,
onConfirm: () => { OnQuit(world); leaving = true; },
onConfirm: () => { onSuccess(); leaving = true; },
onCancel: ShowMenu);
}
else
{
OnQuit(world);
onSuccess();
leaving = true;
}
};
}
}
}