|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T d
Length: 3522 (0xdc2) Types: TextFile Names: »death.c«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki └─⟦526ad3590⟧ »EUUGD11/gnu-31mar87/X.V10.R4.tar.Z« └─⟦2109abc41⟧ └─⟦this⟧ »./X.V10R4/xtrek/death.c«
#ifndef lint static char *rcsid_death_c = "$Header: death.c,v 10.1 86/11/30 15:24:05 jg Rel $"; #endif lint /* Copyright (c) 1986 Chris Guthrie */ #include <X/Xlib.h> #include <stdio.h> #include <signal.h> #include <setjmp.h> #include <sys/types.h> #include <sys/time.h> #include "defs.h" #include "struct.h" #include "data.h" extern Font dfont; extern Window w, mapw, statwin, baseWin; extern int oldalert; extern char teamlet[]; extern jmp_buf env; struct itimerval udt; double oldmax = 0; death() { char buf[80]; XEvent foo; int mustexit = 0; /* Allow player to watch final updates */ while (me->p_status == PEXPLODE) ; while (me->p_ntorp > 0) ; signal(SIGALRM, SIG_IGN); udt.it_interval.tv_sec = 0; udt.it_interval.tv_usec = 0; udt.it_value.tv_sec = 0; udt.it_value.tv_usec = 0; setitimer(ITIMER_REAL, &udt, 0); signal(SIGALRM, SIG_DFL); me->p_status = POUTFIT; /* Stop the ghost buster */ XClear(w); XChangeBorder(baseWin, gTile); if (showStats) closeStats(statwin); switch (me->p_whydead) { case KQUIT: sprintf(buf, "You have self-destructed"); XText(w, 50, 250, buf, strlen(buf), dfont, textColor, backColor); break; case KTORP: sprintf(buf, "You were killed by a torp from %s (%c%x)", players[me->p_whodead].p_name, teamlet[players[me->p_whodead].p_team], me->p_whodead); XText(w, 50, 250, buf, strlen(buf), dfont, textColor, backColor); sprintf(buf, "who was %d%% damaged", players[me->p_whodead].p_damage); XText(w, 50, 260, buf, strlen(buf), dfont, textColor, backColor); break; case KPHASER: sprintf(buf, "You were killed by a phaser shot from %s (%c%x)", players[me->p_whodead].p_name, teamlet[players[me->p_whodead].p_team], me->p_whodead); XText(w, 50, 250, buf, strlen(buf), dfont, textColor, backColor); sprintf(buf, "who was %d%% damaged", players[me->p_whodead].p_damage); XText(w, 50, 260, buf, strlen(buf), dfont, textColor, backColor); break; case KPLANET: sprintf(buf, "You were killed by planetary fire from %s (%c)", planets[me->p_whodead].pl_name, teamlet[planets[me->p_whodead].pl_owner]); XText(w, 50, 250, buf, strlen(buf), dfont, textColor, backColor); break; case KSHIP: sprintf(buf, "You were killed by an exploding ship formerly owned by %s (%c%x)", players[me->p_whodead].p_name, teamlet[players[me->p_whodead].p_team], me->p_whodead); XText(w, 50, 250, buf, strlen(buf), dfont, textColor, backColor); sprintf(buf, "who was %d%% damaged", players[me->p_whodead].p_damage); XText(w, 50, 260, buf, strlen(buf), dfont, textColor, backColor); break; case KDAEMON: sprintf(buf, "You were killed by a dying daemon"); XText(w, 50, 250, buf, strlen(buf), dfont, textColor, backColor); mustexit = 1; break; case KWINNER: sprintf(buf, "Galaxy has been conquered by %s (%c%x)", players[me->p_whodead].p_name, teamlet[players[me->p_whodead].p_team], players[me->p_whodead].p_no); XText(w, 50, 250, buf, strlen(buf), dfont, textColor, backColor); mustexit = 1; break; default: sprintf(buf, "You were killed by something unknown to this game?"); XText(w, 50, 250, buf, strlen(buf), dfont, textColor, backColor); break; } if (oldmax < me->p_kills) oldmax = me->p_kills; mystats->st_kills += me->p_kills; /* the exit routine in 'entryWindow' handles reentry now */ XSync(1); longjmp(env, 0); }