DEADSOFTWARE

Menu: Add map reopen feature
authorbinarymaster <x86corez@gmail.com>
Sat, 30 Sep 2017 17:05:27 +0000 (20:05 +0300)
committerbinarymaster <x86corez@gmail.com>
Sat, 30 Sep 2017 17:05:27 +0000 (20:05 +0300)
http://doom2d.org/forum/viewtopic.php?f=12&t=1947

src/editor/f_main.lfm
src/editor/f_main.pas
src/editor/g_language.pas

index b44cafc7a41de878f9a1a423e825db884f29ab33..344fefb0dac03850713cd2f0183a1e359ac9738e 100644 (file)
@@ -1944,6 +1944,12 @@ object MainForm: TMainForm
       object miLine1: TMenuItem
         Caption = '-'
       end
+      object miReopenMap: TMenuItem
+        Caption = 'Открыть заново'
+        ImageIndex = 1
+        ShortCut = 116
+        OnClick = miReopenMapClick
+      end
       object miSaveMiniMap: TMenuItem
         Caption = 'Сохранить мини-карту'
         Bitmap.Data = {
index 292bcdafb9e7f3faf9e276b0e03ab08803bd2901..82bd18dec1de2ee47bb2044fb12b491f2c8e6527 100644 (file)
@@ -26,6 +26,7 @@ type
     miSaveMapAs: TMenuItem;
     miOpenWadMap: TMenuItem;
     miLine1: TMenuItem;
+    miReopenMap: TMenuItem;
     miSaveMiniMap: TMenuItem;
     miDeleteMap: TMenuItem;
     miPackMap: TMenuItem;
@@ -210,6 +211,7 @@ type
     procedure lbTextureListClick(Sender: TObject);
     procedure lbTextureListDrawItem(Control: TWinControl; Index: Integer;
       ARect: TRect; State: TOwnerDrawState);
+    procedure miReopenMapClick(Sender: TObject);
     procedure RenderPanelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
     procedure RenderPanelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
     procedure RenderPanelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
@@ -385,7 +387,7 @@ const
   SELECTFLAG_SHOTPANEL  = 7;
   SELECTFLAG_SELECTED   = 8;
 
-  RECENT_FILES_MENU_START = 11;
+  RECENT_FILES_MENU_START = 12;
 
   CLIPBOARD_SIG         = 'DF:ED';
 
@@ -4549,6 +4551,21 @@ begin
   end;
 end;
 
+procedure TMainForm.miReopenMapClick(Sender: TObject);
+var
+  FileName, Resource: String;
+begin
+  if OpenedMap = '' then
+    Exit;
+
+  if MessageBox(0, PChar(_lc[I_MSG_REOPEN_MAP_PROMT]),
+  PChar(_lc[I_MENU_FILE_REOPEN]), MB_ICONQUESTION or MB_YESNO) <> idYes then
+    Exit;
+
+  g_ProcessResourceStr(OpenedMap, @FileName, nil, @Resource);
+  OpenMap(FileName, Resource);
+end;
+
 procedure TMainForm.vleObjectPropertyGetPickList(Sender: TObject;
   const KeyName: String; Values: TStrings);
 begin
index af9b436f867e3f518dc1b11cb250120fe8374bf8..e1f7638b11d531df0f5009927a7941c0df16b977 100644 (file)
@@ -312,6 +312,7 @@ Type
     I_MSG_DELETE_MAP_PROMT,
     I_MSG_MAP_DELETED,
     I_MSG_MAP_DELETED_PROMT,
+    I_MSG_REOPEN_MAP_PROMT,
     I_MSG_EXEC_ERROR,
     I_MSG_SOUND_ERROR,
     I_MSG_WAD_ERROR,
@@ -337,6 +338,7 @@ Type
     I_MENU_FILE_SAVE,
     I_MENU_FILE_SAVE_AS,
     I_MENU_FILE_OPEN_WAD,
+    I_MENU_FILE_REOPEN,
     I_MENU_FILE_SAVE_MINI,
     I_MENU_FILE_DELETE,
     I_MENU_FILE_PACK_MAP,
@@ -1237,6 +1239,8 @@ Const
                                        'Карта удалена'),
     ('MSG MAP DELETED PROMT',          'Map "%s" is deleted',
                                        'Карта "%s" удалена'),
+    ('MSG REOPEN MAP PROMT',           'Reopen this map?',
+                                       'Загрузить карту заново?'),
     ('MSG EXEC ERROR',                 'Game start error',
                                        'Ошибка запуска игры'),
     ('MSG SOUND ERROR',                'Can''t play sound',
@@ -1285,6 +1289,8 @@ Const
                                        'Сохранить карту как...'),
     ('MENU FILE OPEN WAD',             'Select Map',
                                        'Выбрать карту'),
+    ('MENU FILE REOPEN',               'Reopen Map',
+                                       'Открыть заново'),
     ('MENU FILE SAVE MINI',            'Save Mini-map',
                                        'Сохранить мини-карту'),
     ('MENU FILE DELETE',               'Delete Map from WAD...',
@@ -2025,6 +2031,7 @@ begin
     miSaveMap.Caption := _lc[I_MENU_FILE_SAVE];
     miSaveMapAs.Caption := _lc[I_MENU_FILE_SAVE_AS];
     miOpenWadMap.Caption := _lc[I_MENU_FILE_OPEN_WAD];
+    miReopenMap.Caption := _lc[I_MENU_FILE_REOPEN];
     miSaveMiniMap.Caption := _lc[I_MENU_FILE_SAVE_MINI];
     miDeleteMap.Caption := _lc[I_MENU_FILE_DELETE];
     miPackMap.Caption := _lc[I_MENU_FILE_PACK_MAP];