Mercurial > ~darius > hgwebdir.cgi > paradise_client
comparison death.c @ 1:ff5e05767bd3 ALPHA
Empty changelog
author | darius |
---|---|
date | Sat, 06 Dec 1997 05:41:28 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
0:d17661b1e221 | 1:ff5e05767bd3 |
---|---|
1 /* $Id: death.c,v 1.1.1.1 1997/12/06 05:41:28 darius Exp $ */ | |
2 | |
3 /* | |
4 * death.c | |
5 */ | |
6 #include "copyright.h" | |
7 | |
8 #include <stdio.h> | |
9 #include <signal.h> | |
10 #include <setjmp.h> | |
11 #include <sys/types.h> | |
12 #ifdef hpux | |
13 #include <time.h> | |
14 #else /* hpux */ | |
15 #include <sys/time.h> | |
16 #endif /* hpux */ | |
17 #include <string.h> | |
18 #include "Wlib.h" | |
19 #include "defs.h" | |
20 #include "struct.h" | |
21 #include "data.h" | |
22 #include "proto.h" | |
23 #include "gameconf.h" | |
24 | |
25 extern jmp_buf env; | |
26 | |
27 static char *teamstring[4] = { /* "", */ "and the Federation", | |
28 "and the Romulan Empire", /* "", */ | |
29 "and the Klingon Empire", /* "", "", "", */ | |
30 "and the Orions"}; | |
31 | |
32 void | |
33 redraw_death_messages() | |
34 { | |
35 char buf[256]; | |
36 int len; | |
37 | |
38 switch (me->p_whydead) { | |
39 case KNOREASON: | |
40 strcpy(buf, "You were not killed"); | |
41 break; | |
42 case KQUIT: | |
43 strcpy(buf, "You have self-destructed."); | |
44 break; | |
45 case KTORP: | |
46 sprintf(buf, "You were killed by a photon torpedo from %s (%c%c).", | |
47 players[me->p_whodead].p_name, | |
48 teaminfo[players[me->p_whodead].p_teami].letter, | |
49 shipnos[me->p_whodead]); | |
50 break; | |
51 case KPLASMA: | |
52 sprintf(buf, "You were killed by a plasma torpedo from %s (%c%c)", | |
53 players[me->p_whodead].p_name, | |
54 teaminfo[players[me->p_whodead].p_teami].letter, | |
55 shipnos[me->p_whodead]); | |
56 break; | |
57 case KPHASER: | |
58 sprintf(buf, "You were killed by a phaser shot from %s (%c%c)", | |
59 players[me->p_whodead].p_name, | |
60 teaminfo[players[me->p_whodead].p_teami].letter, | |
61 shipnos[me->p_whodead]); | |
62 break; | |
63 case KPLANET: | |
64 sprintf(buf, "You were killed by planetary fire from %s (%c)", | |
65 planets[me->p_whodead].pl_name, | |
66 teaminfo[mask_to_idx(planets[me->p_whodead].pl_owner)].letter); | |
67 break; | |
68 case KSHIP: | |
69 sprintf(buf, "You were killed by an exploding ship formerly owned by %s (%c%c)", | |
70 players[me->p_whodead].p_name, | |
71 teaminfo[players[me->p_whodead].p_teami].letter, | |
72 shipnos[me->p_whodead]); | |
73 break; | |
74 case KDAEMON: | |
75 strcpy(buf, "You were killed by a dying daemon."); | |
76 break; | |
77 case KWINNER: | |
78 if (me->p_whodead >= 0) | |
79 sprintf(buf, "Galaxy has been conquered by %s (%c%c) %s", | |
80 players[me->p_whodead].p_name, | |
81 teaminfo[players[me->p_whodead].p_teami].letter, | |
82 shipnos[players[me->p_whodead].p_no], | |
83 teamstring[players[me->p_whodead].p_teami]); | |
84 else | |
85 sprintf(buf, "Galaxy has been conquered by %s", | |
86 teamstring[-1 - me->p_whodead]); | |
87 break; | |
88 case KGHOST: | |
89 sprintf(buf, "You were ghostbusted."); | |
90 break; | |
91 case KGENOCIDE: | |
92 sprintf(buf, "Your team was genocided by %s (%c%c) %s.", | |
93 players[me->p_whodead].p_name, | |
94 teaminfo[players[me->p_whodead].p_teami].letter, | |
95 shipnos[me->p_whodead], | |
96 teamstring[players[me->p_whodead].p_teami]); | |
97 break; | |
98 case KPROVIDENCE: | |
99 sprintf(buf, "You were removed from existence by divine mercy."); | |
100 break; | |
101 case KTOURNEND: | |
102 strcpy(buf, "The tournament has ended."); | |
103 break; | |
104 case KOVER: | |
105 strcpy(buf, "The game has gone into overtime!"); | |
106 break; | |
107 case KTOURNSTART: | |
108 strcpy(buf, "The tournament has begun."); | |
109 break; | |
110 case KBADBIN: | |
111 sprintf(buf, "Your netrek executable didn't verify correctly."); | |
112 W_WriteText(mapw, 50, 70, textColor, buf, strlen(buf), W_RegularFont); | |
113 sprintf(buf, "(could be an old copy or illegal cyborg)"); | |
114 W_WriteText(mapw, 50, 110, W_Yellow, buf, strlen(buf), W_RegularFont); | |
115 *buf = 0; | |
116 break; | |
117 case KMISSILE: | |
118 sprintf(buf, "You were killed by a missile from %s (%c%c).", | |
119 players[me->p_whodead].p_name, | |
120 teaminfo[players[me->p_whodead].p_teami].letter, | |
121 shipnos[me->p_whodead]); | |
122 break; | |
123 | |
124 case KASTEROID: | |
125 strcpy(buf, "You were smashed to bits by an asteroid."); | |
126 W_WriteText(mapw, 50, 70, textColor, buf, strlen(buf), W_RegularFont ); | |
127 break; | |
128 | |
129 default: | |
130 sprintf(buf, "You were killed by something unknown to this game (%d).", | |
131 me->p_whydead); | |
132 break; | |
133 } | |
134 len = strlen(buf); | |
135 W_WriteText(mapw, 250 - len * W_Textwidth / 2, 11 * W_Textheight, W_Yellow, buf, | |
136 len, W_RegularFont); | |
137 /* First we check for promotions: */ | |
138 if (promoted) { | |
139 if (!paradise) { | |
140 sprintf(buf, "Congratulations! You have been promoted to %s", | |
141 ranks[mystats->st_rank].name); | |
142 W_WriteText(mapw, 150, 23 * W_Textheight, W_Yellow, buf, strlen(buf), W_BoldFont); | |
143 } else { | |
144 sprintf(buf, "Congratulations! You have been promoted to %s", | |
145 ranks2[mystats->st_rank].name); | |
146 W_WriteText(mapw, 150, 23 * W_Textheight, W_Yellow, buf, strlen(buf), W_BoldFont); | |
147 } | |
148 promoted = 0; | |
149 } | |
150 } | |
151 | |
152 void | |
153 death() | |
154 { | |
155 W_Event event; | |
156 | |
157 #ifdef AUTOKEY | |
158 if (autoKey) | |
159 autoKeyAllOff(); | |
160 #endif /* AUTOKEY */ | |
161 | |
162 | |
163 W_ClearWindow(mapw); | |
164 W_ClearWindow(iconWin); | |
165 if (oldalert != PFGREEN) { | |
166 if (extraBorder) | |
167 W_ChangeBorder(w, gColor); | |
168 W_ChangeBorder(baseWin, gColor); | |
169 oldalert = PFGREEN; | |
170 if(autoUnZoom>0) | |
171 blk_zoom = 0; | |
172 } | |
173 if (W_IsMapped(statwin)) { | |
174 W_UnmapWindow(statwin); | |
175 showStats = 1; | |
176 } else { | |
177 showStats = 0; | |
178 } | |
179 if (infomapped) | |
180 destroyInfo(); | |
181 W_UnmapWindow(planetw); | |
182 W_UnmapWindow(planetw2); | |
183 W_UnmapWindow(rankw); | |
184 W_UnmapWindow(war); | |
185 if (optionWin) | |
186 optiondone(); | |
187 | |
188 redraw_death_messages(); | |
189 | |
190 while (W_EventsPending()) { | |
191 W_NextEvent(&event); | |
192 } | |
193 longjmp(env, 0); | |
194 } |