diff --git a/src/player_modifiers.c b/src/player_modifiers.c index e6f49a1..66e3c4e 100644 --- a/src/player_modifiers.c +++ b/src/player_modifiers.c @@ -27,10 +27,19 @@ void player_mod_glue(Player *player, uint8_t sides) { player->vars.acceleration = 1; player->vars.friction = 1; } - if (sides & (D_LEFT | D_RIGHT | D_CEIL)) { + if (sides & D_CEIL) { player->spd.y = 0; player->vars.gravity = 0; player->vars.friction *= 2; + /* jump to drop of the ceiling */ + player->vars.jump_spd = 1; + player->grace = 1; + } + if (sides & (D_LEFT | D_RIGHT)) { + player->spd.y = 0; + player->vars.gravity = 0; + /* wall jump */ + player->grace = UPS / 5; } }