diff options
| author | dholland <dholland@NetBSD.org> | 2009-03-15 00:50:47 +0000 |
|---|---|---|
| committer | dholland <dholland@NetBSD.org> | 2009-03-15 00:50:47 +0000 |
| commit | 89a2669a8a8be664d488ac22db57f6c9f9f2b8ec (patch) | |
| tree | b9226c46f50e7ea70b0e2236746c3746690625e2 /sail/pl_2.c | |
| parent | 68d4fdd27d94764d7e4f1a1e40f9ada5f69d0fbd (diff) | |
| download | bsdgames-darwin-89a2669a8a8be664d488ac22db57f6c9f9f2b8ec.tar.gz bsdgames-darwin-89a2669a8a8be664d488ac22db57f6c9f9f2b8ec.zip | |
Move newturn() from pl_7 to pl_2.
pl_7 was mostly curses/display stuff, is going to be all display stuff.
pl_2 is where the main loop lives.
Diffstat (limited to 'sail/pl_2.c')
| -rw-r--r-- | sail/pl_2.c | 57 |
1 files changed, 55 insertions, 2 deletions
diff --git a/sail/pl_2.c b/sail/pl_2.c index 75be55fb..c66ddae8 100644 --- a/sail/pl_2.c +++ b/sail/pl_2.c @@ -1,4 +1,4 @@ -/* $NetBSD: pl_2.c,v 1.11 2003/08/07 09:37:43 agc Exp $ */ +/* $NetBSD: pl_2.c,v 1.12 2009/03/15 00:50:47 dholland Exp $ */ /* * Copyright (c) 1983, 1993 @@ -34,14 +34,67 @@ #if 0 static char sccsid[] = "@(#)pl_2.c 8.1 (Berkeley) 5/31/93"; #else -__RCSID("$NetBSD: pl_2.c,v 1.11 2003/08/07 09:37:43 agc Exp $"); +__RCSID("$NetBSD: pl_2.c,v 1.12 2009/03/15 00:50:47 dholland Exp $"); #endif #endif /* not lint */ #include <signal.h> +#include <unistd.h> +#include "display.h" #include "extern.h" #include "player.h" +/*ARGSUSED*/ +void +newturn(int n __unused) +{ + repaired = loaded = fired = changed = 0; + movebuf[0] = '\0'; + + alarm(0); + if (mf->readyL & R_LOADING) { + if (mf->readyL & R_DOUBLE) + mf->readyL = R_LOADING; + else + mf->readyL = R_LOADED; + } + if (mf->readyR & R_LOADING) { + if (mf->readyR & R_DOUBLE) + mf->readyR = R_LOADING; + else + mf->readyR = R_LOADED; + } + if (!hasdriver) + send_ddead(); + + display_hide_prompt(); + if (Sync() < 0) + leave(LEAVE_SYNC); + if (!hasdriver) + leave(LEAVE_DRIVER); + display_reshow_prompt(); + + if (turn % 50 == 0) + send_alive(); + if (mf->FS && (!mc->rig1 || windspeed == 6)) + send_fs(ms, 0); + if (mf->FS == 1) + send_fs(ms, 2); + + if (mf->struck) + leave(LEAVE_QUIT); + if (mf->captured != 0) + leave(LEAVE_CAPTURED); + if (windspeed == 7) + leave(LEAVE_HURRICAN); + + display_adjust_view(); + draw_screen(); + + signal(SIGALRM, newturn); + alarm(7); +} + void play(void) { |
