- getsect(llp->unit.land.lnd_x, llp->unit.land.lnd_y, &osect);
- oldown = osect.sct_own;
- newx = xnorm(llp->unit.land.lnd_x + dx);
- newy = ynorm(llp->unit.land.lnd_y + dy);
- getsect(newx, newy, §);
- rel = relations_with(sect.sct_own, actor);
- stuck = lnd_check_mar(&llp->unit.land, §);
- if (stuck != LND_STUCK_NOT
- || (sect.sct_own && rel != ALLIED
- && !(lchr[llp->unit.land.lnd_type].l_flags & L_SPY))) {
- if (stuck == LND_STUCK_NO_RAIL
- && (!sect.sct_own || rel == ALLIED)) {
- if (together && !move) {
- mpr(actor, "no rail system in %s\n",
- xyas(newx, newy, actor));
- return 1;
- } else {
- sprintf(dp, "has no rail system in %s",
- xyas(newx, newy, actor));
- lnd_stays(actor, dp, llp);
- continue;
- }
- } else {
- if (together && !move) {
- mpr(actor, "can't go to %s\n", xyas(newx, newy, actor));
- return 1;
- } else {
- sprintf(dp, "can't go to %s", xyas(newx, newy, actor));
- lnd_stays(actor, dp, llp);
- continue;
- }
- }
- }
- /* Note we check would_abandon first because we don't want
- to always have to do these checks */
- if (would_abandon(&osect, I_CIVIL, 0, &llp->unit.land)) {
- stop = 0;
- if (!want_to_abandon(&osect, I_CIVIL, 0, &llp->unit.land)) {
- stop = 1;
- }
- /* now check stuff */
- if (!check_sect_ok(§))
- return 1;
- if (!check_sect_ok(&osect))
- return 1;
- for (qp2 = list->q_back; qp2 != list; qp2 = qp2->q_back) {
- if (!check_land_ok(&((struct ulist *)qp2)->unit.land))
- return 1;
- }
- if (stop) {
- lnd_stays(actor, "stops", llp);
- continue;
- }
+ if (rel != ALLIED
+ && !(lchr[llp->unit.land.lnd_type].l_flags & L_SPY)) {
+ mpr(actor, "%s can't go to %s & stays in %s\n",
+ prland(&llp->unit.land), xyas(newx, newy, actor),
+ xyas(llp->unit.land.lnd_x, llp->unit.land.lnd_y, actor));
+ lnd_mar_put_one(llp);
+ continue;