DEADSOFTWARE

particles: water cosmetix
authorKetmar Dark <ketmar@ketmar.no-ip.org>
Sat, 2 Sep 2017 20:20:30 +0000 (23:20 +0300)
committerKetmar Dark <ketmar@ketmar.no-ip.org>
Sat, 2 Sep 2017 20:20:43 +0000 (23:20 +0300)
src/game/g_gfx.pas

index 593613e79e07c3f636746a793f63606c3761d859..47c638c8e3bf79d92738398d24e1719f936549c7 100644 (file)
@@ -857,20 +857,18 @@ begin
       // check for level bounds
       if (x < g_Map_MinX) or (y < g_Map_MinY) or (x > g_Map_MaxX) or (y > g_Map_MaxY) then continue;
 
-      // in what environment we are starting in?
-      pan := g_Map_PanelAtPoint(x, y, (GridTagObstacle or GridTagLiquid));
-      if (pan <> nil) then
+      // this hack will allow water spawned in water to fly out
+      // it can happen when player fell from a huge height (see "DOOM2D.WAD:\MAP03", for example)
+      if (fVelY >= 0) then
       begin
-        // either in a wall, or in a liquid
-        //if ((pan.tag and GridTagObstacle) <> 0) then continue; // don't spawn in walls
-        //env := TEnvType.ELiquid;
-        //continue;
-        env := TEnvType.EAir;
+        // in what environment we are starting in?
+        pan := g_Map_PanelAtPoint(x, y, (GridTagObstacle or GridTagLiquid));
       end
       else
       begin
-        env := TEnvType.EAir;
+        pan := g_Map_PanelAtPoint(x, y, GridTagObstacle);
       end;
+      env := TEnvType.EAir;
 
       // color
       case color of