static void succumb(int sigraised) { if (oldsig == SIG_DFL) { endfly(); exit(1); } if (oldsig != SIG_IGN) { endfly(); (*oldsig)(SIGINT); } }
void succumb() { if (oldsig == SIG_DFL) { endfly(); exit(1); } if (oldsig != SIG_IGN) { endfly(); (*oldsig)(SIGINT); } }
succumb() { switch (oldsig) { case SIG_DFL: endfly(); exit(1); case SIG_IGN: break; default: endfly(); (*oldsig)(); } }
visual() { void moveenemy(); destroyed = 0; if(initscr() == ERR){ puts("Whoops! No more memory..."); return(0); } oldsig = signal(SIGINT, succumb); crmode(); noecho(); screen(); row = rnd(LINES-3) + 1; column = rnd(COLS-2) + 1; moveenemy(); for (;;) { switch(getchar()){ case 'h': case 'r': dc = -1; fuel--; break; case 'H': case 'R': dc = -5; fuel -= 10; break; case 'l': dc = 1; fuel--; break; case 'L': dc = 5; fuel -= 10; break; case 'j': case 'u': dr = 1; fuel--; break; case 'J': case 'U': dr = 5; fuel -= 10; break; case 'k': case 'd': dr = -1; fuel--; break; case 'K': case 'D': dr = -5; fuel -= 10; break; case '+': if (cross){ cross = 0; notarget(); } else cross = 1; break; case ' ': case 'f': if (torps){ torps -= 2; blast(); if (row == MIDR && column - MIDC < 2 && MIDC - column < 2){ destroyed = 1; alarm(0); } } else mvaddstr(0,0,"*** Out of torpedoes. ***"); break; case 'q': endfly(); return(0); default: mvaddstr(0,26,"Commands = r,R,l,L,u,U,d,D,f,+,q"); continue; case EOF: break; } if (destroyed){ endfly(); return(1); } if (clock <= 0){ endfly(); die(); } } }