Mercurial > hg > early-roguelike
comparison rogue3/main.c @ 212:12e070d1a780
rogue3: replace alarm() calls with a portable function.
Calls to alarm() in main.c are replaced with md_start_checkout_timer(),
so the #ifdefs around nonportable code can be confined to mdport.c.
| author | John "Elwin" Edwards |
|---|---|
| date | Fri, 22 Jan 2016 19:19:48 -0500 |
| parents | ee250e3646fd |
| children | e5a15b09ce1d |
comparison
equal
deleted
inserted
replaced
| 211:382ff498acdd | 212:12e070d1a780 |
|---|---|
| 372 signal(SIGTSTP, tstp); | 372 signal(SIGTSTP, tstp); |
| 373 #endif | 373 #endif |
| 374 | 374 |
| 375 if (!author()) | 375 if (!author()) |
| 376 { | 376 { |
| 377 #ifdef SIGALRM | 377 md_start_checkout_timer(CHECKTIME * 60); |
| 378 signal(SIGALRM, checkout); | |
| 379 alarm(CHECKTIME * 60); | |
| 380 #endif | |
| 381 num_checks = 0; | 378 num_checks = 0; |
| 382 } | 379 } |
| 383 | 380 |
| 384 nonl(); | 381 nonl(); |
| 385 crmode(); /* Cbreak mode */ | 382 crmode(); /* Cbreak mode */ |
| 462 "The load is too high to be playing. Please leave in %d minutes", | 459 "The load is too high to be playing. Please leave in %d minutes", |
| 463 "Please save your game. You have %d minutes", | 460 "Please save your game. You have %d minutes", |
| 464 "Last warning. You have %d minutes to leave", | 461 "Last warning. You have %d minutes to leave", |
| 465 }; | 462 }; |
| 466 int checktime; | 463 int checktime; |
| 467 #ifdef SIGALRM | |
| 468 signal(SIGALRM, checkout); | |
| 469 #endif | |
| 470 if (too_much()) | 464 if (too_much()) |
| 471 { | 465 { |
| 472 if (num_checks >= 3) | 466 if (num_checks >= 3) |
| 473 fatal("Sorry. You took to long. You are dead\n"); | 467 fatal("Sorry. You took to long. You are dead\n"); |
| 474 checktime = CHECKTIME / (num_checks + 1); | 468 checktime = CHECKTIME / (num_checks + 1); |
| 475 if (num_checks < 3) | 469 if (num_checks < 3) |
| 476 chmsg(msgs[num_checks++], checktime); | 470 chmsg(msgs[num_checks++], checktime); |
| 477 #ifdef SIGALRM | 471 md_start_checkout_timer(checktime * 60); |
| 478 alarm(checktime * 60); | |
| 479 #endif | |
| 480 } | 472 } |
| 481 else | 473 else |
| 482 { | 474 { |
| 483 if (num_checks) | 475 if (num_checks) |
| 484 { | 476 { |
| 485 chmsg("The load has dropped back down. You have a reprieve."); | 477 chmsg("The load has dropped back down. You have a reprieve."); |
| 486 num_checks = 0; | 478 num_checks = 0; |
| 487 } | 479 } |
| 488 #ifdef SIGALRM | 480 md_start_checkout_timer(CHECKTIME * 60); |
| 489 alarm(CHECKTIME * 60); | |
| 490 #endif | |
| 491 } | 481 } |
| 492 } | 482 } |
| 493 | 483 |
| 494 /* | 484 /* |
| 495 * checkout()'s version of msg. If we are in the middle of a shell, do a | 485 * checkout()'s version of msg. If we are in the middle of a shell, do a |
