newqad(false);
/* Adjust finish time to time of tractor beaming */
fintim = game.state.date+game.optime;
- attack(0);
+ attack(false);
if (game.state.remcom <= 0) unschedule(FTBEAM);
else schedule(FTBEAM, game.optime+expran(1.5*game.intime/game.state.remcom));
break;
if (i > game.state.remcom || game.state.rembase == 0 ||
!game.state.galaxy[game.battle.x][game.battle.y].starbase) {
/* No action to take after all */
- game.battle.x = game.battle.y = 0;
+ invalidate(game.battle);
break;
}
}
game.battle = hold;
game.isatb = 0;
}
- else {
- game.battle.x = game.battle.y = 0;
- }
+ else
+ invalidate(game.battle);
break;
case FSCMOVE: /* Supercommander moves */
schedule(FSCMOVE, 0.2777);
if (rtime < temp) temp = rtime;
game.optime = temp;
}
- if (game.optime < delay) attack(0);
+ if (game.optime < delay) attack(false);
if (game.alldone) return;
events();
game.ididit = true;
crmena(true, IHP, sector, scratch);
prout(_(" destroyed."));
DESTROY(&game.state.plnets[game.iplnet]);
- game.iplnet = game.plnet.x = game.plnet.y = 0;
+ game.iplnet = 0;
+ invalidate(game.plnet);
if (game.landed) {
finish(FPNOVA);
return;
break;
game.state.baseq[i] = game.state.baseq[game.state.rembase];
game.state.rembase--;
- game.base.x = game.base.y = 0;
+ invalidate(game.base);
game.state.basekl++;
newcnd();
crmena(true, IHB, sector, scratch);
game.optime = 10.0*game.dist/16.0;
skip(1);
prout(_("Force of nova displaces starship."));
- game.iattak=2; /* Eliminates recursion problem */
- imove();
+ imove(true);
game.optime = 10.0*game.dist/16.0;
return;
}
for (l = 1; l <= maxloop; l++) {
if (same(game.state.kcmdr[l], nq)) {
game.state.kcmdr[l] = game.state.kcmdr[game.state.remcom];
- game.state.kcmdr[game.state.remcom].x = game.state.kcmdr[game.state.remcom].y = 0;
+ invalidate(game.state.kcmdr[game.state.remcom]);
game.state.remcom--;
kldead--;
if (game.state.remcom==0) unschedule(FTBEAM);
for (loop = 1; loop <= maxloop; loop++)
if (same(game.state.baseq[loop], nq)) {
game.state.baseq[loop] = game.state.baseq[game.state.rembase];
- game.state.baseq[game.state.rembase].x = game.state.baseq[game.state.rembase].y = 0;
+ invalidate(game.state.baseq[game.state.rembase]);
game.state.rembase--;
break;
}