DEADSOFTWARE

turned on "SCOPEDENUMS" fpc option
[d2df-sdl.git] / src / game / g_menu.pas
index 93666fa87f3f4f4a9da3c5fe71a195b871af8533..04f7331c5a00394ea29382d57da64604c4b7dbb4 100644 (file)
@@ -47,7 +47,8 @@ uses
   e_log, SysUtils, CONFIG, g_playermodel, DateUtils,
   MAPDEF, wadreader, Math, g_saveload,
   e_texture, GL, GLExt, g_language,
-  g_net, g_netmsg, g_netmaster, g_items, e_input;
+  g_net, g_netmsg, g_netmaster, g_items, e_input,
+  utils;
 
 
 type TYNCallback = procedure (yes:Boolean);
@@ -551,7 +552,7 @@ begin
     Map := TGUILabel(GetControl('lbMap')).Text;
     if Map = '' then
       Exit;
-    if Pos(':\', Map) = 0 then
+    if not isWadPath(Map) then
       Exit;
 
     GameMode := TGUISwitch(GetControl('swGameMode')).ItemIndex+1;
@@ -611,7 +612,7 @@ begin
     Map := TGUILabel(GetControl('lbMap')).Text;
     if Map = '' then
       Exit;
-    if Pos(':\', Map) = 0 then
+    if not isWadPath(Map) then
       Exit;
 
     GameMode := TGUISwitch(GetControl('swGameMode')).ItemIndex+1;
@@ -973,7 +974,7 @@ end;
 
 procedure MenuLoadData();
 begin
-  e_WriteLog('Loading menu data...', MSG_NOTIFY);
+  e_WriteLog('Loading menu data...', TMsgType.Notify);
 
   g_Texture_CreateWADEx('MAINMENU_MARKER1', GameWAD+':TEXTURES\MARKER1');
   g_Texture_CreateWADEx('MAINMENU_MARKER2', GameWAD+':TEXTURES\MARKER2');
@@ -1099,19 +1100,28 @@ end;
 procedure ProcLoadMenu();
 var
   a: Integer;
+  valid: Boolean;
 begin
   for a := 1 to 8 do
-    TGUIEdit(TGUIMenu(g_GUI_GetWindow('LoadMenu').GetControl('mmLoadMenu')).GetControl('edSlot'+IntToStr(a))).Text :=
-    g_GetSaveName(a);
+  begin
+    TGUIEdit(TGUIMenu(g_GUI_GetWindow('LoadMenu').GetControl('mmLoadMenu')).GetControl('edSlot'+IntToStr(a))).Text := g_GetSaveName(a, valid);
+    TGUIEdit(TGUIMenu(g_GUI_GetWindow('LoadMenu').GetControl('mmLoadMenu')).GetControl('edSlot'+IntToStr(a))).Invalid := not valid;
+    TGUIMenu(g_GUI_GetWindow('LoadMenu').GetControl('mmLoadMenu')).GetControl('edSlot'+IntToStr(a)).Enabled := valid;
+  end;
 end;
 
 procedure ProcSaveMenu();
 var
   a: Integer;
+  valid: Boolean;
+  name: AnsiString;
 begin
   for a := 1 to 8 do
-    TGUIEdit(TGUIMenu(g_GUI_GetWindow('SaveMenu').GetControl('mmSaveMenu')).GetControl('edSlot'+IntToStr(a))).Text :=
-    g_GetSaveName(a);
+  begin
+    name := g_GetSaveName(a, valid);
+    TGUIEdit(TGUIMenu(g_GUI_GetWindow('SaveMenu').GetControl('mmSaveMenu')).GetControl('edSlot'+IntToStr(a))).Text := name;
+    TGUIEdit(TGUIMenu(g_GUI_GetWindow('SaveMenu').GetControl('mmSaveMenu')).GetControl('edSlot'+IntToStr(a))).Invalid := (name <> '') and (not valid);
+  end;
 end;
 
 procedure ProcSaveGame(Sender: TGUIControl);
@@ -1290,7 +1300,9 @@ var
 begin
   if g_ActiveWindow.Name = 'OptionsPlayersP1Menu' then s := 'P1' else s := 'P2';
   with TGUIModelView(g_ActiveWindow.GetControl('mv'+s+'Model')).Model do
-    if Direction = D_LEFT then Direction := D_RIGHT else Direction := D_LEFT;
+  begin
+    if Direction = TDirection.D_LEFT then Direction := TDirection.D_RIGHT else Direction := TDirection.D_LEFT;
+  end;
 end;
 
 procedure ProcDefaultMenuKeyDown (yes: Boolean);
@@ -1327,8 +1339,8 @@ var
 begin
   Enabled := True;
   if (gGameSettings.GameType = GT_SINGLE) and
-     ((gPlayer1 = nil) or (not gPlayer1.Live)) and
-     ((gPlayer2 = nil) or (not gPlayer2.Live)) then
+     ((gPlayer1 = nil) or (not gPlayer1.alive)) and
+     ((gPlayer2 = nil) or (not gPlayer2.alive)) then
     Enabled := False; // Îäèí èç èãðîêîâ ïîãèá â ñèíãëå
   if not gGameOn then
     Enabled := False; // Çàïðåòèòü ñîõðàíåíèå â èíòåðìèññèè (íå ðåàëèçîâàíî)
@@ -3187,7 +3199,7 @@ procedure g_Menu_Free();
 begin
   g_GUI_Destroy();
 
-  e_WriteLog('Releasing menu data...', MSG_NOTIFY);
+  e_WriteLog('Releasing menu data...', TMsgType.Notify);
 
   MenuFreeData();
 end;
@@ -3201,7 +3213,7 @@ begin
 
   if ex then
   begin
-    e_WriteLog('Recreating menu...', MSG_NOTIFY);
+    e_WriteLog('Recreating menu...', TMsgType.Notify);
 
     CreateAllMenus();