This is an automated email from the git hooks/post-receive script.

odyx pushed a commit to branch upstream/latest
in repository colobot.

commit cf7be276dcfac10891422773cee79da9a5e09d6c
Author: krzys-h <krzy...@interia.pl>
Date:   Mon Oct 20 20:44:57 2014 +0200

    Possibly fixed goto() by changing safety margin
    
    TODO: More testing
    
    Closes #326
---
 src/object/task/taskgoto.cpp | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/object/task/taskgoto.cpp b/src/object/task/taskgoto.cpp
index 2ddb92e..46629e0 100644
--- a/src/object/task/taskgoto.cpp
+++ b/src/object/task/taskgoto.cpp
@@ -37,7 +37,12 @@
 
 const float FLY_DIST_GROUND = 80.0f;    // minimum distance to remain on the 
ground
 const float FLY_DEF_HEIGHT  = 50.0f;    // default flying height
-const float BM_DIM_STEP     = 5.0f;
+
+// Settings that define goto() accuracy:
+const float BM_DIM_STEP     = 5.0f;     // Size of one pixel on the bitmap. 
Setting 5 means that 5x5 square (in game units) will be represented by 1 px on 
the bitmap. Decreasing this value will make a bigger bitmap, and may increase 
accuracy. TODO: Check how it actually impacts goto() accuracy
+const float BEAM_ACCURACY   = 5.0f;    // higher value = more accurate, but 
slower
+const float SAFETY_MARGIN   = 0.5f;     // Smallest distance between two 
objects. Smaller = less "no route to destination", but higher probability of 
collisions between objects.
+// Changing SAFETY_MARGIN (old value was 4.0f) seems to have fixed many issues 
with goto(). TODO: maybe we could make it even smaller? Did changing it 
introduce any new bugs?
 
 
 
@@ -1739,7 +1744,7 @@ Error CTaskGoto::BeamSearch(const Math::Vector &start, 
const Math::Vector &goal,
     m_bmStep ++;
 
     len = Math::DistanceProjected(start, goal);
-    step = len/5.0f;
+    step = len/BEAM_ACCURACY;
     if ( step < BM_DIM_STEP*2.1f )  step = BM_DIM_STEP*2.1f;
     if ( step > 20.0f            )  step = 20.0f;
     nbIter = 200;  // in order not to lower the framerate
@@ -1969,7 +1974,7 @@ void CTaskGoto::BitmapObject()
             }
 
             if ( type == OBJECT_PARA )  oRadius -= 2.0f;
-            BitmapSetCircle(oPos, oRadius+iRadius+4.0f);
+            BitmapSetCircle(oPos, oRadius+iRadius+SAFETY_MARGIN);
         }
     }
 }

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-games/colobot.git

_______________________________________________
Pkg-games-commits mailing list
Pkg-games-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

Reply via email to