From a64f33fe4309e19566c92249a824f40ada6e53bd Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Sat, 25 Apr 2026 11:52:25 +0200 Subject: [PATCH] =?UTF-8?q?feat(player):=20no=20pinta=20el=20s=C3=B2l=20me?= =?UTF-8?q?ntre=20est=C3=A0=20en=20l'aire;=20aterratge=20s=C3=AD=20pinta?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/game/entities/player.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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;