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 /*