Mercurial > hg > early-roguelike
comparison rogue4/rip.c @ 26:ea7372f5d314
rogue4: add logging all games
author | edwarj4 |
---|---|
date | Thu, 26 Nov 2009 03:02:13 +0000 |
parents | 4967c46f1320 |
children | c68598659da6 |
comparison
equal
deleted
inserted
replaced
25:00e90f1bffd6 | 26:ea7372f5d314 |
---|---|
234 } | 234 } |
235 } | 235 } |
236 fclose(outf); | 236 fclose(outf); |
237 } | 237 } |
238 | 238 |
239 void writelog(int amount, int flags, char monst) | |
240 { | |
241 FILE *logfi; | |
242 char logmessage[160], ltemp[80]; | |
243 char *killer; | |
244 if (waswizard) | |
245 return; | |
246 #ifdef LOGFILE | |
247 if (lfd >= 0) | |
248 logfi = fdopen(lfd, "a"); | |
249 else | |
250 return; | |
251 if (logfi == NULL) | |
252 return; | |
253 /* otherwise writing should work */ | |
254 sprintf(logmessage, "%d %d %.20s %d ", time(NULL), amount, whoami, | |
255 pstats.s_lvl); | |
256 if (flags == 0) /* died */ | |
257 { | |
258 strcat(logmessage, "killed by "); | |
259 killer = killname(monst, TRUE); | |
260 strcat(logmessage, killer); | |
261 if (amulet) | |
262 sprintf(ltemp, " on level %d [max %d] with the Amulet\n", | |
263 level, max_level); | |
264 else | |
265 sprintf(ltemp, " on level %d\n", level); | |
266 strcat(logmessage, ltemp); | |
267 } | |
268 else if (flags == 1) /* quit */ | |
269 { | |
270 if (amulet) | |
271 sprintf(ltemp, "quit on level %d [max %d] with the Amulet\n", | |
272 level, max_level); | |
273 else | |
274 sprintf(ltemp, "quit on level %d\n", level); | |
275 strcat(logmessage, ltemp); | |
276 } | |
277 else if (flags == 2) /* won */ | |
278 { | |
279 sprintf(ltemp, "escaped with the Amulet [deepest level :%d]\n", | |
280 max_level); | |
281 strcat(logmessage, ltemp); | |
282 } | |
283 else | |
284 { | |
285 fclose(logfi); | |
286 return; | |
287 } | |
288 | |
289 /* then write */ | |
290 fprintf(logfi, "%s", logmessage); | |
291 fclose(logfi); | |
292 #endif | |
293 return; | |
294 } | |
295 | |
239 /* | 296 /* |
240 * death: | 297 * death: |
241 * Do something really fun when he dies | 298 * Do something really fun when he dies |
242 */ | 299 */ |
243 death(monst) | 300 death(monst) |
269 mvaddstr(16, 33, vowelstr(killer)); | 326 mvaddstr(16, 33, vowelstr(killer)); |
270 sprintf(prbuf, "%2d", 1900+lt->tm_year); | 327 sprintf(prbuf, "%2d", 1900+lt->tm_year); |
271 mvaddstr(18, 26, prbuf); | 328 mvaddstr(18, 26, prbuf); |
272 move(LINES-1, 0); | 329 move(LINES-1, 0); |
273 refresh(); | 330 refresh(); |
331 writelog(purse, 0, monst); | |
274 score(purse, 0, monst); | 332 score(purse, 0, monst); |
275 /* Make sure the output gets through */ | 333 /* Make sure the output gets through */ |
276 printf("[Press return to exit]\n"); | 334 printf("[Press return to exit]\n"); |
277 fflush(NULL); | 335 fflush(NULL); |
278 getchar(); | 336 getchar(); |
388 mvprintw(c - 'a' + 1, 0, "%c) %5d %s", c, worth, inv_name(obj, FALSE)); | 446 mvprintw(c - 'a' + 1, 0, "%c) %5d %s", c, worth, inv_name(obj, FALSE)); |
389 purse += worth; | 447 purse += worth; |
390 } | 448 } |
391 mvprintw(c - 'a' + 1, 0," %5d Gold Pieces ", oldpurse); | 449 mvprintw(c - 'a' + 1, 0," %5d Gold Pieces ", oldpurse); |
392 refresh(); | 450 refresh(); |
451 writelog(purse, 2, 0); | |
393 score(purse, 2, 0); | 452 score(purse, 2, 0); |
394 exit(0); | 453 exit(0); |
395 } | 454 } |
396 | 455 |
397 /* | 456 /* |