bugWarmux - Bugs: bug #15888, With enough speed, the grapples...

Show feedback again

You are not allowed to post comments on this tracker with your current authentification level.

bug #15888: With enough speed, the grapples rope can pass small parts of the terrain.

Submitted by:  Robert Clausecker <fuzxxl>
Submitted on:  Fri 16 Apr 2010 08:45:16 PM UTC  
Category: WeaponSeverity: 3 - Normal
Priority: 5 - NormalStatus: None
Assigned to: NoneOpen/Closed: Open
Release: 0.9.2

Tue 19 Apr 2011 03:22:11 PM UTC, comment #5:

What's the status on this? I'm tented to not close it but set its status to "wontfix".

Kurosu <kurosu>
Project Administrator
Fri 27 Aug 2010 06:54:27 AM UTC, comment #4:

Hmm, sorry, I did a cosmetics commit yesterday on this code, as I hadn't seen this comment; I hope I didn't screw some ongoing work.

You mean setting PHYS_DELTA_T to 0.01?

The trouble I see is that we are just emulating the check we actually want: done at least every n pixels on the trajectory of the object.

What I intended is more something like what is found in ai_idea.cpp (the code there uses float because it can):

do {
pos = trajectory.GetPositionAt(time);
float pixel_per_second = trajectory.GetSpeedAt(time);
float seconds_per_pixel = 1 / pixel_per_second;
time += STEP_IN_PIXEL*seconds_per_pixel;
} while(IsPositionEmpty(character_to_ignore, pos, object));

It's a bit inexact (we assume linear motion during that time), but this should be good enough).

Kurosu <kurosu>
Project Administrator
Wed 25 Aug 2010 05:15:56 PM UTC, comment #3:

I don't see it would generate multiple collisions or so on.

In my mind, we should at least give a try. As far as I remember, physic engine run at 100Hz, we can try doubling this value. It will probably take a little bit more computation...

Matthieu Fertré <gentildemon>
Project Administrator
Wed 25 Aug 2010 06:59:27 AM UTC, comment #2:

The code is in Physics::RunPhysicalEngine()

It might be possible to compute a delta_t value depending on speed and max possible distance between checks, not sure. If done unconditionally, it might however trigger bugs in other parts of the code (such as multiple collisions detected and so on).

Kurosu <kurosu>
Project Administrator
Wed 25 Aug 2010 06:51:02 AM UTC, comment #1:

We unfortunately test collisions only at steps in the physical engine, and this engine has steps in time: if an object goes very fast, it's doing large steps in space. Probably not easily fixable.

Kurosu <kurosu>
Project Administrator
Fri 16 Apr 2010 08:45:16 PM UTC, original submission:

If you have a small part of the terrain isolated, maybe 20x20px, you can grapple through it - the rope will pass the terrain and reappers at the other side of it, as nothing has happen.

This seems to be reproduceable for me, it would be great to have a fix before releasing 0.9.2.

Robert Clausecker <fuzxxl>
Project Member


No files currently attached


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -unavailable- added by gentildemon (Posted a comment)
  • -unavailable- added by kurosu (Posted a comment)
  • -unavailable- added by fuzxxl (Submitted the item)

    Error: not logged in



    No Changes Have Been Made to This Item
    Show feedback again

    Back to the top

    Powered by Savane 3.1-cleanup