Author: jsalmon3
Date: 2007-07-17 18:24:34 +0200 (Tue, 17 Jul 2007)
New Revision: 2749

Modified:
   branches/pingus_sdl/src/worldobjs/liquid.cpp
Log:
Fixed Liquid::on_startup so it correctly marks the collision masks, gives a big 
performance boost at startup too

Modified: branches/pingus_sdl/src/worldobjs/liquid.cpp
===================================================================
--- branches/pingus_sdl/src/worldobjs/liquid.cpp        2007-07-17 14:02:11 UTC 
(rev 2748)
+++ branches/pingus_sdl/src/worldobjs/liquid.cpp        2007-07-17 16:24:34 UTC 
(rev 2749)
@@ -60,11 +60,19 @@
 {
   CollisionMask mask = Resource::load_collision_mask("liquids/water");
 
-  for(int i=0; i < width; ++i)
-    world->put(mask,
-               static_cast<int>(pos.x + i),
-               static_cast<int>(pos.y),
-               Groundtype::GP_WATER);
+  for (int x = static_cast<int>(pos.x);
+      x < pos.x + width;
+      x += sur.get_width())
+    {
+      for (int i = 0; i < sur.get_frame_count(); ++i)
+        {
+          sur.set_frame(i);
+          world->get_colmap()->put(mask,
+                     static_cast<int>(pos.x + x),
+                     static_cast<int>(pos.y),
+                     Groundtype::GP_WATER);
+        }
+    }
 }
 
 void



_______________________________________________
pingus-cvs mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/pingus-cvs

Reply via email to