DEADSOFTWARE

shells: fix shell reset on map start
authorDeaDDooMER <deaddoomer@deadsoftware.ru>
Thu, 16 Feb 2023 18:51:54 +0000 (21:51 +0300)
committerDeaDDooMER <deaddoomer@deadsoftware.ru>
Fri, 9 Jun 2023 09:14:38 +0000 (12:14 +0300)
src/game/g_game.pas
src/game/g_netmsg.pas
src/game/g_saveload.pas
src/game/g_shells.pas

index 3ad4510cf54159ab67d54f1f09bd721ebbdd5af0..d1bab9081efc7424221d32070ebd02bfbe8e3626 100644 (file)
@@ -1484,7 +1484,7 @@ begin
   {$IFDEF ENABLE_GIBS}
     g_Gibs_RemoveAll;
   {$ENDIF}
-  {$IFDEF ENALBE_SHELLS}
+  {$IFDEF ENABLE_SHELLS}
     g_Shells_RemoveAll;
   {$ENDIF}
   {$IFDEF ENABLE_CORPSES}
@@ -3439,7 +3439,7 @@ begin
   {$IFDEF ENABLE_GIBS}
     g_Gibs_RemoveAll;
   {$ENDIF}
-  {$IFDEF ENALBE_SHELLS}
+  {$IFDEF ENABLE_SHELLS}
     g_Shells_RemoveAll;
   {$ENDIF}
   {$IFDEF ENABLE_CORPSES}
@@ -3778,7 +3778,7 @@ begin
   {$IFDEF ENABLE_GIBS}
     g_Gibs_RemoveAll;
   {$ENDIF}
-  {$IFDEF ENALBE_SHELLS}
+  {$IFDEF ENABLE_SHELLS}
     g_Shells_RemoveAll;
   {$ENDIF}
   {$IFDEF ENABLE_CORPSES}
index 2652bc504353f4e057043d14897383c45be50a0b..bd2bb6ff6eb8b4c8db401598976a942c3300f078 100644 (file)
@@ -2141,7 +2141,7 @@ begin
       {$IFDEF ENABLE_GIBS}
         g_Gibs_RemoveAll;
       {$ENDIF}
-      {$IFDEF ENALBE_SHELLS}
+      {$IFDEF ENABLE_SHELLS}
         g_Shells_RemoveAll;
       {$ENDIF}
       {$IFDEF ENABLE_CORPSES}
index f17f34db93aba9e62c40da03e29e808f98fd7029..5bf8974ae6aca186ffcc7e71f4bf078c7f1443ba 100644 (file)
@@ -42,6 +42,9 @@ uses
   {$IFDEF ENABLE_CORPSES}
     g_corpses,
   {$ENDIF}
+  {$IFDEF ENABLE_SHELLS}
+    g_shells,
+  {$ENDIF}
   MAPDEF, utils, xstreams,
   g_game, g_items, g_map, g_monsters, g_triggers,
   g_basic, Math, wadreader,
@@ -206,7 +209,7 @@ begin
   {$IFDEF ENABLE_GIBS}
     g_Gibs_RemoveAll;
   {$ENDIF}
-  {$IFDEF ENALBE_SHELLS}
+  {$IFDEF ENABLE_SHELLS}
     g_Shells_RemoveAll; // ???
   {$ENDIF}
   {$IFDEF ENABLE_CORPSES}
index 6e2e61e8f20fb689ce6daeccb7de7f5b38f16e2f..99864d94b148b56cf93e6bc1c643ff9217b002e2 100644 (file)
@@ -135,9 +135,9 @@ implementation
   procedure g_Shells_RemoveAll;
     var i: Integer;
   begin
-    i := g_Shells_GetMax();
-    g_Shells_SetMax(0);
-    g_Shells_SetMax(i);
+    if gShells <> nil then
+      for i := 0 to High(gShells) do
+        gShells[i].alive := false;
   end;
 
   procedure g_Shells_SoundBounce(X, Y: Integer; T: Byte);