New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tumbler triggers assert (false) near end of collision() #21

Closed
SimonN opened this Issue Jan 4, 2016 · 3 comments

Comments

Projects
None yet
1 participant
@SimonN
Owner

SimonN commented Jan 4, 2016

Version 0.1.26.
Unknown circumstances, this bug is elusive right now. It should be investigated once replays can be loaded from disk.

Effect of the bug: The assert in lix.skill.tumbler is triggered:

final Collision collision()
{
    [...]
    // No collisions found at this pixel.
    if (isSolid(0, 1))
        assert (false, "copy more from tumbler.cpp:213, v2015-09-02.");

@SimonN SimonN added the 3-bug label Jan 4, 2016

@SimonN

This comment has been minimized.

Show comment
Hide comment
@SimonN

SimonN Jan 5, 2016

Owner

Possibly related issue in C++ Lix:
Landing on square block from below

Can't replay this right now in D Lix, because D Lix doesn't play back replay files yet.

Owner

SimonN commented Jan 5, 2016

Possibly related issue in C++ Lix:
Landing on square block from below

Can't replay this right now in D Lix, because D Lix doesn't play back replay files yet.

@SimonN

This comment has been minimized.

Show comment
Hide comment
@SimonN

SimonN Jan 5, 2016

Owner

Reproduced the crash in D Lix, with lots of cubing and fling-exploding:

core.exception.AssertError@src/lix/skill/tumbler.d(214):
copy more from tumbler.cpp:213, v2015-09-02. BallisticFlyer speedX=0, speedY=-17

Another repro in 0.1.30:

src/lix/skill/tumbler.d:214:
copy more from tumbler.cpp:213, v2015-09-02. BallisticFlyer speedX=12, speedY=-8

So far, all assert hits have been with speedY << 0. Probably closely missing an edge, see post above this one for the C++ bug.

Owner

SimonN commented Jan 5, 2016

Reproduced the crash in D Lix, with lots of cubing and fling-exploding:

core.exception.AssertError@src/lix/skill/tumbler.d(214):
copy more from tumbler.cpp:213, v2015-09-02. BallisticFlyer speedX=0, speedY=-17

Another repro in 0.1.30:

src/lix/skill/tumbler.d:214:
copy more from tumbler.cpp:213, v2015-09-02. BallisticFlyer speedX=12, speedY=-8

So far, all assert hits have been with speedY << 0. Probably closely missing an edge, see post above this one for the C++ bug.

SimonN added a commit that referenced this issue Jan 18, 2016

tumbler assert removed, continue flying
This removes the assert in issue #21.
Instead of asserting, we should look out for Nepster's
bug of flying upwards past a rectangle. This bug is linked
from issue #21.
@SimonN

This comment has been minimized.

Show comment
Hide comment
@SimonN

SimonN Jan 18, 2016

Owner

When (every lix who hit the assert) was flying upwards, and the assert triggered upon floor existing, that floor probably isn't interesting for the lix. I'll close this for now. Create a new issue in case a concrete problem comes up.

Owner

SimonN commented Jan 18, 2016

When (every lix who hit the assert) was flying upwards, and the assert triggered upon floor existing, that floor probably isn't interesting for the lix. I'll close this for now. Create a new issue in case a concrete problem comes up.

@SimonN SimonN closed this Jan 18, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment