Extract ExitMapEditor in IngameMenuLogic
This commit is contained in:
committed by
Matthias Mailänder
parent
5cc59ae3ac
commit
0e5ed6a30c
@@ -484,29 +484,29 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
var actionManager = world.WorldActor.Trait<EditorActionManager>();
|
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
|
void ExitEditor(EditorActionManager actionManager, Action onSuccess)
|
||||||
button.OnClick = () =>
|
{
|
||||||
|
var map = modData.MapCache.GetUpdatedMap(world.Map.Uid);
|
||||||
|
var deletedOrUnavailable = map == null || modData.MapCache[map].Status != MapStatus.Available;
|
||||||
|
if (actionManager.HasUnsavedItems() || deletedOrUnavailable)
|
||||||
{
|
{
|
||||||
var map = modData.MapCache.GetUpdatedMap(world.Map.Uid);
|
hideMenu = true;
|
||||||
var deletedOrUnavailable = map == null || modData.MapCache[map].Status != MapStatus.Available;
|
ConfirmationDialogs.ButtonPrompt(modData,
|
||||||
if (actionManager.HasUnsavedItems() || deletedOrUnavailable)
|
title: ExitMapEditorTitle,
|
||||||
{
|
text: deletedOrUnavailable ? ExitMapEditorPromptDeleted : ExitMapEditorPromptUnsaved,
|
||||||
hideMenu = true;
|
confirmText: deletedOrUnavailable ? ExitMapEditorAnywayConfirm : ExitMapEditorConfirm,
|
||||||
ConfirmationDialogs.ButtonPrompt(modData,
|
onConfirm: () => { onSuccess(); leaving = true; },
|
||||||
title: ExitMapEditorTitle,
|
onCancel: ShowMenu);
|
||||||
text: deletedOrUnavailable ? ExitMapEditorPromptDeleted : ExitMapEditorPromptUnsaved,
|
}
|
||||||
confirmText: deletedOrUnavailable ? ExitMapEditorAnywayConfirm : ExitMapEditorConfirm,
|
else
|
||||||
onConfirm: () => { OnQuit(world); leaving = true; },
|
{
|
||||||
onCancel: ShowMenu);
|
onSuccess();
|
||||||
}
|
leaving = true;
|
||||||
else
|
}
|
||||||
{
|
|
||||||
OnQuit(world);
|
|
||||||
leaving = true;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user