About: Source:NetHack 1.4f/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.4f. To link to a particular line, write [[NetHack 1.4f/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.4f/search.c
rdfs:comment
  • Below is the full text to search.c from the source code of NetHack 1.4f. To link to a particular line, write [[NetHack 1.4f/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.4f. To link to a particular line, write [[NetHack 1.4f/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.4 87/08/08 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. atl(zx, zy, DOOR_SYM); 29. num++; 30. } else if(levl[zx][zy].typ == SCORR) { 31. levl[zx][zy].typ = CORR; 32. atl(zx, zy, CORR_SYM); 33. num++; 34. } else if(ttmp = t_at(zx, zy)) { 35. if(ttmp->ttyp == PIERC){ 36. (void) makemon(PM_PIERCER, zx, zy); 37. num++; 38. deltrap(ttmp); 39. } else if(!ttmp->tseen) { 40. ttmp->tseen = 1; 41. if(!vism_at(zx, zy)) 42. atl(zx,zy,TRAP_SYM); 43. num++; 44. } 45. } else if(mtmp = m_at(zx,zy)) if(mtmp->mimic){ 46. seemimic(mtmp); 47. num++; 48. } 49. } 50. return(num); 51. } 52. 53. dosearch() 54. { 55. register xchar x,y; 56. register struct trap *trap; 57. register struct monst *mtmp; 58. 59. if(u.uswallow) 60. pline("What are you looking for? The exit?"); 61. else 62. for(x = u.ux-1; x < u.ux+2; x++) 63. for(y = u.uy-1; y < u.uy+2; y++) if(x != u.ux || y != u.uy) { 64. if(levl[x][y].typ == SDOOR) { 65. if(rn2(7)) continue; 66. levl[x][y].typ = DOOR; 67. levl[x][y].seen = 0; /* force prl */ 68. prl(x,y); 69. nomul(0); 70. } else if(levl[x][y].typ == SCORR) { 71. if(rn2(7)) continue; 72. levl[x][y].typ = CORR; 73. levl[x][y].seen = 0; /* force prl */ 74. prl(x,y); 75. nomul(0); 76. } else { 77. /* Be careful not to find anything in an SCORR or SDOOR */ 78. if(mtmp = m_at(x,y)) if(mtmp->mimic){ 79. seemimic(mtmp); 80. pline("You find %s.",defmonnam(mtmp)); 81. return(1); 82. } 83. for(trap = ftrap; trap; trap = trap->ntrap) 84. if(trap->tx == x && trap->ty == y && 85. !trap->tseen && !rn2(8)) { 86. nomul(0); 87. if (trap->ttyp != PIERC) 88. pline("You find a%s.", traps[Hallucination ? 89. rn2(TRAPNUM-2) : trap->ttyp ]); 90. 91. if(trap->ttyp == PIERC) { 92. deltrap(trap); 93. if((mtmp=makemon(PM_PIERCER,x,y))) 94. pline("You find %s.", defmonnam(mtmp)); 95. return(1); 96. } 97. trap->tseen = 1; 98. if(!vism_at(x,y)) atl(x,y,TRAP_SYM); 99. } 100. } 101. } 102. return(1); 103. } 104. 105. doidtrap() { 106. register struct trap *trap; 107. register int x,y; 108. if(!getdir(1)) return(0); 109. x = u.ux + u.dx; 110. y = u.uy + u.dy; 111. for(trap = ftrap; trap; trap = trap->ntrap) 112. if(trap->tx == x && trap->ty == y && trap->tseen) { 113. if(u.dz) 114. if((u.dz < 0) != (!xdnstair && trap->ttyp == TRAPDOOR)) 115. continue; 116. pline("That is a%s.",traps[ Hallucination ? rn2(TRAPNUM-2) : 117. trap->ttyp]); 118. return(0); 119. } 120. pline("I can't see a trap there."); 121. return(0); 122. } 123. 124. wakeup(mtmp) 125. register struct monst *mtmp; 126. { 127. mtmp->msleep = 0; 128. setmangry(mtmp); 129. if(mtmp->mimic) seemimic(mtmp); 130. } 131. 132. /* NOTE: we must check if(mtmp->mimic) before calling this routine */ 133. seemimic(mtmp) 134. register struct monst *mtmp; 135. { 136. mtmp->mimic = 0; 137. mtmp->mappearance = 0; 138. unpmon(mtmp); 139. pmon(mtmp); 140. }
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