PropertyValue
rdfs:label
  • Source:NetHack 3.4.0/decl.c
rdfs:comment
  • Below is the full text to decl.c from the source code of NetHack 3.4.0. To link to a particular line, write [[NetHack 3.4.0/decl.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/property/wikiPageUsesTemplate
abstract
  • Below is the full text to decl.c from the source code of NetHack 3.4.0. To link to a particular line, write [[NetHack 3.4.0/decl.c#line123]], for example. Warning! This is the source code from an old release. For the latest release, see Source code 1. /* SCCS Id: @(#)decl.c 3.2 2001/12/10 */ 2. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ 3. /* NetHack may be freely redistributed. See license for details. */ 4. 5. #include "hack.h" 6. 7. int NDECL((*afternmv)); 8. int NDECL((*occupation)); 9. 10. /* from xxxmain.c */ 11. const char *hname = 0; /* name of the game (argv[0] of main) */ 12. int hackpid = 0; /* current process id */ 13. #if defined(UNIX) || defined(VMS) 14. int locknum = 0; /* max num of simultaneous users */ 15. #endif 16. #ifdef DEF_PAGER 17. char *catmore = 0; /* default pager */ 18. #endif 19. 20. NEARDATA int bases[MAXOCLASSES] = DUMMY; 21. 22. NEARDATA int multi = 0; 23. #if 0 24. NEARDATA int warnlevel = 0; /* used by movemon and dochugw */ 25. #endif 26. NEARDATA int nroom = 0; 27. NEARDATA int nsubroom = 0; 28. NEARDATA int occtime = 0; 29. 30. int x_maze_max, y_maze_max; /* initialized in main, used in mkmaze.c */ 31. int otg_temp; /* used by object_to_glyph() [otg] */ 32. 33. #ifdef REDO 34. NEARDATA int in_doagain = 0; 35. #endif 36. 37. /* 38. * The following structure will be initialized at startup time with 39. * the level numbers of some "important" things in the game. 40. */ 41. struct dgn_topology dungeon_topology = {DUMMY}; 42. 43. #include "quest.h" 44. struct q_score quest_status = DUMMY; 45. 46. NEARDATA int smeq[MAXNROFROOMS+1] = DUMMY; 47. NEARDATA int doorindex = 0; 48. 49. NEARDATA char *save_cm = 0; 50. NEARDATA int killer_format = 0; 51. const char *killer = 0; 52. const char *delayed_killer = 0; 53. #ifdef GOLDOBJ 54. NEARDATA long done_money = 0; 55. #endif 56. char killer_buf[BUFSZ] = DUMMY; 57. const char *nomovemsg = 0; 58. const char nul[40] = DUMMY; /* contains zeros */ 59. NEARDATA char plname[PL_NSIZ] = DUMMY; /* player name */ 60. NEARDATA char pl_character[PL_CSIZ] = DUMMY; 61. NEARDATA char pl_race = '\0'; 62. 63. NEARDATA char pl_fruit[PL_FSIZ] = DUMMY; 64. NEARDATA int current_fruit = 0; 65. NEARDATA struct fruit *ffruit = (struct fruit *)0; 66. 67. NEARDATA char tune[6] = DUMMY; 68. 69. const char *occtxt = DUMMY; 70. const char quitchars[] = " \033"; 71. const char vowels[] = "aeiouAEIOU"; 72. const char ynchars[] = "yn"; 73. const char ynqchars[] = "ynq"; 74. const char ynaqchars[] = "ynaq"; 75. const char ynNaqchars[] = "yn#aq"; 76. NEARDATA long yn_number = 0L; 77. 78. const char disclosure_options[] = "iavgc"; 79. 80. #ifdef MICRO 81. char hackdir[PATHLEN]; /* where rumors, help, record are */ 82. char levels[PATHLEN]; /* where levels are */ 83. #endif /* MICRO */ 84. 85. 86. #ifdef MFLOPPY 87. char permbones[PATHLEN]; /* where permanent copy of bones go */ 88. int ramdisk = FALSE; /* whether to copy bones to levels or not */ 89. int saveprompt = TRUE; 90. const char *alllevels = "levels.*"; 91. const char *allbones = "bones*.*"; 92. #endif 93. 94. struct linfo level_info[MAXLINFO]; 95. 96. NEARDATA struct sinfo program_state; 97. 98. /* 'rogue'-like direction commands (cmd.c) */ 99. const char sdir[] = "hykulnjb><"; 100. const char ndir[] = "47896321><"; /* number pad mode */ 101. const schar xdir[10] = { -1,-1, 0, 1, 1, 1, 0,-1, 0, 0 }; 102. const schar ydir[10] = { 0,-1,-1,-1, 0, 1, 1, 1, 0, 0 }; 103. const schar zdir[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 1,-1 }; 104. 105. NEARDATA schar tbx = 0, tby = 0; /* mthrowu: target */ 106. 107. /* for xname handling of multiple shot missile volleys: 108. number of shots, index of current one, validity check, shoot vs throw */ 109. NEARDATA struct multishot m_shot = { 0, 0, STRANGE_OBJECT, FALSE }; 110. 111. NEARDATA struct dig_info digging; 112. 113. NEARDATA dungeon dungeons[MAXDUNGEON]; /* ini'ed by init_dungeon() */ 114. NEARDATA s_level *sp_levchn; 115. NEARDATA stairway upstair = { 0, 0 }, dnstair = { 0, 0 }; 116. NEARDATA stairway upladder = { 0, 0 }, dnladder = { 0, 0 }; 117. NEARDATA stairway sstairs = { 0, 0 }; 118. NEARDATA dest_area updest = { 0, 0, 0, 0, 0, 0, 0, 0 }; 119. NEARDATA dest_area dndest = { 0, 0, 0, 0, 0, 0, 0, 0 }; 120. NEARDATA coord inv_pos = { 0, 0 }; 121. 122. NEARDATA boolean in_mklev = FALSE; 123. NEARDATA boolean stoned = FALSE; /* done to monsters hit by 'c' */ 124. NEARDATA boolean unweapon = FALSE; 125. NEARDATA boolean mrg_to_wielded = FALSE; 126. /* weapon picked is merged with wielded one */ 127. NEARDATA struct obj *current_wand = 0; /* wand currently zapped/applied */ 128. 129. NEARDATA boolean in_steed_dismounting = FALSE; 130. 131. NEARDATA coord bhitpos = DUMMY; 132. NEARDATA coord doors[DOORMAX] = {DUMMY}; 133. 134. NEARDATA struct mkroom rooms[(MAXNROFROOMS+1)*2] = {DUMMY}; 135. NEARDATA struct mkroom* subrooms = &rooms[MAXNROFROOMS+1]; 136. struct mkroom *upstairs_room, *dnstairs_room, *sstairs_room; 137. 138. dlevel_t level; /* level map */ 139. struct trap *ftrap = (struct trap *)0; 140. NEARDATA struct monst youmonst = DUMMY; 141. NEARDATA struct flag flags = DUMMY; 142. NEARDATA struct instance_flags iflags = DUMMY; 143. NEARDATA struct you u = DUMMY; 144. 145. NEARDATA struct obj *invent = (struct obj *)0, 146. *uwep = (struct obj *)0, *uarm = (struct obj *)0, 147. *uswapwep = (struct obj *)0, 148. *uquiver = (struct obj *)0, /* quiver */ 149. #ifdef TOURIST 150. *uarmu = (struct obj *)0, /* under-wear, so to speak */ 151. #endif 152. *uskin = (struct obj *)0, /* dragon armor, if a dragon */ 153. *uarmc = (struct obj *)0, *uarmh = (struct obj *)0, 154. *uarms = (struct obj *)0, *uarmg = (struct obj *)0, 155. *uarmf = (struct obj *)0, *uamul = (struct obj *)0, 156. *uright = (struct obj *)0, 157. *uleft = (struct obj *)0, 158. *ublindf = (struct obj *)0, 159. *uchain = (struct obj *)0, 160. *uball = (struct obj *)0; 161. 162. #ifdef TEXTCOLOR 163. /* 164. * This must be the same order as used for buzz() in zap.c. 165. */ 166. const int zapcolors[NUM_ZAP] = { 167. HI_ZAP, /* 0 - missile */ 168. CLR_ORANGE, /* 1 - fire */ 169. CLR_WHITE, /* 2 - frost */ 170. HI_ZAP, /* 3 - sleep */ 171. CLR_BLACK, /* 4 - death */ 172. CLR_WHITE, /* 5 - lightning */ 173. CLR_YELLOW, /* 6 - poison gas */ 174. CLR_GREEN, /* 7 - acid */ 175. }; 176. #endif /* text color */ 177. 178. const int shield_static[SHIELD_COUNT] = { 179. S_ss1, S_ss2, S_ss3, S_ss2, S_ss1, S_ss2, S_ss4, /* 7 per row */ 180. S_ss1, S_ss2, S_ss3, S_ss2, S_ss1, S_ss2, S_ss4, 181. S_ss1, S_ss2, S_ss3, S_ss2, S_ss1, S_ss2, S_ss4, 182. }; 183. 184. NEARDATA struct spell spl_book[MAXSPELL + 1] = {DUMMY}; 185. 186. NEARDATA long moves = 1L, monstermoves = 1L; 187. /* These diverge when player is Fast */ 188. NEARDATA long wailmsg = 0L; 189. 190. /* objects that are moving to another dungeon level */ 191. NEARDATA struct obj *migrating_objs = (struct obj *)0; 192. /* objects not yet paid for */ 193. NEARDATA struct obj *billobjs = (struct obj *)0; 194. 195. /* used to zero all elements of a struct obj */ 196. NEARDATA struct obj zeroobj = DUMMY; 197. 198. /* originally from dog.c */ 199. NEARDATA char dogname[PL_PSIZ] = DUMMY; 200. NEARDATA char catname[PL_PSIZ] = DUMMY; 201. NEARDATA char horsename[PL_PSIZ] = DUMMY; 202. char preferred_pet; /* '\0', 'c', 'd', 'n' (none) */ 203. /* monsters that went down/up together with @ */ 204. NEARDATA struct monst *mydogs = (struct monst *)0; 205. /* monsters that are moving to another dungeon level */ 206. NEARDATA struct monst *migrating_mons = (struct monst *)0; 207. 208. NEARDATA struct mvitals mvitals[NUMMONS]; 209. 210. NEARDATA struct c_color_names c_color_names = { 211. "black", "amber", "golden", 212. "light blue", "red", "green", 213. "silver", "blue", "purple", 214. "white" 215. }; 216. 217. const char *c_obj_colors[] = { 218. "black", /* CLR_BLACK */ 219. "red", /* CLR_RED */ 220. "green", /* CLR_GREEN */ 221. "brown", /* CLR_BROWN */ 222. "blue", /* CLR_BLUE */ 223. "magenta", /* CLR_MAGENTA */ 224. "cyan", /* CLR_CYAN */ 225. "gray", /* CLR_GRAY */ 226. "transparent", /* no_color */ 227. "orange", /* CLR_ORANGE */ 228. "bright green", /* CLR_BRIGHT_GREEN */ 229. "yellow", /* CLR_YELLOW */ 230. "bright blue", /* CLR_BRIGHT_BLUE */ 231. "bright magenta", /* CLR_BRIGHT_MAGENTA */ 232. "bright cyan", /* CLR_BRIGHT_CYAN */ 233. "white", /* CLR_WHITE */ 234. }; 235. 236. struct c_common_strings c_common_strings = { 237. "Nothing happens.", "That's enough tries!", 238. "That is a silly thing to %s.", "shudder for a moment.", 239. "something", "Something", "You can move again.", "Never mind.", 240. "vision quickly clears." 241. }; 242. 243. /* NOTE: the order of these words exactly corresponds to the 244. order of oc_material values #define'd in objclass.h. */ 245. const char *materialnm[] = { 246. "mysterious", "liquid", "wax", "organic", "flesh", 247. "paper", "cloth", "leather", "wooden", "bone", "dragonhide", 248. "iron", "metal", "copper", "silver", "gold", "platinum", "mithril", 249. "plastic", "glass", "gemstone", "stone" 250. }; 251. 252. /* Vision */ 253. NEARDATA boolean vision_full_recalc = 0; 254. NEARDATA char **viz_array = 0;/* used in cansee() and couldsee() macros */ 255. 256. /* Global windowing data, defined here for multi-window-system support */ 257. NEARDATA winid WIN_MESSAGE = WIN_ERR, WIN_STATUS = WIN_ERR; 258. NEARDATA winid WIN_MAP = WIN_ERR, WIN_INVEN = WIN_ERR; 259. char toplines[TBUFSZ]; 260. /* Windowing stuff that's really tty oriented, but present for all ports */ 261. struct tc_gbl_data tc_gbl_data = { 0,0, 0,0 }; /* AS,AE, LI,CO */ 262. 263. char *fqn_prefix[PREFIX_COUNT] = { (char *)0, (char *)0, (char *)0, (char *)0, 264. (char *)0, (char *)0, (char *)0, (char *)0 }; 265. 266. #ifdef PREFIXES_IN_USE 267. char *fqn_prefix_names[PREFIX_COUNT] = { "hackdir", "leveldir", "savedir", 268. "bonesdir", "datadir", "scoredir", 269. "lockdir", "configdir" }; 270. #endif 271. 272. /* dummy routine used to force linkage */ 273. void 274. decl_init() 275. { 276. return; 277. } 278. 279. /*decl.c*/