diff --git a/source/game/entities/player.cpp b/source/game/entities/player.cpp index d59b377..9ec9243 100644 --- a/source/game/entities/player.cpp +++ b/source/game/entities/player.cpp @@ -583,7 +583,13 @@ void Player::applyMovement(float delta_time) { // contra una paret. Si el tile ha canviat, publiquem `on_tile_entered` // al bus amb l'índex de pintat d'aquest jugador; el PaintLayer filtra // pintabilitat i re-publica `tile_painted` als sarcòfags. - if (bus_ != nullptr) { + // + // En AIRBORNE NO publiquem cap pintat — el jugador està en l'aire i + // no està trepitjant cap tile. NI tampoc actualitzem `last_tile_*`, + // perquè volem que el tile d'aterratge (que es comprova al + // LANDING_STUN) compari contra l'últim tile real (el del despegue) i + // s'emeti com a entrada nova si han canviat. + if (bus_ != nullptr && state_ == State::GROUNDED) { const auto [COL, ROW] = getCurrentTile(); if (COL != last_tile_col_ || ROW != last_tile_row_) { last_tile_col_ = COL;