Mercurial > hg > early-roguelike
comparison rogue5/rip.c @ 34:655c317b6237
rogue5: add savedir, logfile, bugfixes
| author | elwin |
|---|---|
| date | Mon, 24 May 2010 20:16:15 +0000 |
| parents | f502bf60e6e4 |
| children | 24e6beb9e7aa |
comparison
equal
deleted
inserted
replaced
| 33:f502bf60e6e4 | 34:655c317b6237 |
|---|---|
| 221 signal(SIGINT, fp); | 221 signal(SIGINT, fp); |
| 222 } | 222 } |
| 223 } | 223 } |
| 224 } | 224 } |
| 225 | 225 |
| 226 void writelog(int amount, int flags, int monst) | |
| 227 { | |
| 228 #ifdef LOGFILE | |
| 229 char logmessage[160], ltemp[80]; | |
| 230 | |
| 231 if (logfi == NULL) | |
| 232 return; | |
| 233 #ifdef MASTER | |
| 234 if (wizard) | |
| 235 { | |
| 236 fclose(logfi); | |
| 237 return; | |
| 238 } | |
| 239 #endif | |
| 240 sprintf(logmessage, "%d %d %.20s %d ", time(NULL), amount, whoami, | |
| 241 pstats.s_lvl); | |
| 242 if (flags == 0) /* dead */ | |
| 243 { | |
| 244 sprintf(ltemp, "killed by %s on level %d\n", killname(monst, TRUE), | |
| 245 level); | |
| 246 strcat(logmessage, ltemp); | |
| 247 } | |
| 248 else if (flags == 1) /* quit */ | |
| 249 { | |
| 250 if (amulet) | |
| 251 sprintf(ltemp, "quit on level %d [max %d] with the Amulet\n", | |
| 252 level, max_level); | |
| 253 else | |
| 254 sprintf(ltemp, "quit on level %d\n", level); | |
| 255 strcat(logmessage, ltemp); | |
| 256 } | |
| 257 else if (flags == 2) /* won */ | |
| 258 { | |
| 259 sprintf(ltemp, "escaped with the Amulet [deepest level: %d]\n", | |
| 260 max_level); | |
| 261 strcat(logmessage, ltemp); | |
| 262 } | |
| 263 else if (flags == 3) /* killed with Amulet */ | |
| 264 { | |
| 265 strcat(logmessage, "killed by "); | |
| 266 strcat(logmessage, killname(monst, TRUE)); | |
| 267 sprintf(ltemp, " on level %d [max %d] with the Amulet\n", | |
| 268 level, max_level); | |
| 269 strcat(logmessage, ltemp); | |
| 270 } | |
| 271 else | |
| 272 { | |
| 273 fclose(logfi); | |
| 274 return; | |
| 275 } | |
| 276 fprintf(logfi, "%s", logmessage); | |
| 277 fclose(logfi); | |
| 278 #endif | |
| 279 return; | |
| 280 } | |
| 281 | |
| 226 /* | 282 /* |
| 227 * death: | 283 * death: |
| 228 * Do something really fun when he dies | 284 * Do something really fun when he dies |
| 229 */ | 285 */ |
| 230 | 286 |
| 269 sprintf(prbuf, "%4d", 1900+lt->tm_year); | 325 sprintf(prbuf, "%4d", 1900+lt->tm_year); |
| 270 mvaddstr(18, 26, prbuf); | 326 mvaddstr(18, 26, prbuf); |
| 271 } | 327 } |
| 272 move(LINES - 1, 0); | 328 move(LINES - 1, 0); |
| 273 refresh(); | 329 refresh(); |
| 330 writelog(purse, amulet ? 3 : 0, monst); | |
| 274 score(purse, amulet ? 3 : 0, monst); | 331 score(purse, amulet ? 3 : 0, monst); |
| 332 /* Make sure the output gets through. */ | |
| 333 printf("[Press return to exit]\n"); | |
| 334 fflush(NULL); | |
| 335 getchar(); | |
| 275 my_exit(0); | 336 my_exit(0); |
| 276 } | 337 } |
| 277 | 338 |
| 278 /* | 339 /* |
| 279 * center: | 340 * center: |
| 380 printw("%c) %5d %s\n", obj->o_packch, worth, inv_name(obj, FALSE)); | 441 printw("%c) %5d %s\n", obj->o_packch, worth, inv_name(obj, FALSE)); |
| 381 purse += worth; | 442 purse += worth; |
| 382 } | 443 } |
| 383 printw(" %5d Gold Pieces ", oldpurse); | 444 printw(" %5d Gold Pieces ", oldpurse); |
| 384 refresh(); | 445 refresh(); |
| 446 writelog(purse, 2, ' '); | |
| 385 score(purse, 2, ' '); | 447 score(purse, 2, ' '); |
| 386 my_exit(0); | 448 my_exit(0); |
| 387 } | 449 } |
| 388 | 450 |
| 389 /* | 451 /* |
