supertux icon indicating copy to clipboard operation
supertux copied to clipboard

Fix granito bugs

Open MatusGuy opened this issue 1 year ago • 11 comments

closes #2796

TODO:

  • [x] Tux cannot unduck in front of Granito
  • [x] Rock Rolling and Granito don't mix (gets force pushed out of Granito hitbox)
  • [x] Tux falls off Granito when going up (and maybe down?) a slope
  • [x] Granito becomes a conveyor belt
  • [x] Granito set to type "Standing" when pushed by bomb explosion never resets speed (might be better to not have them be push-able at all)
  • [x] Big Tux jittering on Granito while standing on them
  • [x] Granito can walks/falls through bricks+heavy bricks+rocks
  • [x] Sitting Granito waves at player and remains standing afterwards (should not wave at all when sitting)

MatusGuy avatar Feb 22 '24 23:02 MatusGuy

This feels forgotten about. What was the status on this?

Rusty-Box avatar Apr 13 '24 19:04 Rusty-Box

Just so we don't forget to fix this bug - Granito can walk through bricks+heavy bricks which is not good. They also walk/fall through rocks.

Rusty-Box avatar May 15 '24 19:05 Rusty-Box

Plays walking animation when landing/staying on a slope

Can't reproduce this one for whatever reason

Rock Rolling and Granito don't mix (gets force pushed out of Granito hitbox)

This one is really hard to pinpoint. Seems to be an object unisolid hitbox issue. I've been using giant granito to test this. Things to note:

  • collision is not called in GiantGranito. Can't confirm if it is in Player (but it probably isn't)
  • The rock rolling is implemented in a very strange way. When an enemy hits the top of the hitbox while rolling it slowly sinks down until just randomly dying. I don't see anywhere in the code where it says "if rock and going at high speed then kill enemy"
  • Despite the collision event not being called, CollisionSystem::collision_static/CollisionSystem::collision_static_constraints and CollisionSystem::collision_object both change tux's position in some way.

MatusGuy avatar Aug 10 '24 09:08 MatusGuy

Big Tux jittering on Granito while standing on them

Very inconsistent bug. Feels like a floating point error.

MatusGuy avatar Aug 10 '24 09:08 MatusGuy

  • The rock rolling is implemented in a very strange way. When an enemy hits the top of the hitbox while rolling it slowly sinks down until just randomly dying. I don't see anywhere in the code where it says "if rock and going at high speed then kill enemy"

Could this be the line you are looking for? https://github.com/SuperTux/supertux/blob/0928a4fe915337755f2dc6738d091d0f585d3d9e/src/object/player.cpp#L850 The flag for „rock rolling“ is m_stone.

Brockengespenst avatar Aug 10 '24 12:08 Brockengespenst

Could this be the line you are looking for?

In theory this only kills enemies from below. I'll try playing around with that.

The flag for „rock rolling“ is m_stone.

I know that.

MatusGuy avatar Aug 10 '24 12:08 MatusGuy

Big Tux jittering on Granito while standing on them

According to my tests this has been magically fixed in this PR?

MatusGuy avatar Aug 10 '24 19:08 MatusGuy