diff --git a/complex.cpp b/complex.cpp index 09ee91a0..2a9c943e 100644 --- a/complex.cpp +++ b/complex.cpp @@ -1385,9 +1385,9 @@ EX namespace mirror { continue; } c->monst = moMimic; - moveMonster(c2, c, m.second.spin); + moveMonster(m.second); c2->monst = moNone; - empathyMove(c, c2, neighborId(c2, c)); + empathyMove(m.second); m.second = cw2; } } diff --git a/game.cpp b/game.cpp index a5e540f7..244909b6 100644 --- a/game.cpp +++ b/game.cpp @@ -5852,7 +5852,7 @@ EX void movegolems(flagtype flags) { if(m == moFriendlyGhost) c2->stuntime = 1; } - empathyMove(c, c2, dir); + empathyMove(mi); } DEBB(DF_TURN, ("other")); } diff --git a/locations.cpp b/locations.cpp index 4f1354c4..655c14b4 100644 --- a/locations.cpp +++ b/locations.cpp @@ -460,6 +460,7 @@ struct movei { else t = s->move(d); } movei(cell *_s, cell *_t, int _d) : s(_s), t(_t), d(_d) {} + movei(cellwalker cw) : s(cw.at), t(cw.cpeek()), d(cw.spin) {} movei rev() const { return movei(t, s, rev_dir_or(d)); } int dir_or(int x) const { return proper() ? d : x; } int rev_dir_or(int x) const { return proper() ? s->c.spin(d) : x; } diff --git a/orbs.cpp b/orbs.cpp index 9843739d..5595b9c7 100644 --- a/orbs.cpp +++ b/orbs.cpp @@ -49,10 +49,6 @@ EX void drainOrb(eItem it, int target IS(0)) { if(items[it] > target) useupOrb(it, items[it] - target); } -EX void empathyMove(cell *c, cell *cto, int dir) { - empathyMove(movei(c, cto, dir)); // to erase - } - EX void empathyMove(const movei& mi) { if(!items[itOrbEmpathy]) return;