// プレイを中断し、中断用データをセーブする private void DumpCommand() { // プレイを中断するか確認 var suspendRes = GUI.Confirm("プレイを中断しますか?", "中断", GuiConfirmOption.OkCancel | GuiConfirmOption.Question); if (suspendRes != GuiDialogResult.Ok) { return; } // 中断データをセーブするファイル名を決定 var fname = Path.GetFileNameWithoutExtension(SRC.ScenarioFileName) + "を中断.srcq"; // XXX Streamを取った結果ファイル目が消え失せてしまった using (var saveStream = GUI.SelectSaveStream(SRCSaveKind.Suspend, fname)) { if (saveStream == null) { // キャンセル return; } // マウスカーソルを砂時計に GUI.ChangeStatus(GuiStatus.WaitCursor); GUI.LockGUI(); // 中断データをセーブ SRC.DumpData(saveStream, SRCSaveKind.Suspend); } // マウスカーソルを元に戻す GUI.ChangeStatus(GuiStatus.Default); GUI.MainFormHide(); // ゲームを終了 SRC.ExitGame(); }