diff --git a/celldrawer.cpp b/celldrawer.cpp index fa45617f..aa0d5b82 100644 --- a/celldrawer.cpp +++ b/celldrawer.cpp @@ -2510,7 +2510,7 @@ void celldrawer::draw_item_full() { } if(it) { - if((c->land == laWhirlwind || c->item == itBabyTortoise || c->land == laWestWall) && c->wall != waBoat) { + if(c->wall != waBoat) { double footphase = 0; applyAnimation(c, Vboat, footphase, LAYER_BOAT); } diff --git a/items.cpp b/items.cpp index d446aa4d..bb0eb82d 100644 --- a/items.cpp +++ b/items.cpp @@ -40,6 +40,7 @@ EX bool doPickupItemsWithMagnetism(cell *c) { changes.ccell(c3); changes.ccell(c4); moveItem(c3, c4, false); + animateMovement(match(c3, c4), LAYER_BOAT); moveEffect(movei(c4, c4, NODIR), moDeadBird); markOrb(itCurseRepulsion); } diff --git a/orbs.cpp b/orbs.cpp index 47e91672..5b58b630 100644 --- a/orbs.cpp +++ b/orbs.cpp @@ -822,7 +822,13 @@ void telekinesis(cell *dest) { } moveItem(dest, cwt.at, true); + eItem it = cwt.at->item; collectItem(cwt.at, cwt.at, true); + if(cwt.at->item == it) + animateMovement(match(dest, cwt.at), LAYER_BOAT); + else + animate_item_throw(dest, cwt.at, it); + useupOrb(itOrbSpace, cost.first); if(cost.second) markOrb(itOrbMagnetism);