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