About: Source:NetHack 1.3d/search.c   Sponge Permalink

An Entity of Type : owl:Thing, within Data Space : 134.155.108.49:8890 associated with source dataset(s)

Below is the full text to search.c from the source code of NetHack 1.3d. To link to a particular line, write [[NetHack 1.3d/search.c#line123]], for example. Warning! This is the source code from an old release. For the latest release, see Source code

AttributesValues
rdfs:label
  • Source:NetHack 1.3d/search.c
rdfs:comment
  • Below is the full text to search.c from the source code of NetHack 1.3d. To link to a particular line, write [[NetHack 1.3d/search.c#line123]], for example. Warning! This is the source code from an old release. For the latest release, see Source code
dcterms:subject
dbkwik:nethack/pro...iPageUsesTemplate
abstract
  • Below is the full text to search.c from the source code of NetHack 1.3d. To link to a particular line, write [[NetHack 1.3d/search.c#line123]], for example. Warning! This is the source code from an old release. For the latest release, see Source code 1. /* SCCS Id: @(#)search.c 1.3 87/07/14 2. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ 3. /* search.c - version 1.0.3 */ 4. 5. #include "hack.h" 6. char *rndmonnam(), *defmonnam(); 7. 8. extern struct monst *makemon(); 9. 10. findit() /* returns number of things found */ 11. { 12. int num; 13. register xchar zx,zy; 14. register struct trap *ttmp; 15. register struct monst *mtmp; 16. xchar lx,hx,ly,hy; 17. 18. if(u.uswallow) return(0); 19. for(lx = u.ux; (num = levl[lx-1][u.uy].typ) && num != CORR; lx--) ; 20. for(hx = u.ux; (num = levl[hx+1][u.uy].typ) && num != CORR; hx++) ; 21. for(ly = u.uy; (num = levl[u.ux][ly-1].typ) && num != CORR; ly--) ; 22. for(hy = u.uy; (num = levl[u.ux][hy+1].typ) && num != CORR; hy++) ; 23. num = 0; 24. for(zy = ly; zy <= hy; zy++) 25. for(zx = lx; zx <= hx; zx++) { 26. if(levl[zx][zy].typ == SDOOR) { 27. levl[zx][zy].typ = DOOR; 28. #ifdef DGK 29. atl(zx, zy, symbol.door); 30. #else 31. atl(zx, zy, '+'); 32. #endif 33. num++; 34. } else if(levl[zx][zy].typ == SCORR) { 35. levl[zx][zy].typ = CORR; 36. #ifdef DGK 37. atl(zx, zy, symbol.corr); 38. #else 39. atl(zx, zy, CORR_SYM); 40. #endif 41. num++; 42. } else if(ttmp = t_at(zx, zy)) { 43. if(ttmp->ttyp == PIERC){ 44. (void) makemon(PM_PIERCER, zx, zy); 45. num++; 46. deltrap(ttmp); 47. } else if(!ttmp->tseen) { 48. ttmp->tseen = 1; 49. if(!vism_at(zx, zy)) 50. atl(zx,zy,'^'); 51. num++; 52. } 53. } else if(mtmp = m_at(zx,zy)) if(mtmp->mimic){ 54. seemimic(mtmp); 55. num++; 56. } 57. } 58. return(num); 59. } 60. 61. dosearch() 62. { 63. register xchar x,y; 64. register struct trap *trap; 65. register struct monst *mtmp; 66. 67. if(u.uswallow) 68. pline("What are you looking for? The exit?"); 69. else 70. for(x = u.ux-1; x < u.ux+2; x++) 71. for(y = u.uy-1; y < u.uy+2; y++) if(x != u.ux || y != u.uy) { 72. if(levl[x][y].typ == SDOOR) { 73. if(rn2(7)) continue; 74. levl[x][y].typ = DOOR; 75. levl[x][y].seen = 0; /* force prl */ 76. prl(x,y); 77. nomul(0); 78. } else if(levl[x][y].typ == SCORR) { 79. if(rn2(7)) continue; 80. levl[x][y].typ = CORR; 81. levl[x][y].seen = 0; /* force prl */ 82. prl(x,y); 83. nomul(0); 84. } else { 85. /* Be careful not to find anything in an SCORR or SDOOR */ 86. if(mtmp = m_at(x,y)) if(mtmp->mimic){ 87. seemimic(mtmp); 88. pline("You find %s.",defmonnam(mtmp)); 89. return(1); 90. } 91. for(trap = ftrap; trap; trap = trap->ntrap) 92. if(trap->tx == x && trap->ty == y && 93. !trap->tseen && !rn2(8)) { 94. nomul(0); 95. if (trap->ttyp != PIERC) 96. pline("You find a%s.", traps[Hallucination ? 97. rn2(TRAPNUM-2) : trap->ttyp ]); 98. 99. if(trap->ttyp == PIERC) { 100. deltrap(trap); 101. mtmp=makemon(PM_PIERCER,x,y); 102. pline("You find %s.", defmonnam(mtmp)); 103. return(1); 104. } 105. trap->tseen = 1; 106. if(!vism_at(x,y)) atl(x,y,'^'); 107. } 108. } 109. } 110. return(1); 111. } 112. 113. doidtrap() { 114. register struct trap *trap; 115. register int x,y; 116. if(!getdir(1)) return(0); 117. x = u.ux + u.dx; 118. y = u.uy + u.dy; 119. for(trap = ftrap; trap; trap = trap->ntrap) 120. if(trap->tx == x && trap->ty == y && trap->tseen) { 121. if(u.dz) 122. if((u.dz < 0) != (!xdnstair && trap->ttyp == TRAPDOOR)) 123. continue; 124. pline("That is a%s.",traps[ Hallucination ? rn2(TRAPNUM-2) : 125. trap->ttyp]); 126. return(0); 127. } 128. pline("I can't see a trap there."); 129. return(0); 130. } 131. 132. wakeup(mtmp) 133. register struct monst *mtmp; 134. { 135. mtmp->msleep = 0; 136. setmangry(mtmp); 137. if(mtmp->mimic) seemimic(mtmp); 138. } 139. 140. /* NOTE: we must check if(mtmp->mimic) before calling this routine */ 141. seemimic(mtmp) 142. register struct monst *mtmp; 143. { 144. mtmp->mimic = 0; 145. mtmp->mappearance = 0; 146. unpmon(mtmp); 147. pmon(mtmp); 148. }
Alternative Linked Data Views: ODE     Raw Data in: CXML | CSV | RDF ( N-Triples N3/Turtle JSON XML ) | OData ( Atom JSON ) | Microdata ( JSON HTML) | JSON-LD    About   
This material is Open Knowledge   W3C Semantic Web Technology [RDF Data] Valid XHTML + RDFa
OpenLink Virtuoso version 07.20.3217, on Linux (x86_64-pc-linux-gnu), Standard Edition
Data on this page belongs to its respective rights holders.
Virtuoso Faceted Browser Copyright © 2009-2012 OpenLink Software