DEADSOFTWARE

Game: Use proper syntax of sets for game options instead of raw bitwise operations
[d2df-sdl.git] / src / game / g_saveload.pas
index 9ab49931944e1b9e8a2051d68083ba1699a8642e..2d91494b1e50b13806bb4c193b319b0ed7e7c2af 100644 (file)
@@ -194,7 +194,7 @@ begin
       // Ëèìèò âðåìåíè
       utils.writeInt(st, Word(gGameSettings.TimeLimit));
       // Ëèìèò î÷êîâ
-      utils.writeInt(st, Word(gGameSettings.GoalLimit));
+      utils.writeInt(st, Word(gGameSettings.ScoreLimit));
       // Ëèìèò æèçíåé
       utils.writeInt(st, Byte(gGameSettings.MaxLives));
       // Èãðîâûå îïöèè
@@ -291,7 +291,7 @@ var
   WAD_Path, Map_Name: AnsiString;
   nPlayers: Integer;
   Game_Type, Game_Mode, Game_MaxLives: Byte;
-  Game_TimeLimit, Game_GoalLimit: Word;
+  Game_TimeLimit, Game_ScoreLimit: Word;
   Game_Time, Game_Options: Cardinal;
   Game_CoopMonstersKilled,
   Game_CoopSecretsFound,
@@ -353,7 +353,7 @@ begin
         // Ëèìèò âðåìåíè
         Game_TimeLimit := utils.readWord(st);
         // Ëèìèò î÷êîâ
-        Game_GoalLimit := utils.readWord(st);
+        Game_ScoreLimit := utils.readWord(st);
         // Ëèìèò æèçíåé
         Game_MaxLives := utils.readByte(st);
         // Èãðîâûå îïöèè
@@ -375,30 +375,17 @@ begin
         ///// /////
 
         // Çàãðóæàåì êàðòó:
-        ZeroMemory(@gGameSettings, sizeof(TGameSettings));
+        gGameSettings := Default(TGameSettings);
         gAimLine := false;
         gShowMap := false;
-        if (Game_Type = GT_NONE) or (Game_Type = GT_SINGLE) then
-        begin
-          // Íàñòðîéêè èãðû
-          gGameSettings.GameType := GT_SINGLE;
-          gGameSettings.MaxLives := 0;
-          gGameSettings.Options := gGameSettings.Options+GAME_OPTION_ALLOWEXIT;
-          gGameSettings.Options := gGameSettings.Options+GAME_OPTION_MONSTERS;
-          gGameSettings.Options := gGameSettings.Options+GAME_OPTION_BOTVSMONSTER;
-          gSwitchGameMode := GM_SINGLE;
-        end
-        else
-        begin
-          // Íàñòðîéêè èãðû
-          gGameSettings.GameType := GT_CUSTOM;
-          gGameSettings.GameMode := Game_Mode;
-          gSwitchGameMode := Game_Mode;
-          gGameSettings.TimeLimit := Game_TimeLimit;
-          gGameSettings.GoalLimit := Game_GoalLimit;
-          gGameSettings.MaxLives := IfThen(Game_Mode = GM_CTF, 0, Game_MaxLives);
-          gGameSettings.Options := Game_Options;
-        end;
+        // Íàñòðîéêè èãðû
+        gGameSettings.GameType := Game_Type;
+        gGameSettings.GameMode := Game_Mode;
+        gGameSettings.TimeLimit := Game_TimeLimit;
+        gGameSettings.ScoreLimit := Game_ScoreLimit;
+        gGameSettings.MaxLives := Game_MaxLives;
+        gGameSettings.Options := TGameOptions(Game_Options);
+        gSwitchGameMode := Game_Mode;
         g_Game_ExecuteEvent('ongamestart');
 
         // Óñòàíîâêà ðàçìåðîâ îêîí èãðîêîâ