abstract
| - Below is the full text to rip.c from the source code of NetHack 1.3d. To link to a particular line, write [[NetHack 1.3d/rip.c#line123]], for example. Warning! This is the source code from an old release. For the latest release, see Source code 1. /* SCCS Id: @(#)rip.c 1.3 87/07/14 2. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ 3. /* hack.rip.c - version 1.0.2 */ 4. 5. #include 6. #include "hack.h" 7. 8. extern char plname[]; 9. 10. static char *rip[] = { 11. " ----------", 12. " / \\", 13. " / REST \\", 14. " / IN \\", 15. " / PEACE \\", 16. " / \\", 17. " | |", 18. " | |", 19. " | |", 20. " | |", 21. " | |", 22. " | 1001 |", 23. " *| * * * | *", 24. " _________)/\\\\_//(\\/(/\\)/\\//\\/|_)_______
", 25. 0 26. }; 27. 28. outrip(){ 29. register char **dp = rip; 30. register char *dpx; 31. char buf[BUFSZ]; 32. register x,y; 33. 34. cls(); 35. (void) strcpy(buf, plname); 36. buf[16] = 0; 37. center(6, buf); 38. (void) sprintf(buf, "%ld AU", u.ugold); 39. center(7, buf); 40. (void) sprintf(buf, "killed by%s", 41. !strncmp(killer, "the ", 4) ? "" : 42. !strcmp(killer, "starvation") ? "" : 43. index(vowels, *killer) ? " an" : " a"); 44. center(8, buf); 45. (void) strcpy(buf, killer); 46. if(strlen(buf) > 16) { 47. register int i,i0,i1; 48. i0 = i1 = 0; 49. for(i = 0; i <= 16; i++) 50. if(buf[i] == ' ') i0 = i, i1 = i+1; 51. if(!i0) i0 = i1 = 16; 52. buf[i1 + 16] = 0; 53. center(10, buf+i1); 54. buf[i0] = 0; 55. } 56. center(9, buf); 57. (void) sprintf(buf, "%4d", getyear()); 58. center(11, buf); 59. for(y=8; *dp; y++,dp++){ 60. x = 0; 61. dpx = *dp; 62. while(dpx[x]) { 63. while(dpx[x] == ' ') x++; 64. curs(x,y); 65. while(dpx[x] && dpx[x] != ' '){ 66. extern int done_stopprint; 67. if(done_stopprint) 68. return; 69. curx++; 70. (void) putchar(dpx[x++]); 71. } 72. } 73. } 74. getret(); 75. } 76. 77. center(line, text) int line; char *text; { 78. register char *ip,*op; 79. ip = text; 80. op = &rip[line][28 - ((strlen(text)+1)/2)]; 81. while(*ip) *op++ = *ip++; 82. }
|