- Write(sink ? W_SINK : W_EXPLODE, sp, 0, 2, 0, 0, 0);
- Write(W_SHIPDIR, sp, 0, 0, 0, 0, 0);
- if (fouled(sp) || grappled(sp)) {
- for (k = 0; k < NSHIP; k++) {
- if (sp->file->fouls[k].turnfoul)
- cleanfoul(sp,
- sp->file->fouls[k].toship, k);
- }
- for (k = 0; k < NSHIP; k++) {
- if (sp->file->grapples[k].turnfoul)
- cleangrapple(sp,
- sp->file->grapples[k].toship,
- k);
- }
- }
+ if (die() < 5)
+ continue;
+ Write(sink == 1 ? W_SINK : W_EXPLODE, sp, 0, 2, 0, 0, 0);
+ Write(W_DIR, sp, 0, 0, 0, 0, 0);
+ if (snagged(sp))
+ foreachship(sq)
+ cleansnag(sp, sq, 1);