00001
00002
00003
00004
00005 #ifndef EXTERN_H
00006 #define EXTERN_H
00007
00008 #define E extern
00009
00010
00011
00012 #if 0
00013 E long *FDECL(alloc, (unsigned int));
00014 #endif
00015 E char *FDECL(fmt_ptr, (const genericptr,char *));
00016
00017
00018
00019 #if !defined(MAKEDEFS_C) && !defined(LEV_LEX_C)
00020
00021
00022
00023 E void NDECL(moveloop);
00024 E void NDECL(stop_occupation);
00025 E void NDECL(display_gamewindows);
00026 E void NDECL(newgame);
00027 E void FDECL(welcome, (BOOLEAN_P));
00028 #if defined(RECORD_REALTIME) || defined(REALTIME_ON_BOTL)
00029 E time_t NDECL(get_realtime);
00030 #endif
00031
00032
00033
00034 E int NDECL(doapply);
00035 E int NDECL(dorub);
00036 E int NDECL(dojump);
00037 E int FDECL(jump, (int));
00038 E int NDECL(number_leashed);
00039 E void FDECL(o_unleash, (struct obj *));
00040 E void FDECL(m_unleash, (struct monst *,BOOLEAN_P));
00041 E void NDECL(unleash_all);
00042 E boolean NDECL(next_to_u);
00043 E struct obj *FDECL(get_mleash, (struct monst *));
00044 E void FDECL(check_leash, (XCHAR_P,XCHAR_P));
00045 E boolean FDECL(um_dist, (XCHAR_P,XCHAR_P,XCHAR_P));
00046 E boolean FDECL(snuff_candle, (struct obj *));
00047 E boolean FDECL(snuff_lit, (struct obj *));
00048 E boolean FDECL(catch_lit, (struct obj *));
00049 E void FDECL(fix_attributes_and_properties, (struct obj *, int));
00050 E boolean FDECL(tinnable, (struct obj *));
00051 E void NDECL(reset_trapset);
00052 E void FDECL(fig_transform, (genericptr_t, long));
00053 E int FDECL(unfixable_trouble_count,(BOOLEAN_P));
00054
00055
00056
00057 E void NDECL(init_artifacts);
00058 E void FDECL(save_artifacts, (int));
00059 E void FDECL(restore_artifacts, (int));
00060 E const char *FDECL(artiname, (int));
00061 E struct obj *FDECL(mk_artifact, (struct obj *,ALIGNTYP_P));
00062 E const char *FDECL(artifact_name, (const char *,short *));
00063 E boolean FDECL(exist_artifact, (int,const char *));
00064 E void FDECL(artifact_exists, (struct obj *,const char *,BOOLEAN_P));
00065 E int NDECL(nartifact_exist);
00066 E boolean FDECL(spec_ability, (struct obj *,unsigned long));
00067 E boolean FDECL(confers_luck, (struct obj *));
00068 E boolean FDECL(arti_reflects, (struct obj *));
00069 E boolean FDECL(restrict_name, (struct obj *,const char *,BOOLEAN_P));
00070 E boolean FDECL(defends, (int,struct obj *));
00071 E boolean FDECL(protects, (int,struct obj *));
00072 E void FDECL(set_artifact_intrinsic, (struct obj *,BOOLEAN_P,long));
00073 E int FDECL(touch_artifact, (struct obj *,struct monst *));
00074 E int FDECL(spec_abon, (struct obj *,struct monst *));
00075 E int FDECL(spec_dbon, (struct obj *,struct monst *,int));
00076 E void FDECL(discover_artifact, (XCHAR_P));
00077 E boolean FDECL(undiscovered_artifact, (XCHAR_P));
00078 E int FDECL(disp_artifact_discoveries, (winid));
00079 E boolean FDECL(artifact_hit, (struct monst *,struct monst *,
00080 struct obj *,int *,int));
00081 E int NDECL(doinvoke);
00082 E void FDECL(arti_speak, (struct obj *));
00083 E boolean FDECL(artifact_light, (struct obj *));
00084 E long FDECL(spec_m2, (struct obj *));
00085 E boolean FDECL(artifact_has_invprop, (struct obj *,UCHAR_P));
00086 E long FDECL(arti_cost, (struct obj *));
00087 E boolean FDECL(MATCH_WARN_OF_MON, (struct monst *));
00088 E const char *FDECL(get_warned_of_monster, (struct obj *));
00089
00090
00091
00092 E boolean FDECL(adjattrib, (int,int,int));
00093 E void FDECL(change_luck, (SCHAR_P));
00094 E int FDECL(stone_luck, (BOOLEAN_P));
00095 E void NDECL(set_moreluck);
00096 E void FDECL(gainstr, (struct obj *,int));
00097 E void FDECL(losestr, (int));
00098 E void NDECL(restore_attrib);
00099 E void FDECL(exercise, (int,BOOLEAN_P));
00100 E void NDECL(exerchk);
00101 E void NDECL(reset_attribute_clock);
00102 E void FDECL(init_attr, (int));
00103 E void NDECL(redist_attr);
00104 E void FDECL(adjabil, (int,int));
00105 E int NDECL(newhp);
00106 E schar FDECL(acurr, (int));
00107 E schar NDECL(acurrstr);
00108 E void FDECL(adjalign, (int));
00109 E const char * NDECL(beautiful);
00110 E int NDECL(uhp);
00111 E int NDECL(uhpmax);
00112
00113
00114
00115 E void NDECL(ballfall);
00116 E void NDECL(placebc);
00117 E void NDECL(unplacebc);
00118 E void FDECL(set_bc, (int));
00119 E void FDECL(move_bc, (int,int,XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
00120 E boolean FDECL(drag_ball, (XCHAR_P,XCHAR_P,
00121 int *,xchar *,xchar *,xchar *,xchar *, boolean *,BOOLEAN_P));
00122 E void FDECL(drop_ball, (XCHAR_P,XCHAR_P));
00123 E void NDECL(drag_down);
00124
00125
00126
00127 E boolean NDECL(can_make_bones);
00128 E void FDECL(savebones, (struct obj *));
00129 E int NDECL(getbones);
00130
00131
00132
00133 E int FDECL(xlev_to_rank, (int));
00134 E int FDECL(title_to_mon, (const char *,int *,int *));
00135 E void NDECL(max_rank_sz);
00136 #ifdef SCORE_ON_BOTL
00137 E long NDECL(botl_score);
00138 #endif
00139 E int FDECL(describe_level, (char *));
00140 E const char *NDECL(rank);
00141 E const char *FDECL(rank_of, (int,SHORT_P,BOOLEAN_P));
00142 E void NDECL(bot);
00143 #ifdef DUMP_LOG
00144 E void FDECL(bot1str, (char *));
00145 E void FDECL(bot2str, (char *));
00146 #endif
00147
00148
00149
00150 #ifdef USE_TRAMPOLI
00151 E int NDECL(doextcmd);
00152 E int NDECL(domonability);
00153 E int NDECL(doprev_message);
00154 E int NDECL(timed_occupation);
00155 E int NDECL(wiz_attributes);
00156 E int NDECL(enter_explore_mode);
00157 # ifdef WIZARD
00158 E int NDECL(wiz_detect);
00159 E int NDECL(wiz_genesis);
00160 E int NDECL(wiz_identify);
00161 E int NDECL(wiz_level_tele);
00162 E int NDECL(wiz_map);
00163 E int NDECL(wiz_where);
00164 E int NDECL(wiz_wish);
00165 # endif
00166 #endif
00167 E void NDECL(reset_occupations);
00168 E void FDECL(set_occupation, (int (*)(void),const char *,int));
00169 #ifdef REDO
00170 E char NDECL(pgetchar);
00171 E void FDECL(pushch, (CHAR_P));
00172 E void FDECL(savech, (CHAR_P));
00173 #endif
00174 #ifdef WIZARD
00175 E void NDECL(add_debug_extended_commands);
00176 #endif
00177 E void FDECL(rhack, (char *));
00178 E int NDECL(doextlist);
00179 E int NDECL(extcmd_via_menu);
00180 E void FDECL(enlightenment, (int,BOOLEAN_P));
00181 E void FDECL(show_conduct, (int,BOOLEAN_P));
00182 E int FDECL(xytod, (SCHAR_P,SCHAR_P));
00183 E void FDECL(dtoxy, (coord *,int));
00184 E int FDECL(movecmd, (CHAR_P));
00185 E int FDECL(getdir, (const char *));
00186 E void NDECL(confdir);
00187 E int FDECL(isok, (int,int));
00188 E int FDECL(get_adjacent_loc, (const char *, const char *, XCHAR_P, XCHAR_P, coord *));
00189 E const char *FDECL(click_to_cmd, (int,int,int));
00190 E char NDECL(readchar);
00191 #ifdef WIZARD
00192 E void NDECL(sanity_check);
00193 #endif
00194 E char FDECL(yn_function, (const char *, const char *, CHAR_P));
00195 E char FDECL(paranoid_yn, (const char *, BOOLEAN_P));
00196
00197
00198
00199 E boolean FDECL(is_pool, (int,int));
00200 E boolean FDECL(is_lava, (int,int));
00201 E boolean FDECL(is_ice, (int,int));
00202 E int FDECL(is_drawbridge_wall, (int,int));
00203 E boolean FDECL(is_db_wall, (int,int));
00204 E boolean FDECL(find_drawbridge, (int *,int*));
00205 E boolean FDECL(create_drawbridge, (int,int,int,BOOLEAN_P));
00206 E void FDECL(open_drawbridge, (int,int));
00207 E boolean FDECL(close_drawbridge, (int,int));
00208 E void FDECL(destroy_drawbridge, (int,int));
00209
00210
00211
00212 E void NDECL(decl_init);
00213
00214
00215
00216 E struct obj *FDECL(o_in, (struct obj*,CHAR_P));
00217 E struct obj *FDECL(o_material, (struct obj*,unsigned));
00218 E int FDECL(gold_detect, (struct obj *));
00219 E int FDECL(food_detect, (struct obj *));
00220 E int FDECL(object_detect, (struct obj *,int));
00221 E int FDECL(monster_detect, (struct obj *,int));
00222 E int FDECL(trap_detect, (struct obj *));
00223 E const char *FDECL(level_distance, (d_level *));
00224 E void FDECL(use_crystal_ball, (struct obj *));
00225 E void NDECL(do_mapping);
00226 E void NDECL(do_vicinity_map);
00227 E void FDECL(cvt_sdoor_to_door, (struct rm *));
00228 #ifdef USE_TRAMPOLI
00229 E void FDECL(findone, (int,int,genericptr_t));
00230 E void FDECL(openone, (int,int,genericptr_t));
00231 #endif
00232 E int NDECL(findit);
00233 E int NDECL(openit);
00234 E void FDECL(find_trap, (struct trap *));
00235 E int FDECL(dosearch0, (int));
00236 E int NDECL(dosearch);
00237 E void NDECL(sokoban_detect);
00238
00239
00240
00241 E boolean NDECL(is_digging);
00242 #ifdef USE_TRAMPOLI
00243 E int NDECL(dig);
00244 #endif
00245 E int NDECL(holetime);
00246 E boolean FDECL(dig_check, (struct monst *, BOOLEAN_P, int, int));
00247 E void FDECL(digactualhole, (int,int,struct monst *,int));
00248 E boolean FDECL(dighole, (BOOLEAN_P));
00249 E int FDECL(use_pick_axe, (struct obj *));
00250 E int FDECL(use_pick_axe2, (struct obj *));
00251 E boolean FDECL(mdig_tunnel, (struct monst *));
00252 E void FDECL(watch_dig, (struct monst *,XCHAR_P,XCHAR_P,BOOLEAN_P));
00253 E void NDECL(zap_dig);
00254 E struct obj *FDECL(bury_an_obj, (struct obj *));
00255 E void FDECL(bury_objs, (int,int));
00256 E void FDECL(unearth_objs, (int,int));
00257 E void FDECL(rot_organic, (genericptr_t, long));
00258 E void FDECL(rot_corpse, (genericptr_t, long));
00259 #if 0
00260 E void FDECL(bury_monst, (struct monst *));
00261 E void NDECL(bury_you);
00262 E void NDECL(unearth_you);
00263 E void NDECL(escape_tomb);
00264 E void FDECL(bury_obj, (struct obj *));
00265 #endif
00266
00267
00268
00269 #ifdef INVISIBLE_OBJECTS
00270 E struct obj * FDECL(vobj_at, (XCHAR_P,XCHAR_P));
00271 #endif
00272 E void FDECL(magic_map_background, (XCHAR_P,XCHAR_P,int));
00273 E void FDECL(map_background, (XCHAR_P,XCHAR_P,int));
00274 E void FDECL(map_trap, (struct trap *,int));
00275 E void FDECL(map_object, (struct obj *,int));
00276 E void FDECL(map_invisible, (XCHAR_P,XCHAR_P));
00277 E void FDECL(unmap_object, (int,int));
00278 E void FDECL(map_location, (int,int,int));
00279 E void FDECL(feel_location, (XCHAR_P,XCHAR_P));
00280 E void FDECL(newsym, (int,int));
00281 E void FDECL(shieldeff, (XCHAR_P,XCHAR_P));
00282 E void FDECL(tmp_at, (int,int));
00283 E void FDECL(swallowed, (int));
00284 E void FDECL(under_ground, (int));
00285 E void FDECL(under_water, (int));
00286 E void NDECL(see_monsters);
00287 E void NDECL(set_mimic_blocking);
00288 E void NDECL(see_objects);
00289 E void NDECL(see_traps);
00290 E void NDECL(curs_on_u);
00291 E int NDECL(doredraw);
00292 E void NDECL(docrt);
00293 E void FDECL(show_glyph, (int,int,int));
00294 E void NDECL(clear_glyph_buffer);
00295 E void FDECL(row_refresh, (int,int,int));
00296 E void NDECL(cls);
00297 E void FDECL(flush_screen, (int));
00298 #ifdef DUMP_LOG
00299 E void NDECL(dump_screen);
00300 #endif
00301 E int FDECL(back_to_glyph, (XCHAR_P,XCHAR_P));
00302 E int FDECL(zapdir_to_glyph, (int,int,int));
00303 E int FDECL(glyph_at, (XCHAR_P,XCHAR_P));
00304 E void NDECL(set_wall_state);
00305
00306
00307
00308 #ifdef USE_TRAMPOLI
00309 E int FDECL(drop, (struct obj *));
00310 E int NDECL(wipeoff);
00311 #endif
00312 E int NDECL(dodrop);
00313 E boolean FDECL(boulder_hits_pool, (struct obj *,int,int,BOOLEAN_P));
00314 E boolean FDECL(flooreffects, (struct obj *,int,int,const char *));
00315 E void FDECL(doaltarobj, (struct obj *));
00316 E boolean FDECL(canletgo, (struct obj *,const char *));
00317 E void FDECL(dropx, (struct obj *));
00318 E void FDECL(dropy, (struct obj *));
00319 E void FDECL(obj_no_longer_held, (struct obj *));
00320 E int NDECL(doddrop);
00321 E int NDECL(dodown);
00322 E int NDECL(doup);
00323 #ifdef INSURANCE
00324 E void NDECL(save_currentstate);
00325 #endif
00326 E void FDECL(goto_level, (d_level *,BOOLEAN_P,BOOLEAN_P,BOOLEAN_P));
00327 E void FDECL(schedule_goto, (d_level *,BOOLEAN_P,BOOLEAN_P,int,
00328 const char *,const char *));
00329 E void NDECL(deferred_goto);
00330 E boolean FDECL(revive_corpse, (struct obj *));
00331 E void FDECL(revive_mon, (genericptr_t, long));
00332 E int NDECL(donull);
00333 E int NDECL(dowipe);
00334 E void FDECL(set_wounded_legs, (long,int));
00335 E void NDECL(heal_legs);
00336
00337
00338
00339 E int FDECL(getpos, (coord *,BOOLEAN_P,const char *));
00340 E struct monst *FDECL(christen_monst, (struct monst *,const char *));
00341 E int NDECL(do_mname);
00342 E struct obj *FDECL(oname, (struct obj *,const char *));
00343 E int NDECL(ddocall);
00344 E void FDECL(docall, (struct obj *));
00345 E const char *NDECL(rndghostname);
00346 E char *FDECL(x_monnam, (struct monst *,int,const char *,int,BOOLEAN_P));
00347 E char *FDECL(l_monnam, (struct monst *));
00348 E char *FDECL(mon_nam, (struct monst *));
00349 E char *FDECL(noit_mon_nam, (struct monst *));
00350 E char *FDECL(Monnam, (struct monst *));
00351 E char *FDECL(noit_Monnam, (struct monst *));
00352 E char *FDECL(m_monnam, (struct monst *));
00353 E char *FDECL(y_monnam, (struct monst *));
00354 E char *FDECL(Adjmonnam, (struct monst *,const char *));
00355 E char *FDECL(Amonnam, (struct monst *));
00356 E char *FDECL(a_monnam, (struct monst *));
00357 E char *FDECL(distant_monnam, (struct monst *,int,char *));
00358 E const char *NDECL(rndmonnam);
00359 E const char *FDECL(hcolor, (const char *));
00360 E const char *NDECL(rndcolor);
00361 #ifdef REINCARNATION
00362 E const char *NDECL(roguename);
00363 #endif
00364 E struct obj *FDECL(realloc_obj,
00365 (struct obj *, int, genericptr_t, int, const char *));
00366 E char *FDECL(coyotename, (struct monst *,char *));
00367
00368
00369
00370 #ifdef USE_TRAMPOLI
00371 E int NDECL(Armor_on);
00372 E int NDECL(Boots_on);
00373 E int NDECL(Gloves_on);
00374 E int NDECL(Helmet_on);
00375 E int FDECL(select_off, (struct obj *));
00376 E int NDECL(take_off);
00377 #endif
00378 E void FDECL(off_msg, (struct obj *));
00379 E void NDECL(set_wear);
00380 E boolean FDECL(donning, (struct obj *));
00381 E void NDECL(cancel_don);
00382 E int NDECL(Armor_off);
00383 E int NDECL(Armor_gone);
00384 E int NDECL(Helmet_off);
00385 E int NDECL(Gloves_off);
00386 E int NDECL(Boots_off);
00387 E int NDECL(Cloak_off);
00388 E int NDECL(Shield_off);
00389 #ifdef TOURIST
00390 E int NDECL(Shirt_off);
00391 #endif
00392 E void NDECL(Amulet_off);
00393 E void FDECL(Ring_on, (struct obj *));
00394 E void FDECL(Ring_off, (struct obj *));
00395 E void FDECL(Ring_gone, (struct obj *));
00396 E void FDECL(Blindf_on, (struct obj *));
00397 E void FDECL(Blindf_off, (struct obj *));
00398 E int NDECL(dotakeoff);
00399 E int NDECL(doremring);
00400 E int FDECL(cursed, (struct obj *));
00401 E int FDECL(armoroff, (struct obj *));
00402 E int FDECL(canwearobj, (struct obj *, long *, BOOLEAN_P));
00403 E int NDECL(dowear);
00404 E int NDECL(doputon);
00405 E void NDECL(find_ac);
00406 E void NDECL(glibr);
00407 E struct obj *FDECL(some_armor,(struct monst *));
00408 E void FDECL(erode_armor, (struct monst *,BOOLEAN_P));
00409 E struct obj *FDECL(stuck_ring, (struct obj *,int));
00410 E struct obj *NDECL(unchanger);
00411 E void NDECL(reset_remarm);
00412 E int NDECL(doddoremarm);
00413 E int FDECL(destroy_arm, (struct obj *));
00414 E void FDECL(adj_abon, (struct obj *,SCHAR_P));
00415
00416
00417
00418 E void FDECL(initedog, (struct monst *));
00419 E struct monst *FDECL(make_familiar, (struct obj *,XCHAR_P,XCHAR_P,BOOLEAN_P));
00420 E struct monst *NDECL(makedog);
00421 E void NDECL(update_mlstmv);
00422 E void NDECL(losedogs);
00423 E void FDECL(mon_arrive, (struct monst *,BOOLEAN_P));
00424 E void FDECL(mon_catchup_elapsed_time, (struct monst *,long));
00425 E void FDECL(keepdogs, (BOOLEAN_P));
00426 E void FDECL(migrate_to_level, (struct monst *,XCHAR_P,XCHAR_P,coord *));
00427 E int FDECL(dogfood, (struct monst *,struct obj *));
00428 E struct monst *FDECL(tamedog, (struct monst *,struct obj *));
00429 E void FDECL(abuse_dog, (struct monst *));
00430 E void FDECL(wary_dog, (struct monst *, BOOLEAN_P));
00431
00432
00433
00434 E int FDECL(dog_nutrition, (struct monst *,struct obj *));
00435 E int FDECL(dog_eat, (struct monst *,struct obj *,int,int,BOOLEAN_P));
00436 E int FDECL(dog_move, (struct monst *,int));
00437 #ifdef USE_TRAMPOLI
00438 E void FDECL(wantdoor, (int,int,genericptr_t));
00439 #endif
00440
00441
00442
00443 E boolean FDECL(ghitm, (struct monst *,struct obj *));
00444 E void FDECL(container_impact_dmg, (struct obj *));
00445 E int NDECL(dokick);
00446 E boolean FDECL(ship_object, (struct obj *,XCHAR_P,XCHAR_P,BOOLEAN_P));
00447 E void NDECL(obj_delivery);
00448 E schar FDECL(down_gate, (XCHAR_P,XCHAR_P));
00449 E void FDECL(impact_drop, (struct obj *,XCHAR_P,XCHAR_P,XCHAR_P));
00450
00451
00452
00453 E int NDECL(dothrow);
00454 E int NDECL(dofire);
00455 E void FDECL(hitfloor, (struct obj *));
00456 E void FDECL(hurtle, (int,int,int,BOOLEAN_P));
00457 E void FDECL(mhurtle, (struct monst *,int,int,int));
00458 E void FDECL(throwit, (struct obj *,long,BOOLEAN_P));
00459 E int FDECL(omon_adj, (struct monst *,struct obj *,BOOLEAN_P));
00460 E int FDECL(thitmonst, (struct monst *,struct obj *));
00461 E int FDECL(hero_breaks, (struct obj *,XCHAR_P,XCHAR_P,BOOLEAN_P));
00462 E int FDECL(breaks, (struct obj *,XCHAR_P,XCHAR_P));
00463 E boolean FDECL(breaktest, (struct obj *));
00464 E boolean FDECL(walk_path, (coord *, coord *, boolean (*)(genericptr_t,int,int), genericptr_t));
00465 E boolean FDECL(hurtle_step, (genericptr_t, int, int));
00466
00467
00468 #endif
00469 E int FDECL(def_char_to_objclass, (CHAR_P));
00470 E int FDECL(def_char_to_monclass, (CHAR_P));
00471 #if !defined(MAKEDEFS_C) && !defined(LEV_LEX_C)
00472 E void FDECL(assign_graphics, (uchar *,int,int,int));
00473 E void FDECL(switch_graphics, (int));
00474 #ifdef REINCARNATION
00475 E void FDECL(assign_rogue_graphics, (BOOLEAN_P));
00476 #endif
00477
00478
00479
00480 E void FDECL(dump, (const char *, const char *));
00481 E void NDECL(dump_blockquote_start);
00482 E void NDECL(dump_blockquote_end);
00483 E void FDECL(dump_text, (const char *, const char *));
00484 E void FDECL(dump_header_html, (const char *));
00485 E void FDECL(dump_html, (const char *, const char *));
00486 E void NDECL(dump_init);
00487 E void NDECL(dump_exit);
00488 E void FDECL(dump_object, (const char, const char *));
00489 E void FDECL(dump_title, (char *));
00490 E void FDECL(dump_subtitle, (const char *));
00491 E void FDECL(dump_line, (const char *, const char *));
00492 E void NDECL(dump_list_start);
00493 E void FDECL(dump_list_item, (const char *));
00494 E void NDECL(dump_list_end);
00495 E void NDECL(dump_definition_list_start);
00496 E void FDECL(dump_definition_list_dd, (const char *));
00497 E void FDECL(dump_definition_list_dt, (const char *));
00498 E void NDECL(dump_definition_list_end);
00499 E void FDECL(dump_containerconts, (struct obj *,BOOLEAN_P,BOOLEAN_P,BOOLEAN_P));
00500 E char* FDECL(html_escape_character, (const char));
00501 #ifdef DUMP_LOG
00502 E int NDECL(dump_screenshot);
00503 #endif
00504
00505
00506
00507 E void FDECL(save_dungeon, (int,BOOLEAN_P,BOOLEAN_P));
00508 E void FDECL(restore_dungeon, (int));
00509 E void FDECL(insert_branch, (branch *,BOOLEAN_P));
00510 E void NDECL(init_dungeons);
00511 E s_level *FDECL(find_level, (const char *));
00512 E s_level *FDECL(Is_special, (d_level *));
00513 #ifdef RANDOMIZED_PLANES
00514 E s_level *FDECL(get_next_elemental_plane, (d_level *));
00515 E d_level *NDECL(get_first_elemental_plane);
00516 #endif
00517 E branch *FDECL(Is_branchlev, (d_level *));
00518 E xchar FDECL(ledger_no, (d_level *));
00519 E xchar NDECL(maxledgerno);
00520 E schar FDECL(depth, (d_level *));
00521 E xchar FDECL(dunlev, (d_level *));
00522 E xchar FDECL(dunlevs_in_dungeon, (d_level *));
00523 E xchar FDECL(ledger_to_dnum, (XCHAR_P));
00524 E xchar FDECL(ledger_to_dlev, (XCHAR_P));
00525 E xchar FDECL(deepest_lev_reached, (BOOLEAN_P));
00526 E boolean FDECL(on_level, (d_level *,d_level *));
00527 E void FDECL(next_level, (BOOLEAN_P));
00528 E void FDECL(prev_level, (BOOLEAN_P));
00529 E void FDECL(u_on_newpos, (int,int));
00530 E void NDECL(u_on_sstairs);
00531 E void NDECL(u_on_upstairs);
00532 E void NDECL(u_on_dnstairs);
00533 E boolean FDECL(On_stairs, (XCHAR_P,XCHAR_P));
00534 E void FDECL(get_level, (d_level *,int));
00535 E boolean FDECL(Is_botlevel, (d_level *));
00536 E boolean FDECL(Can_fall_thru, (d_level *));
00537 E boolean FDECL(Can_dig_down, (d_level *));
00538 E boolean FDECL(Can_rise_up, (int,int,d_level *));
00539 E boolean FDECL(In_quest, (d_level *));
00540 E boolean FDECL(In_mines, (d_level *));
00541 E branch *FDECL(dungeon_branch, (const char *));
00542 E boolean FDECL(at_dgn_entrance, (const char *));
00543 E boolean FDECL(In_hell, (d_level *));
00544 E boolean FDECL(In_V_tower, (d_level *));
00545 E boolean FDECL(On_W_tower_level, (d_level *));
00546 E boolean FDECL(In_W_tower, (int,int,d_level *));
00547 E void FDECL(find_hell, (d_level *));
00548 E void FDECL(goto_hell, (BOOLEAN_P,BOOLEAN_P));
00549 E void FDECL(assign_level, (d_level *,d_level *));
00550 E void FDECL(assign_rnd_level, (d_level *,d_level *,int));
00551 E int FDECL(induced_align, (int));
00552 E boolean FDECL(Invocation_lev, (d_level *));
00553 E xchar NDECL(level_difficulty);
00554 E schar FDECL(lev_by_name, (const char *));
00555 #ifdef WIZARD
00556 E schar FDECL(print_dungeon, (BOOLEAN_P,schar *,xchar *));
00557 #endif
00558 E int NDECL(donamelevel);
00559 E int NDECL(dooverview);
00560 E void FDECL(forget_mapseen, (int));
00561 E void FDECL(init_mapseen, (d_level *));
00562 E void NDECL(recalc_mapseen);
00563 E void FDECL(recbranch_mapseen, (d_level *, d_level *));
00564 E void FDECL(remdun_mapseen, (int));
00565
00566
00567
00568 #ifdef USE_TRAMPOLI
00569 E int NDECL(eatmdone);
00570 E int NDECL(eatfood);
00571 E int NDECL(opentin);
00572 E int NDECL(unfaint);
00573 #endif
00574 E boolean FDECL(is_edible, (struct obj *));
00575 E void NDECL(init_uhunger);
00576 E int NDECL(Hear_again);
00577 E void NDECL(reset_eat);
00578 E int NDECL(doeat);
00579 E void NDECL(gethungry);
00580 E void FDECL(morehungry, (int));
00581 E void FDECL(lesshungry, (int));
00582 E boolean NDECL(is_fainted);
00583 E void NDECL(reset_faint);
00584 E void NDECL(violated_vegetarian);
00585 #if 0
00586 E void NDECL(sync_hunger);
00587 #endif
00588 E void FDECL(newuhs, (BOOLEAN_P));
00589 E struct obj *FDECL(floorfood, (const char *,int));
00590 E void NDECL(vomit);
00591 E int FDECL(eaten_stat, (int,struct obj *));
00592 E void FDECL(food_disappears, (struct obj *));
00593 E void FDECL(food_substitution, (struct obj *,struct obj *));
00594 E boolean FDECL(bite_monster, (struct monst *mon));
00595 E void NDECL(fix_petrification);
00596 E void FDECL(consume_oeaten, (struct obj *,int));
00597 E boolean FDECL(maybe_finished_meal, (BOOLEAN_P));
00598
00599
00600
00601 E void FDECL(done1, (int));
00602 E int NDECL(done2);
00603 #ifdef USE_TRAMPOLI
00604 E void FDECL(done_intr, (int));
00605 #endif
00606 E void FDECL(done_in_by, (struct monst *));
00607 #endif
00608 E void VDECL(panic, (const char *,...)) PRINTF_F(1,2);
00609 #if !defined(MAKEDEFS_C) && !defined(LEV_LEX_C)
00610 E void FDECL(done, (int));
00611 E void FDECL(container_contents, (struct obj *,BOOLEAN_P,BOOLEAN_P,BOOLEAN_P));
00612 E void FDECL(terminate, (int));
00613 E int NDECL(num_genocides);
00614
00615
00616
00617 E char *FDECL(random_engraving, (char *));
00618 E void FDECL(wipeout_text, (char *,int,unsigned));
00619 E boolean NDECL(can_reach_floor);
00620 E const char *FDECL(surface, (int,int));
00621 E const char *FDECL(ceiling, (int,int));
00622 E struct engr *FDECL(engr_at, (XCHAR_P,XCHAR_P));
00623 #ifdef ELBERETH
00624 E int FDECL(sengr_at, (const char *,XCHAR_P,XCHAR_P));
00625 #endif
00626 E void FDECL(u_wipe_engr, (int));
00627 E void FDECL(wipe_engr_at, (XCHAR_P,XCHAR_P,XCHAR_P));
00628 E void FDECL(read_engr_at, (int,int));
00629 E void FDECL(make_engr_at, (int,int,const char *,long,XCHAR_P));
00630 E void FDECL(del_engr_at, (int,int));
00631 E int NDECL(freehand);
00632 E int NDECL(doengrave);
00633 E int NDECL(doengrave_elbereth);
00634 E void FDECL(save_engravings, (int,int));
00635 E void FDECL(rest_engravings, (int));
00636 E void FDECL(del_engr, (struct engr *));
00637 E void FDECL(rloc_engr, (struct engr *));
00638 E void FDECL(make_grave, (int,int,const char *));
00639
00640
00641
00642 E int FDECL(experience, (struct monst *,int));
00643 E void FDECL(more_experienced, (int,int,int));
00644 E void FDECL(losexp, (const char *));
00645 E void NDECL(newexplevel);
00646 E void FDECL(pluslvl, (BOOLEAN_P));
00647 E long FDECL(rndexp, (BOOLEAN_P));
00648
00649
00650
00651 E void FDECL(explode, (int,int,int,int,CHAR_P,int));
00652 E long FDECL(scatter, (int, int, int, unsigned int, struct obj *));
00653 E void FDECL(splatter_burning_oil, (int, int));
00654
00655
00656
00657 #ifdef REINCARNATION
00658 E void NDECL(makeroguerooms);
00659 E void FDECL(corr, (int,int));
00660 E void NDECL(makerogueghost);
00661 #endif
00662
00663
00664
00665 E char *FDECL(fname_encode, (const char *, CHAR_P, char *, char *, int));
00666 E char *FDECL(fname_decode, (CHAR_P, char *, char *, int));
00667 E const char *FDECL(fqname, (const char *, int, int));
00668 E FILE *FDECL(fopen_datafile, (const char *,const char *,int));
00669 E boolean FDECL(uptodate, (int,const char *));
00670 E void FDECL(store_version, (int));
00671 #ifdef MFLOPPY
00672 E void NDECL(set_lock_and_bones);
00673 #endif
00674 E void FDECL(set_levelfile_name, (char *,int));
00675 E int FDECL(create_levelfile, (int,char *));
00676 E int FDECL(open_levelfile, (int,char *));
00677 E void FDECL(delete_levelfile, (int));
00678 E void NDECL(clearlocks);
00679 E int FDECL(create_bonesfile, (d_level*,char **, char *));
00680 #ifdef MFLOPPY
00681 E void NDECL(cancel_bonesfile);
00682 #endif
00683 E void FDECL(commit_bonesfile, (d_level *));
00684 E int FDECL(open_bonesfile, (d_level*,char **));
00685 E int FDECL(delete_bonesfile, (d_level*));
00686 E void NDECL(compress_bonesfile);
00687 E void NDECL(set_savefile_name);
00688 #ifdef INSURANCE
00689 E void FDECL(save_savefile_name, (int));
00690 #endif
00691 #if defined(WIZARD) && !defined(MICRO)
00692 E void NDECL(set_error_savefile);
00693 #endif
00694 E int NDECL(create_savefile);
00695 E int NDECL(open_savefile);
00696 E int NDECL(delete_savefile);
00697 E int NDECL(restore_saved_game);
00698 E void FDECL(compress, (const char *));
00699 E void FDECL(uncompress, (const char *));
00700 E boolean FDECL(lock_file, (const char *,int,int));
00701 E void FDECL(unlock_file, (const char *));
00702 #ifdef USER_SOUNDS
00703 E boolean FDECL(can_read_file, (const char *));
00704 #endif
00705 E void FDECL(read_config_file, (const char *));
00706 E void FDECL(check_recordfile, (const char *));
00707 #if defined(WIZARD)
00708 E void NDECL(read_wizkit);
00709 #endif
00710 E void FDECL(paniclog, (const char *, const char *));
00711 E int FDECL(validate_prefix_locations, (char *));
00712 E char** NDECL(get_saved_games);
00713 E void FDECL(free_saved_games, (char**));
00714 #ifdef SELF_RECOVER
00715 E boolean NDECL(recover_savefile);
00716 #endif
00717 #ifdef HOLD_LOCKFILE_OPEN
00718 E void NDECL(really_close);
00719 #endif
00720 #ifdef WHEREIS_FILE
00721 E void NDECL(touch_whereis);
00722 E void NDECL(delete_whereis);
00723 E void FDECL(signal_whereis, (int));
00724 #endif
00725
00726
00727
00728 E void FDECL(floating_above, (const char *));
00729 E void FDECL(dogushforth, (int));
00730 # ifdef USE_TRAMPOLI
00731 E void FDECL(gush, (int,int,genericptr_t));
00732 # endif
00733 E void FDECL(dryup, (XCHAR_P,XCHAR_P, BOOLEAN_P));
00734 E void NDECL(drinkfountain);
00735 E void FDECL(dipfountain, (struct obj *));
00736 #ifdef SINKS
00737 E void FDECL(breaksink, (int,int));
00738 E void NDECL(drinksink);
00739 #endif
00740
00741
00742
00743 #ifdef DUNGEON_GROWTH
00744 E void FDECL(catchup_dgn_growths, (int));
00745 E void FDECL(dgn_growths, (BOOLEAN_P,BOOLEAN_P));
00746 #endif
00747 E boolean FDECL(revive_nasty, (int,int,const char*));
00748 E void FDECL(movobj, (struct obj *,XCHAR_P,XCHAR_P));
00749 E boolean FDECL(may_dig, (XCHAR_P,XCHAR_P));
00750 E boolean FDECL(may_passwall, (XCHAR_P,XCHAR_P));
00751 E boolean FDECL(bad_rock, (struct permonst *,XCHAR_P,XCHAR_P));
00752 E boolean FDECL(invocation_pos, (XCHAR_P,XCHAR_P));
00753 E boolean FDECL(test_move, (int, int, int, int, int));
00754 E void NDECL(domove);
00755 E void NDECL(invocation_message);
00756 E void FDECL(spoteffects, (BOOLEAN_P));
00757 E char *FDECL(in_rooms, (XCHAR_P,XCHAR_P,int));
00758 E boolean FDECL(in_town, (int,int));
00759 E void FDECL(check_special_room, (BOOLEAN_P));
00760 E int NDECL(dopickup);
00761 E void NDECL(lookaround);
00762 E int NDECL(monster_nearby);
00763 E void FDECL(nomul, (int, const char *));
00764 E void FDECL(unmul, (const char *));
00765 E void FDECL(showdmg, (int, BOOLEAN_P));
00766 E void FDECL(losehp, (int,const char *,BOOLEAN_P));
00767 E void FDECL(losehp_how, (int,const char *,BOOLEAN_P,int));
00768 E int NDECL(weight_cap);
00769 E int NDECL(inv_weight);
00770 E int NDECL(near_capacity);
00771 E int FDECL(calc_capacity, (int));
00772 E int NDECL(max_capacity);
00773 E boolean FDECL(check_capacity, (const char *));
00774 E int NDECL(inv_cnt);
00775 #ifdef GOLDOBJ
00776 E long FDECL(money_cnt, (struct obj *));
00777 #endif
00778
00779
00780
00781 E boolean FDECL(digit, (CHAR_P));
00782 E boolean FDECL(letter, (CHAR_P));
00783 E char FDECL(highc, (CHAR_P));
00784 E char FDECL(lowc, (CHAR_P));
00785 E char *FDECL(lcase, (char *));
00786 E char *FDECL(upstart, (char *));
00787 E char *FDECL(mungspaces, (char *));
00788 E char *FDECL(eos, (char *));
00789 E char *FDECL(strkitten, (char *,CHAR_P));
00790 E char *FDECL(s_suffix, (const char *));
00791 E char *FDECL(xcrypt, (const char *,char *));
00792 E boolean FDECL(onlyspace, (const char *));
00793 E char *FDECL(tabexpand, (char *));
00794 E char *FDECL(visctrl, (CHAR_P));
00795 E const char *FDECL(ordin, (int));
00796 E char *FDECL(sitoa, (int));
00797 E int FDECL(sgn, (int));
00798 E int FDECL(rounddiv, (long,int));
00799 E int FDECL(dist2, (int,int,int,int));
00800 E int FDECL(distmin, (int,int,int,int));
00801 E boolean FDECL(online2, (int,int,int,int));
00802 E boolean FDECL(pmatch, (const char *,const char *));
00803 #ifndef STRNCMPI
00804 E int FDECL(strncmpi, (const char *,const char *,int));
00805 #endif
00806 #ifndef STRSTRI
00807 E char *FDECL(strstri, (const char *,const char *));
00808 #endif
00809 E boolean FDECL(fuzzymatch, (const char *,const char *,const char *,BOOLEAN_P));
00810 E void NDECL(setrandom);
00811 E int NDECL(getyear);
00812 E int NDECL(getmonth);
00813 E int NDECL(getmday);
00814 #if 0
00815 E char *FDECL(yymmdd, (time_t));
00816 #endif
00817 E long FDECL(yyyymmdd, (time_t));
00818 E int NDECL(phase_of_the_moon);
00819 E boolean NDECL(friday_13th);
00820 E boolean NDECL(towelday);
00821 E int NDECL(night);
00822 E int NDECL(midnight);
00823 E boolean NDECL(piday);
00824 E char *FDECL(iso8601, (time_t));
00825 E char *FDECL(iso8601_duration, (long));
00826 E char *FDECL(get_formatted_time, (time_t, const char *));
00827 E time_t NDECL(current_epoch);
00828
00829
00830
00831 E void FDECL(assigninvlet, (struct obj *));
00832 E struct obj *FDECL(merge_choice, (struct obj *,struct obj *));
00833 E int FDECL(merged, (struct obj **,struct obj **));
00834 #ifdef USE_TRAMPOLI
00835 E int FDECL(ckunpaid, (struct obj *));
00836 #endif
00837 E void FDECL(addinv_core1, (struct obj *));
00838 E void FDECL(addinv_core2, (struct obj *));
00839 E struct obj *FDECL(addinv, (struct obj *));
00840 E struct obj *FDECL(hold_another_object,
00841 (struct obj *,const char *,const char *,const char *));
00842 E void FDECL(useupall, (struct obj *));
00843 E void FDECL(useup, (struct obj *));
00844 E void FDECL(consume_obj_charge, (struct obj *,BOOLEAN_P));
00845 E void FDECL(freeinv_core, (struct obj *));
00846 E void FDECL(freeinv, (struct obj *));
00847 E void FDECL(delallobj, (int,int));
00848 E void FDECL(delobj, (struct obj *));
00849 E struct obj *FDECL(sobj_at, (int,int,int));
00850 E struct obj *FDECL(carrying, (int));
00851 E boolean NDECL(have_lizard);
00852 E struct obj *FDECL(o_on, (unsigned int,struct obj *));
00853 E boolean FDECL(obj_here, (struct obj *,int,int));
00854 E boolean NDECL(wearing_armor);
00855 E boolean FDECL(is_worn, (struct obj *));
00856 E struct obj *FDECL(g_at, (int,int));
00857 E struct obj *FDECL(mkgoldobj, (long));
00858 E struct obj *FDECL(getobj, (const char *,const char *));
00859 E int FDECL(ggetobj, (const char *,int (*)(OBJ_P),int,BOOLEAN_P,unsigned *));
00860 E void FDECL(fully_identify_obj, (struct obj *));
00861 E int FDECL(identify, (struct obj *));
00862 E void FDECL(identify_pack, (int));
00863 E int FDECL(askchain, (struct obj **,const char *,int,int (*)(OBJ_P),
00864 int (*)(OBJ_P),int,const char *));
00865 E void FDECL(prinv, (const char *,struct obj *,long));
00866 E char *FDECL(xprname, (struct obj *,const char *,CHAR_P,BOOLEAN_P,long,long));
00867 E int NDECL(ddoinv);
00868 E char FDECL(display_inventory, (const char *,BOOLEAN_P));
00869 E char FDECL(dump_inventory, (const char *,BOOLEAN_P,BOOLEAN_P));
00870 E int FDECL(display_binventory, (int,int,BOOLEAN_P));
00871 E struct obj *FDECL(display_cinventory,(struct obj *));
00872 E struct obj *FDECL(display_minventory,(struct monst *,int,char *));
00873 E int NDECL(dotypeinv);
00874 E const char *FDECL(dfeature_at, (int,int,char *));
00875 E int FDECL(look_here, (int,BOOLEAN_P));
00876 E int NDECL(dolook);
00877 E boolean FDECL(will_feel_cockatrice, (struct obj *,BOOLEAN_P));
00878 E void FDECL(feel_cockatrice, (struct obj *,BOOLEAN_P));
00879 E void FDECL(stackobj, (struct obj *));
00880 E int NDECL(doprgold);
00881 E int NDECL(doprwep);
00882 E int NDECL(doprarm);
00883 E int NDECL(doprring);
00884 E int NDECL(dopramulet);
00885 E int NDECL(doprtool);
00886 E int NDECL(doprinuse);
00887 E void FDECL(useupf, (struct obj *,long));
00888 E char *FDECL(let_to_name, (CHAR_P,BOOLEAN_P));
00889 E void NDECL(free_invbuf);
00890 E void NDECL(reassign);
00891 E int NDECL(doorganize);
00892 E int FDECL(count_objects, (struct obj *));
00893 E int FDECL(count_unidentified, (struct obj *));
00894 E int FDECL(count_unpaid, (struct obj *));
00895 E int FDECL(count_buc, (struct obj *,int));
00896 E void FDECL(carry_obj_effects, (struct obj *));
00897 E const char *FDECL(currency, (long));
00898 E void FDECL(silly_thing, (const char *,struct obj *));
00899
00900
00901
00902 #if defined(UNIX) || defined(__BEOS__)
00903 E void NDECL(getwindowsz);
00904 E void NDECL(getioctls);
00905 E void NDECL(setioctls);
00906 # ifdef SUSPEND
00907 E int NDECL(dosuspend);
00908 # endif
00909 #endif
00910
00911
00912
00913 E void FDECL(new_light_source, (XCHAR_P, XCHAR_P, int, int, genericptr_t));
00914 E void FDECL(del_light_source, (int, genericptr_t));
00915 E void FDECL(do_light_sources, (char **));
00916 E struct monst *FDECL(find_mid, (unsigned, unsigned));
00917 E void FDECL(save_light_sources, (int, int, int));
00918 E void FDECL(restore_light_sources, (int));
00919 E void FDECL(relink_light_sources, (BOOLEAN_P));
00920 E void FDECL(obj_move_light_source, (struct obj *, struct obj *));
00921 E boolean NDECL(any_light_source);
00922 E void FDECL(snuff_light_source, (int, int));
00923 E boolean FDECL(obj_sheds_light, (struct obj *));
00924 E boolean FDECL(obj_is_burning, (struct obj *));
00925 E void FDECL(obj_split_light_source, (struct obj *, struct obj *));
00926 E void FDECL(obj_merge_light_sources, (struct obj *,struct obj *));
00927 E int FDECL(candle_light_range, (struct obj *));
00928 #ifdef WIZARD
00929 E int NDECL(wiz_light_sources);
00930 #endif
00931
00932
00933
00934 #ifdef USE_TRAMPOLI
00935 E int NDECL(forcelock);
00936 E int NDECL(picklock);
00937 #endif
00938 E boolean FDECL(picking_lock, (int *,int *));
00939 E boolean FDECL(picking_at, (int,int));
00940 E void NDECL(reset_pick);
00941 E int FDECL(pick_lock, (struct obj *,int,int));
00942 E int NDECL(doforce);
00943 E boolean FDECL(boxlock, (struct obj *,struct obj *));
00944 E boolean FDECL(doorlock, (struct obj *,int,int));
00945 E int NDECL(doopen);
00946 E int NDECL(doclose);
00947 #ifdef AUTO_OPEN
00948 E int FDECL(doopen_indir,(int,int));
00949 #endif
00950
00951 #ifdef MAC
00952
00953
00954
00955
00956 E int FDECL(maccreat, (const char *,long));
00957 E int FDECL(macopen, (const char *,int,long));
00958 E int FDECL(macclose, (int));
00959 E int FDECL(macread, (int,void *,unsigned));
00960 E int FDECL(macwrite, (int,void *,unsigned));
00961 E long FDECL(macseek, (int,long,short));
00962 E int FDECL(macunlink, (const char *));
00963
00964
00965
00966 E void FDECL(mac_speaker, (struct obj *,char *));
00967
00968
00969
00970 E void FDECL(regularize, (char *));
00971 E void NDECL(getlock);
00972
00973
00974
00975 E void FDECL(lock_mouse_cursor, (Boolean));
00976 E int NDECL(SanePositions);
00977
00978
00979
00980 E void FDECL(getreturn, (char *));
00981 E void VDECL(msmsg, (const char *,...));
00982 E void NDECL(gettty);
00983 E void NDECL(setftty);
00984 E void FDECL(settty, (const char *));
00985 E int NDECL(tgetch);
00986 E void FDECL(cmov, (int x, int y));
00987 E void FDECL(nocmov, (int x, int y));
00988
00989 #endif
00990
00991
00992
00993 #ifdef MAIL
00994 # ifdef UNIX
00995 E void NDECL(getmailstatus);
00996 # endif
00997 E void NDECL(ckmailstatus);
00998 E void FDECL(readmail, (struct obj *));
00999 #endif
01000
01001
01002
01003 E boolean FDECL(is_home_elemental, (struct permonst *));
01004 E struct monst *FDECL(clone_mon, (struct monst *,XCHAR_P,XCHAR_P));
01005 E struct monst *FDECL(makemon, (struct permonst *,int,int,int));
01006 E boolean FDECL(create_critters, (int,struct permonst *));
01007 E struct permonst *NDECL(rndmonst);
01008 E void FDECL(reset_rndmonst, (int));
01009 E struct permonst *FDECL(mkclass, (CHAR_P,int));
01010 E int FDECL(adj_lev, (struct permonst *));
01011 E struct permonst *FDECL(grow_up, (struct monst *,struct monst *));
01012 E int FDECL(mongets, (struct monst *,int));
01013 E int FDECL(golemhp, (int));
01014 E boolean FDECL(peace_minded, (struct permonst *));
01015 E void FDECL(set_malign, (struct monst *));
01016 E void FDECL(set_mimic_sym, (struct monst *));
01017 E int FDECL(mbirth_limit, (int));
01018 E void FDECL(mimic_hit_msg, (struct monst *, SHORT_P));
01019 #ifdef GOLDOBJ
01020 E void FDECL(mkmonmoney, (struct monst *, long));
01021 #endif
01022 E int FDECL(bagotricks, (struct obj *));
01023 E boolean FDECL(propagate, (int, BOOLEAN_P,BOOLEAN_P));
01024 E void FDECL(create_camera_demon, (struct obj *,int,int));
01025 E int NDECL(min_monster_difficulty);
01026 E int NDECL(max_monster_difficulty);
01027
01028
01029
01030 E void FDECL(mapglyph, (int, int *, int *, unsigned *, int, int));
01031
01032
01033
01034 E int FDECL(castmu, (struct monst *,struct attack *,BOOLEAN_P,BOOLEAN_P));
01035 E int FDECL(buzzmu, (struct monst *,struct attack *));
01036
01037
01038
01039 E int FDECL(fightm, (struct monst *));
01040 E int FDECL(mattackm, (struct monst *,struct monst *));
01041 E int FDECL(noattacks, (struct permonst *));
01042 E int FDECL(sleep_monst, (struct monst *,int,int));
01043 E void FDECL(slept_monst, (struct monst *));
01044 E long FDECL(attk_protection, (int));
01045
01046
01047
01048 E const char *FDECL(mpoisons_subj, (struct monst *,struct attack *));
01049 E void NDECL(u_slow_down);
01050 E struct monst *NDECL(cloneu);
01051 E void FDECL(expels, (struct monst *,struct permonst *,BOOLEAN_P));
01052 E struct attack *FDECL(getmattk, (struct permonst *,int,int *,struct attack *));
01053 E int FDECL(mattacku, (struct monst *));
01054 E int FDECL(magic_negation, (struct monst *));
01055 E int FDECL(gazemu, (struct monst *,struct attack *));
01056 E void FDECL(mdamageu, (struct monst *,int));
01057 E int FDECL(could_seduce, (struct monst *,struct monst *,struct attack *));
01058 #ifdef SEDUCE
01059 E int FDECL(doseduce, (struct monst *));
01060 #endif
01061
01062
01063
01064 E void FDECL(msummon, (struct monst *));
01065 E void FDECL(summon_minion, (ALIGNTYP_P,BOOLEAN_P));
01066 E int FDECL(demon_talk, (struct monst *));
01067 E long FDECL(bribe, (struct monst *));
01068 E int FDECL(dprince, (ALIGNTYP_P));
01069 E int FDECL(dlord, (ALIGNTYP_P));
01070 E int NDECL(llord);
01071 E int FDECL(ndemon, (ALIGNTYP_P));
01072 E int NDECL(lminion);
01073
01074
01075
01076 #ifdef USE_TRAMPOLI
01077 E int FDECL(do_comp, (genericptr_t,genericptr_t));
01078 #endif
01079 E void NDECL(sort_rooms);
01080 E void FDECL(add_room, (int,int,int,int,BOOLEAN_P,SCHAR_P,BOOLEAN_P));
01081 E void FDECL(add_subroom, (struct mkroom *,int,int,int,int,
01082 BOOLEAN_P,SCHAR_P,BOOLEAN_P));
01083 E void FDECL(makecorridors, (int));
01084 E void FDECL(add_door, (int,int,struct mkroom *));
01085 E void NDECL(mkpoolroom);
01086 E void NDECL(mklev);
01087 #ifdef SPECIALIZATION
01088 E void FDECL(topologize, (struct mkroom *,BOOLEAN_P));
01089 #else
01090 E void FDECL(topologize, (struct mkroom *));
01091 #endif
01092 E void FDECL(place_branch, (branch *,XCHAR_P,XCHAR_P));
01093 E boolean FDECL(occupied, (XCHAR_P,XCHAR_P));
01094 E int FDECL(okdoor, (XCHAR_P,XCHAR_P));
01095 E void FDECL(dodoor, (int,int,struct mkroom *));
01096 E void FDECL(mktrap, (int,int,struct mkroom *,coord*));
01097 E void FDECL(mkstairs, (XCHAR_P,XCHAR_P,CHAR_P,struct mkroom *));
01098 E void NDECL(mkinvokearea);
01099 E void FDECL(wallwalk_right, (XCHAR_P,XCHAR_P,SCHAR_P,SCHAR_P,SCHAR_P,int));
01100
01101
01102
01103 void FDECL(flood_fill_rm, (int,int,int,BOOLEAN_P,BOOLEAN_P));
01104 void FDECL(remove_rooms, (int,int,int,int));
01105
01106
01107
01108 E void FDECL(wallification, (int,int,int,int));
01109 E void FDECL(wall_extends, (int,int,int,int));
01110 E void FDECL(walkfrom, (int,int, SCHAR_P));
01111 E void FDECL(makemaz, (const char *));
01112 E void FDECL(mazexy, (coord *));
01113 E void NDECL(bound_digging);
01114 E void FDECL(mkportal, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
01115 E boolean FDECL(bad_location, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
01116 E void FDECL(place_lregion, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P,
01117 XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P,
01118 XCHAR_P,d_level *));
01119 E void NDECL(movebubbles);
01120 E void NDECL(water_friction);
01121 E void FDECL(save_waterlevel, (int,int));
01122 E void FDECL(restore_waterlevel, (int));
01123 E const char *FDECL(waterbody_name, (XCHAR_P,XCHAR_P));
01124
01125
01126
01127 E struct obj *FDECL(mkobj_at, (CHAR_P,int,int,BOOLEAN_P));
01128 E struct obj *FDECL(mksobj_at, (int,int,int,BOOLEAN_P,BOOLEAN_P));
01129 E struct obj *FDECL(mkobj, (CHAR_P,BOOLEAN_P));
01130 E int NDECL(rndmonnum);
01131 E struct obj *FDECL(splitobj, (struct obj *,long));
01132 E void FDECL(replace_object, (struct obj *,struct obj *));
01133 E void FDECL(bill_dummy_object, (struct obj *));
01134 E struct obj *FDECL(mksobj, (int,BOOLEAN_P,BOOLEAN_P));
01135 E int FDECL(bcsign, (struct obj *));
01136 E int FDECL(weight, (struct obj *));
01137 E struct obj *FDECL(mkgold, (long,int,int));
01138 E struct obj *FDECL(mkcorpstat,
01139 (int,struct monst *,struct permonst *,int,int,BOOLEAN_P));
01140 E struct obj *FDECL(obj_attach_mid, (struct obj *, unsigned));
01141 E struct monst *FDECL(get_mtraits, (struct obj *, BOOLEAN_P));
01142 E struct obj *FDECL(mk_tt_object, (int,int,int));
01143 E struct obj *FDECL(mk_named_object,
01144 (int,struct permonst *,int,int,const char *));
01145 E struct obj *FDECL(rnd_treefruit_at, (int, int));
01146 E void FDECL(start_corpse_timeout, (struct obj *));
01147 E void FDECL(bless, (struct obj *));
01148 E void FDECL(unbless, (struct obj *));
01149 E void FDECL(curse, (struct obj *));
01150 E void FDECL(uncurse, (struct obj *));
01151 E void FDECL(blessorcurse, (struct obj *,int));
01152 E boolean FDECL(is_flammable, (struct obj *));
01153 E boolean FDECL(is_rottable, (struct obj *));
01154 E void FDECL(place_object, (struct obj *,int,int));
01155 E void FDECL(remove_object, (struct obj *));
01156 E void FDECL(discard_minvent, (struct monst *));
01157 E void FDECL(obj_extract_self, (struct obj *));
01158 E void FDECL(extract_nobj, (struct obj *, struct obj **));
01159 E void FDECL(extract_nexthere, (struct obj *, struct obj **));
01160 E int FDECL(add_to_minv, (struct monst *, struct obj *));
01161 E struct obj *FDECL(add_to_container, (struct obj *, struct obj *));
01162 E void FDECL(add_to_migration, (struct obj *));
01163 E void FDECL(add_to_buried, (struct obj *));
01164 E void FDECL(dealloc_obj, (struct obj *));
01165 E void FDECL(obj_ice_effects, (int, int, BOOLEAN_P));
01166 E long FDECL(peek_at_iced_corpse_age, (struct obj *));
01167 #ifdef WIZARD
01168 E void NDECL(obj_sanity_check);
01169 #endif
01170
01171
01172
01173 E struct mkroom * FDECL(pick_room,(BOOLEAN_P));
01174 E void FDECL(mkroom, (int));
01175 E void FDECL(fill_zoo, (struct mkroom *));
01176 E boolean FDECL(nexttodoor, (int,int));
01177 E boolean FDECL(has_dnstairs, (struct mkroom *));
01178 E boolean FDECL(has_upstairs, (struct mkroom *));
01179 E int FDECL(somex, (struct mkroom *));
01180 E int FDECL(somey, (struct mkroom *));
01181 E boolean FDECL(inside_room, (struct mkroom *,XCHAR_P,XCHAR_P));
01182 E boolean FDECL(somexy, (struct mkroom *,coord *));
01183 E void FDECL(mkundead, (coord *,BOOLEAN_P,int));
01184 E struct permonst *NDECL(courtmon);
01185 E void FDECL(save_rooms, (int));
01186 E void FDECL(rest_rooms, (int));
01187 E struct mkroom *FDECL(search_special, (SCHAR_P));
01188
01189
01190
01191 E void FDECL(remove_monster, (int, int));
01192 E int FDECL(undead_to_corpse, (int));
01193 E int FDECL(genus, (int,int));
01194 E int FDECL(pm_to_cham, (int));
01195 E int FDECL(minliquid, (struct monst *));
01196 E int NDECL(movemon);
01197 E int FDECL(meatmetal, (struct monst *));
01198 E int FDECL(meatobj, (struct monst *));
01199 E void FDECL(mpickgold, (struct monst *));
01200 E boolean FDECL(mpickstuff, (struct monst *,const char *));
01201 E int FDECL(curr_mon_load, (struct monst *));
01202 E int FDECL(max_mon_load, (struct monst *));
01203 E boolean FDECL(can_carry, (struct monst *,struct obj *));
01204 E int FDECL(mfndpos, (struct monst *,coord *,long *,long));
01205 E boolean FDECL(monnear, (struct monst *,int,int));
01206 E void NDECL(dmonsfree);
01207 E int FDECL(mcalcmove, (struct monst*));
01208 E void NDECL(mcalcdistress);
01209 E void FDECL(replmon, (struct monst *,struct monst *));
01210 E void FDECL(relmon, (struct monst *));
01211 E struct obj *FDECL(mlifesaver, (struct monst *));
01212 E boolean FDECL(corpse_chance,(struct monst *,struct monst *,BOOLEAN_P));
01213 #ifdef WEBB_DISINT
01214 E void FDECL(mondead_helper, (struct monst *, uchar));
01215 #endif
01216 E void FDECL(mondead, (struct monst *));
01217 E void FDECL(mondied, (struct monst *));
01218 E void FDECL(mongone, (struct monst *));
01219 E void FDECL(monstone, (struct monst *));
01220 E void FDECL(monkilled, (struct monst *,const char *,int));
01221 E void FDECL(unstuck, (struct monst *));
01222 E void FDECL(killed, (struct monst *));
01223 E void FDECL(xkilled, (struct monst *,int));
01224 E void FDECL(mon_to_stone, (struct monst*));
01225 E void FDECL(mnexto, (struct monst *));
01226 E boolean FDECL(mnearto, (struct monst *,XCHAR_P,XCHAR_P,BOOLEAN_P));
01227 E void FDECL(poisontell, (int));
01228 E void FDECL(poisoned, (const char *,int,const char *,int));
01229 E void FDECL(m_respond, (struct monst *));
01230 E void FDECL(setmangry, (struct monst *));
01231 E void FDECL(wakeup, (struct monst *));
01232 E void NDECL(wake_nearby);
01233 E void FDECL(wake_nearto, (int,int,int));
01234 E void FDECL(seemimic, (struct monst *));
01235 E void NDECL(rescham);
01236 E void NDECL(restartcham);
01237 E void FDECL(restore_cham, (struct monst *));
01238 E void FDECL(mon_animal_list, (BOOLEAN_P));
01239 E int FDECL(newcham, (struct monst *,struct permonst *,BOOLEAN_P,BOOLEAN_P));
01240 E int FDECL(can_be_hatched, (int));
01241 E int FDECL(egg_type_from_parent, (int,BOOLEAN_P));
01242 E boolean FDECL(dead_species, (int,BOOLEAN_P));
01243 E void NDECL(kill_genocided_monsters);
01244 E void FDECL(kill_monster_on_level, (int));
01245 E void FDECL(golemeffects, (struct monst *,int,int));
01246 E boolean FDECL(angry_guards, (BOOLEAN_P));
01247 E void NDECL(pacify_guards);
01248
01249
01250
01251 E void FDECL(set_mon_data, (struct monst *,struct permonst *,int));
01252 E struct attack *FDECL(attacktype_fordmg, (struct permonst *,int,int));
01253 E boolean FDECL(attacktype, (struct permonst *,int));
01254 E boolean FDECL(poly_when_stoned, (struct permonst *));
01255 E boolean FDECL(resists_drli, (struct monst *));
01256 E boolean FDECL(resists_magm, (struct monst *));
01257 E boolean FDECL(resists_blnd, (struct monst *));
01258 E boolean FDECL(can_blnd, (struct monst *,struct monst *,UCHAR_P,struct obj *));
01259 E boolean FDECL(ranged_attk, (struct permonst *));
01260 E boolean FDECL(hates_silver, (struct permonst *));
01261 E boolean FDECL(passes_bars, (struct permonst *));
01262 E boolean FDECL(can_track, (struct permonst *));
01263 E boolean FDECL(breakarm, (struct permonst *));
01264 E boolean FDECL(sliparm, (struct permonst *));
01265 E boolean FDECL(sticks, (struct permonst *));
01266 E int FDECL(num_horns, (struct permonst *));
01267
01268 E struct attack *FDECL(dmgtype_fromattack, (struct permonst *,int,int));
01269 E boolean FDECL(dmgtype, (struct permonst *,int));
01270 E int FDECL(max_passive_dmg, (struct monst *,struct monst *));
01271 E int FDECL(monsndx, (struct permonst *));
01272 E int FDECL(name_to_mon, (const char *));
01273 E int FDECL(gender, (struct monst *));
01274 E int FDECL(pronoun_gender, (struct monst *));
01275 E boolean FDECL(levl_follower, (struct monst *));
01276 E int FDECL(little_to_big, (int));
01277 E int FDECL(big_to_little, (int));
01278 E const char *FDECL(locomotion, (const struct permonst *,const char *));
01279 E const char *FDECL(stagger, (const struct permonst *,const char *));
01280 E const char *FDECL(on_fire, (struct permonst *,struct attack *));
01281 E const struct permonst *FDECL(raceptr, (struct monst *));
01282
01283
01284
01285 E boolean FDECL(itsstuck, (struct monst *));
01286 E boolean FDECL(mb_trapped, (struct monst *));
01287 E void FDECL(mon_regen, (struct monst *,BOOLEAN_P));
01288 E int FDECL(dochugw, (struct monst *));
01289 E boolean FDECL(onscary, (int,int,struct monst *));
01290 E void FDECL(monflee, (struct monst *, int, BOOLEAN_P, BOOLEAN_P));
01291 E int FDECL(dochug, (struct monst *));
01292 E int FDECL(m_move, (struct monst *,int));
01293 E boolean FDECL(closed_door, (int,int));
01294 E boolean FDECL(accessible, (int,int));
01295 E void FDECL(set_apparxy, (struct monst *));
01296 E boolean FDECL(can_ooze, (struct monst *));
01297
01298
01299
01300 E void NDECL(monst_init);
01301
01302
01303
01304 E void NDECL(monstr_init);
01305
01306
01307
01308 E struct monst *FDECL(mk_mplayer, (struct permonst *,XCHAR_P,
01309 XCHAR_P,BOOLEAN_P));
01310 E void FDECL(create_mplayers, (int,BOOLEAN_P));
01311 E void FDECL(mplayer_talk, (struct monst *));
01312
01313 #if defined(MICRO) || defined(WIN32)
01314
01315
01316
01317 # ifndef WIN32
01318 E int NDECL(tgetch);
01319 # endif
01320 # ifndef TOS
01321 E char NDECL(switchar);
01322 # endif
01323 # ifndef __GO32__
01324 E long FDECL(freediskspace, (char *));
01325 # ifdef MSDOS
01326 E int FDECL(findfirst_file, (char *));
01327 E int NDECL(findnext_file);
01328 E long FDECL(filesize_nh, (char *));
01329 # else
01330 E int FDECL(findfirst, (char *));
01331 E int NDECL(findnext);
01332 E long FDECL(filesize, (char *));
01333 # endif
01334 E char *NDECL(foundfile_buffer);
01335 # endif
01336 E void FDECL(chdrive, (char *));
01337 # ifndef TOS
01338 E void NDECL(disable_ctrlP);
01339 E void NDECL(enable_ctrlP);
01340 # endif
01341 # if defined(MICRO) && !defined(WINNT)
01342 E void NDECL(get_scr_size);
01343 # ifndef TOS
01344 E void FDECL(gotoxy, (int,int));
01345 # endif
01346 # endif
01347 # ifdef TOS
01348 E int FDECL(_copyfile, (char *,char *));
01349 E int NDECL(kbhit);
01350 E void NDECL(set_colors);
01351 E void NDECL(restore_colors);
01352 # ifdef SUSPEND
01353 E int NDECL(dosuspend);
01354 # endif
01355 # endif
01356 # ifdef WIN32
01357 E char *FDECL(get_username, (int *));
01358 E void FDECL(nt_regularize, (char *));
01359 E int NDECL((*nt_kbhit));
01360 E void FDECL(Delay, (int));
01361 # endif
01362 #endif
01363
01364
01365
01366 E int FDECL(thitu, (int,int,struct obj *,const char *));
01367 E int FDECL(ohitmon, (struct monst *,struct obj *,int,BOOLEAN_P));
01368 E void FDECL(thrwmu, (struct monst *));
01369 E int FDECL(spitmu, (struct monst *,struct attack *));
01370 E int FDECL(breamu, (struct monst *,struct attack *));
01371 E boolean FDECL(linedup, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
01372 E boolean FDECL(lined_up, (struct monst *));
01373 E struct obj *FDECL(m_carrying, (struct monst *,int));
01374 E void FDECL(m_useup, (struct monst *,struct obj *));
01375 E void FDECL(m_throw, (struct monst *,int,int,int,int,int,struct obj *));
01376 E boolean FDECL(hits_bars, (struct obj **,int,int,int,int));
01377
01378
01379
01380 E boolean FDECL(find_defensive, (struct monst *));
01381 E int FDECL(use_defensive, (struct monst *));
01382 E int FDECL(rnd_defensive_item, (struct monst *));
01383 E boolean FDECL(find_offensive, (struct monst *));
01384 #ifdef USE_TRAMPOLI
01385 E int FDECL(mbhitm, (struct monst *,struct obj *));
01386 #endif
01387 E int FDECL(use_offensive, (struct monst *));
01388 E int FDECL(rnd_offensive_item, (struct monst *));
01389 E boolean FDECL(find_misc, (struct monst *));
01390 E int FDECL(use_misc, (struct monst *));
01391 E int FDECL(rnd_misc_item, (struct monst *));
01392 E boolean FDECL(searches_for_item, (struct monst *,struct obj *));
01393 E boolean FDECL(mon_reflects, (struct monst *,const char *));
01394 E boolean FDECL(ureflects, (const char *,const char *));
01395 E boolean FDECL(munstone, (struct monst *,BOOLEAN_P));
01396
01397
01398
01399 E void NDECL(awaken_soldiers);
01400 E int FDECL(do_play_instrument, (struct obj *));
01401
01402
01403 #ifdef LAN_FEATURES
01404 E void NDECL(init_lan_features);
01405 E char *NDECL(lan_username);
01406 # ifdef LAN_MAIL
01407 E boolean NDECL(lan_mail_check);
01408 E void FDECL(lan_mail_read, (struct obj *));
01409 E void NDECL(lan_mail_init);
01410 E void NDECL(lan_mail_finish);
01411 E void NDECL(lan_mail_terminate);
01412 # endif
01413 #endif
01414
01415
01416
01417 #ifdef WIN32CON
01418 E void NDECL(get_scr_size);
01419 E int NDECL(nttty_kbhit);
01420 E void NDECL(nttty_open);
01421 E void NDECL(nttty_rubout);
01422 E int NDECL(tgetch);
01423 E int FDECL(ntposkey,(int *, int *, int *));
01424 E void FDECL(set_output_mode, (int));
01425 E void NDECL(synch_cursor);
01426 #endif
01427
01428
01429
01430 E void NDECL(init_objects);
01431 E int NDECL(find_skates);
01432 E void NDECL(oinit);
01433 E void FDECL(savenames, (int,int));
01434 E void FDECL(restnames, (int));
01435 E void FDECL(discover_object, (int,BOOLEAN_P,BOOLEAN_P));
01436 E void FDECL(undiscover_object, (int));
01437 E int NDECL(dodiscovered);
01438 E void NDECL(dragons_init);
01439
01440
01441
01442 E void NDECL(objects_init);
01443
01444
01445
01446 E char *FDECL(obj_typename, (int));
01447 E char *FDECL(simple_typename, (int));
01448 E boolean FDECL(obj_is_pname, (struct obj *));
01449 E char *FDECL(distant_name, (struct obj *,char *(*)(OBJ_P)));
01450 E char *FDECL(fruitname, (BOOLEAN_P));
01451 E char *FDECL(xname, (struct obj *));
01452 E char *FDECL(mshot_xname, (struct obj *));
01453 E boolean FDECL(the_unique_obj, (struct obj *obj));
01454 E char *FDECL(doname, (struct obj *));
01455 E char *FDECL(doname_with_price, (struct obj *));
01456 E boolean FDECL(not_fully_identified, (struct obj *));
01457 E char *FDECL(corpse_xname, (struct obj *,BOOLEAN_P));
01458 E char *FDECL(cxname, (struct obj *));
01459 E char *FDECL(killer_xname, (struct obj *));
01460 E const char *FDECL(singular, (struct obj *,char *(*)(OBJ_P)));
01461 E char *FDECL(an, (const char *));
01462 E char *FDECL(An, (const char *));
01463 E char *FDECL(The, (const char *));
01464 E char *FDECL(the, (const char *));
01465 E char *FDECL(aobjnam, (struct obj *,const char *));
01466 E char *FDECL(Tobjnam, (struct obj *,const char *));
01467 E char *FDECL(otense, (struct obj *,const char *));
01468 E char *FDECL(vtense, (const char *,const char *));
01469 E char *FDECL(Doname2, (struct obj *));
01470 E char *FDECL(yname, (struct obj *));
01471 E char *FDECL(Yname2, (struct obj *));
01472 E char *FDECL(ysimple_name, (struct obj *));
01473 E char *FDECL(Ysimple_name2, (struct obj *));
01474 E char *FDECL(makeplural, (const char *));
01475 E char *FDECL(makesingular, (const char *));
01476 E struct obj *FDECL(readobjnam, (char *,struct obj *,BOOLEAN_P));
01477 E int FDECL(rnd_class, (int,int));
01478 E const char *FDECL(cloak_simple_name, (struct obj *));
01479 E const char *FDECL(mimic_obj_name, (struct monst *));
01480
01481
01482
01483 E boolean FDECL(match_optname, (const char *,const char *,int,BOOLEAN_P));
01484 E void NDECL(initoptions);
01485 E void FDECL(parseoptions, (char *,BOOLEAN_P,BOOLEAN_P));
01486 E int NDECL(doset);
01487 E int NDECL(dotogglepickup);
01488 E void NDECL(option_help);
01489 E void FDECL(next_opt, (winid,const char *));
01490 E int FDECL(fruitadd, (char *));
01491 E int FDECL(choose_classes_menu, (const char *,int,BOOLEAN_P,char *,char *));
01492 E void FDECL(add_menu_cmd_alias, (CHAR_P, CHAR_P));
01493 E char FDECL(map_menu_cmd, (CHAR_P));
01494 E void FDECL(assign_warnings, (uchar *));
01495 E char *FDECL(nh_getenv, (const char *));
01496 E void FDECL(set_duplicate_opt_detection, (int));
01497 E void FDECL(set_wc_option_mod_status, (unsigned long, int));
01498 E void FDECL(set_wc2_option_mod_status, (unsigned long, int));
01499 E void FDECL(set_option_mod_status, (const char *,int));
01500 #ifdef AUTOPICKUP_EXCEPTIONS
01501 E int FDECL(add_autopickup_exception, (const char *));
01502 E void NDECL(free_autopickup_exceptions);
01503 #endif
01504 #ifdef MENU_COLOR
01505 E boolean FDECL(add_menu_coloring, (char *));
01506 #endif
01507
01508
01509
01510 E int NDECL(dowhatis);
01511 E int NDECL(doquickwhatis);
01512 E int NDECL(doidtrap);
01513 E int NDECL(dowhatdoes);
01514 E char *FDECL(dowhatdoes_core,(CHAR_P, char *));
01515 E int NDECL(dohelp);
01516 E int NDECL(dohistory);
01517
01518
01519
01520 #if defined(MICRO) || defined(WIN32)
01521 # ifdef CHDIR
01522 E void FDECL(chdirx, (char *,BOOLEAN_P));
01523 # endif
01524 #endif
01525
01526
01527
01528 #if defined(MICRO) || defined(WIN32)
01529 E void NDECL(flushout);
01530 E int NDECL(dosh);
01531 # ifdef MFLOPPY
01532 E void FDECL(eraseall, (const char *,const char *));
01533 E void FDECL(copybones, (int));
01534 E void NDECL(playwoRAMdisk);
01535 E int FDECL(saveDiskPrompt, (int));
01536 E void NDECL(gameDiskPrompt);
01537 # endif
01538 E void FDECL(append_slash, (char *));
01539 E void FDECL(getreturn, (const char *));
01540 # ifndef AMIGA
01541 E void VDECL(msmsg, (const char *,...));
01542 # endif
01543 E FILE *FDECL(fopenp, (const char *,const char *));
01544 #endif
01545
01546
01547
01548 #if defined(MICRO) || defined(WIN32)
01549 E void NDECL(gettty);
01550 E void FDECL(settty, (const char *));
01551 E void NDECL(setftty);
01552 E void VDECL(error, (const char *,...));
01553 #if defined(TIMED_DELAY) && defined(_MSC_VER)
01554 E void FDECL(msleep, (unsigned));
01555 #endif
01556 #endif
01557
01558
01559
01560 #if defined(MICRO)
01561 E void FDECL(regularize, (char *));
01562 #endif
01563 #if defined(PC_LOCKING)
01564 E void NDECL(getlock);
01565 #endif
01566
01567
01568
01569 #ifdef GOLDOBJ
01570 E int FDECL(collect_obj_classes,
01571 (char *,struct obj *,BOOLEAN_P,boolean FDECL((*),(OBJ_P)), int *));
01572 #else
01573 E int FDECL(collect_obj_classes,
01574 (char *,struct obj *,BOOLEAN_P,BOOLEAN_P,boolean FDECL((*),(OBJ_P)), int *));
01575 #endif
01576 E void FDECL(add_valid_menu_class, (int));
01577 E boolean FDECL(allow_all, (struct obj *));
01578 E boolean FDECL(allow_category, (struct obj *));
01579 E boolean FDECL(is_worn_by_type, (struct obj *));
01580 #ifdef USE_TRAMPOLI
01581 E int FDECL(ck_bag, (struct obj *));
01582 E int FDECL(in_container, (struct obj *));
01583 E int FDECL(out_container, (struct obj *));
01584 #endif
01585 E int FDECL(pickup, (int));
01586 E int FDECL(pickup_object, (struct obj *, long, BOOLEAN_P));
01587 E int FDECL(query_category, (const char *, struct obj *, int,
01588 menu_item **, int));
01589 E int FDECL(query_objlist, (const char *, struct obj *, int,
01590 menu_item **, int, boolean (*)(OBJ_P)));
01591 E struct obj *FDECL(pick_obj, (struct obj *));
01592 E int NDECL(encumber_msg);
01593 E int NDECL(doloot);
01594 E int FDECL(use_container, (struct obj *,int));
01595 E int FDECL(loot_mon, (struct monst *,int *,boolean *));
01596 E const char *FDECL(safe_qbuf, (const char *,unsigned,
01597 const char *,const char *,const char *));
01598 E boolean FDECL(is_autopickup_exception, (struct obj *, BOOLEAN_P));
01599
01600
01601
01602 E void VDECL(pline, (const char *,...)) PRINTF_F(1,2);
01603 E void VDECL(Norep, (const char *,...)) PRINTF_F(1,2);
01604 E void NDECL(free_youbuf);
01605 E void VDECL(You, (const char *,...)) PRINTF_F(1,2);
01606 E void VDECL(Your, (const char *,...)) PRINTF_F(1,2);
01607 E void VDECL(You_feel, (const char *,...)) PRINTF_F(1,2);
01608 E void VDECL(You_cant, (const char *,...)) PRINTF_F(1,2);
01609 E void VDECL(You_hear, (const char *,...)) PRINTF_F(1,2);
01610 E void VDECL(pline_The, (const char *,...)) PRINTF_F(1,2);
01611 E void VDECL(There, (const char *,...)) PRINTF_F(1,2);
01612 E void VDECL(verbalize, (const char *,...)) PRINTF_F(1,2);
01613 E void VDECL(raw_printf, (const char *,...)) PRINTF_F(1,2);
01614 E void VDECL(impossible, (const char *,...)) PRINTF_F(1,2);
01615 E void VDECL(warning, (const char *,...)) PRINTF_F(1,2);
01616 E const char *FDECL(align_str, (ALIGNTYP_P));
01617 E void FDECL(mstatusline, (struct monst *));
01618 E void NDECL(ustatusline);
01619 E void NDECL(self_invis_message);
01620
01621
01622
01623 E void NDECL(init_uasmon);
01624 E void NDECL(set_uasmon);
01625 E void NDECL(change_sex);
01626 E void FDECL(polyself, (BOOLEAN_P));
01627 E int FDECL(polymon, (int));
01628 E void NDECL(rehumanize);
01629 E int NDECL(dobreathe);
01630 E int NDECL(dospit);
01631 E int NDECL(doremove);
01632 E int NDECL(dospinweb);
01633 E int NDECL(dosummon);
01634 E int NDECL(dogaze);
01635 E int NDECL(dohide);
01636 E int NDECL(domindblast);
01637 E void FDECL(skinback, (BOOLEAN_P));
01638 E const char *FDECL(mbodypart, (struct monst *,int));
01639 E const char *FDECL(body_part, (int));
01640 E int NDECL(poly_gender);
01641 E void FDECL(ugolemeffects, (int,int));
01642 E boolean NDECL(is_playermon_genocided);
01643
01644
01645
01646 E void FDECL(set_itimeout, (long *,long));
01647 E void FDECL(incr_itimeout, (long *,int));
01648 E void FDECL(make_confused, (long,BOOLEAN_P));
01649 E void FDECL(make_stunned, (long,BOOLEAN_P));
01650 E void FDECL(make_blinded, (long,BOOLEAN_P));
01651 E void FDECL(make_sick, (long, const char *, BOOLEAN_P,int));
01652 E void FDECL(make_vomiting, (long,BOOLEAN_P));
01653 E boolean FDECL(make_hallucinated, (long,BOOLEAN_P,long));
01654 E int NDECL(dodrink);
01655 E int FDECL(dopotion, (struct obj *));
01656 E int FDECL(peffects, (struct obj *));
01657 E void FDECL(healup, (int,int,BOOLEAN_P,BOOLEAN_P));
01658 E void FDECL(strange_feeling, (struct obj *,const char *));
01659 E void FDECL(potionhit, (struct monst *,struct obj *,BOOLEAN_P));
01660 E void FDECL(potionbreathe, (struct obj *));
01661 E boolean FDECL(get_wet, (struct obj *));
01662 E int NDECL(dodip);
01663 E void FDECL(djinni_from_bottle, (struct obj *));
01664 E struct monst *FDECL(split_mon, (struct monst *,struct monst *));
01665 E const char *NDECL(bottlename);
01666
01667
01668
01669 #ifdef USE_TRAMPOLI
01670 E int NDECL(prayer_done);
01671 #endif
01672 E int NDECL(dosacrifice);
01673 E boolean FDECL(can_pray, (BOOLEAN_P));
01674 E int NDECL(dopray);
01675 E const char *NDECL(u_gname);
01676 E int NDECL(doturn);
01677 E const char *NDECL(a_gname);
01678 E const char *FDECL(a_gname_at, (XCHAR_P x,XCHAR_P y));
01679 E const char *FDECL(align_gname, (ALIGNTYP_P));
01680 E const char *FDECL(halu_gname, (ALIGNTYP_P));
01681 E const char *FDECL(rnd_gname, (int));
01682 E const char *FDECL(align_gtitle, (ALIGNTYP_P));
01683 E void FDECL(altar_wrath, (int,int));
01684 #ifdef ASTRAL_ESCAPE
01685 E int FDECL(invoke_amulet, (struct obj *));
01686 #endif
01687 E int NDECL(in_trouble);
01688
01689
01690
01691
01692 E int FDECL(move_special, (struct monst *,BOOLEAN_P,SCHAR_P,BOOLEAN_P,BOOLEAN_P,
01693 XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
01694 E char FDECL(temple_occupied, (char *));
01695 E int FDECL(pri_move, (struct monst *));
01696 E void FDECL(priestini, (d_level *,struct mkroom *,int,int,BOOLEAN_P));
01697 E char *FDECL(priestname, (struct monst *,char *));
01698 E boolean FDECL(p_coaligned, (struct monst *));
01699 E struct monst *FDECL(findpriest, (CHAR_P));
01700 E void FDECL(intemple, (int));
01701 E void FDECL(priest_talk, (struct monst *));
01702 E struct monst *FDECL(mk_roamer, (struct permonst *,ALIGNTYP_P,
01703 XCHAR_P,XCHAR_P,BOOLEAN_P));
01704 E void FDECL(reset_hostility, (struct monst *));
01705 E boolean FDECL(in_your_sanctuary, (struct monst *,XCHAR_P,XCHAR_P));
01706 E void FDECL(ghod_hitsu, (struct monst *));
01707 E void NDECL(angry_priest);
01708 E void NDECL(clearpriests);
01709 E void FDECL(restpriest, (struct monst *,BOOLEAN_P));
01710
01711
01712
01713 E void NDECL(onquest);
01714 E void NDECL(nemdead);
01715 E void NDECL(artitouch);
01716 E boolean NDECL(ok_to_quest);
01717 E void FDECL(leader_speaks, (struct monst *));
01718 E void NDECL(nemesis_speaks);
01719 E void FDECL(quest_chat, (struct monst *));
01720 E void FDECL(quest_talk, (struct monst *));
01721 E void FDECL(quest_stat_check, (struct monst *));
01722 E void FDECL(finish_quest, (struct obj *));
01723
01724
01725
01726 E void NDECL(load_qtlist);
01727 E void NDECL(unload_qtlist);
01728 E short FDECL(quest_info, (int));
01729 E const char *NDECL(ldrname);
01730 E boolean FDECL(is_quest_artifact, (struct obj*));
01731 E void FDECL(com_pager, (int));
01732 E void FDECL(qt_pager, (int));
01733 E char *FDECL(string_subst, (char *));
01734 E void FDECL(qt_com_firstline, (int, char*));
01735
01736
01737
01738 #if defined(RANDOM) && !defined(__GO32__)
01739 E void FDECL(srandom, (unsigned));
01740 E char *FDECL(initstate, (unsigned,char *,int));
01741 E char *FDECL(setstate, (char *));
01742 E long NDECL(random);
01743 #endif
01744
01745
01746
01747 E int NDECL(doread);
01748 E boolean FDECL(is_chargeable, (struct obj *));
01749 E void FDECL(recharge, (struct obj *,int));
01750 E void FDECL(forget_objects, (int));
01751 E void FDECL(forget_levels, (int));
01752 E void NDECL(forget_traps);
01753 E void FDECL(forget_map, (int));
01754 E int FDECL(seffects, (struct obj *));
01755 #ifdef USE_TRAMPOLI
01756 E void FDECL(set_lit, (int,int,genericptr_t));
01757 #endif
01758 E void FDECL(litroom, (BOOLEAN_P,struct obj *));
01759 E void FDECL(do_genocide, (int,BOOLEAN_P));
01760 E void FDECL(punish, (struct obj *));
01761 E void NDECL(unpunish);
01762 E boolean FDECL(cant_create, (int *, BOOLEAN_P));
01763 #ifdef WIZARD
01764 E boolean NDECL(create_particular);
01765 #endif
01766 E void FDECL(drop_boulder_on_player, (BOOLEAN_P, BOOLEAN_P, BOOLEAN_P, BOOLEAN_P));
01767 E int FDECL(drop_boulder_on_monster, (int, int, BOOLEAN_P, BOOLEAN_P));
01768
01769
01770
01771 E void NDECL(init_rect);
01772 E NhRect *FDECL(get_rect, (NhRect *));
01773 E NhRect *NDECL(rnd_rect);
01774 E void FDECL(remove_rect, (NhRect *));
01775 E void FDECL(add_rect, (NhRect *));
01776 E void FDECL(split_rects, (NhRect *,NhRect *));
01777
01778
01779 E void NDECL(clear_regions);
01780 E void NDECL(run_regions);
01781 E boolean FDECL(in_out_region, (XCHAR_P,XCHAR_P));
01782 E boolean FDECL(m_in_out_region, (struct monst *,XCHAR_P,XCHAR_P));
01783 E void NDECL(update_player_regions);
01784 E void FDECL(update_monster_region, (struct monst *));
01785 E NhRegion *FDECL(visible_region_at, (XCHAR_P,XCHAR_P));
01786 E void FDECL(show_region, (NhRegion*, XCHAR_P, XCHAR_P));
01787 E void FDECL(save_regions, (int,int));
01788 E void FDECL(rest_regions, (int,BOOLEAN_P));
01789 E NhRegion* FDECL(create_gas_cloud, (XCHAR_P, XCHAR_P, int, size_t, int));
01790 E NhRegion* FDECL(create_cthulhu_death_cloud, (XCHAR_P, XCHAR_P, int, size_t, int));
01791
01792
01793
01794 E void FDECL(inven_inuse, (BOOLEAN_P));
01795 E int FDECL(dorecover, (int));
01796 E void FDECL(trickery, (char *));
01797 E void FDECL(getlev, (int,int,XCHAR_P,BOOLEAN_P));
01798 E void NDECL(minit);
01799 E boolean FDECL(lookup_id_mapping, (unsigned, unsigned *));
01800 #ifdef ZEROCOMP
01801 E int FDECL(mread, (int,genericptr_t,unsigned int));
01802 #else
01803 E void FDECL(mread, (int,genericptr_t,unsigned int));
01804 #endif
01805
01806
01807
01808 E void FDECL(genl_outrip, (winid,int));
01809
01810
01811
01812 E int FDECL(rn2, (int));
01813 E int FDECL(rnl, (int));
01814 E int FDECL(rnd, (int));
01815 E int FDECL(d, (int,int));
01816 E int FDECL(rne, (int));
01817 E int FDECL(rnz, (int));
01818 E int FDECL(rnf, (int, int));
01819
01820
01821
01822 E boolean FDECL(validrole, (int));
01823 E boolean FDECL(validrace, (int, int));
01824 E boolean FDECL(validgend, (int, int, int));
01825 E boolean FDECL(validalign, (int, int, int));
01826 E int NDECL(randrole);
01827 E int FDECL(randrace, (int));
01828 E int FDECL(randgend, (int, int));
01829 E int FDECL(randalign, (int, int));
01830 E int FDECL(str2role, (char *));
01831 E int FDECL(str2race, (char *));
01832 E int FDECL(str2gend, (char *));
01833 E int FDECL(str2align, (char *));
01834 E boolean FDECL(ok_role, (int, int, int, int));
01835 E int FDECL(pick_role, (int, int, int, int));
01836 E boolean FDECL(ok_race, (int, int, int, int));
01837 E int FDECL(pick_race, (int, int, int, int));
01838 E boolean FDECL(ok_gend, (int, int, int, int));
01839 E int FDECL(pick_gend, (int, int, int, int));
01840 E boolean FDECL(ok_align, (int, int, int, int));
01841 E int FDECL(pick_align, (int, int, int, int));
01842 E void NDECL(role_init);
01843 E void NDECL(rigid_role_checks);
01844 E void NDECL(plnamesuffix);
01845 E const char *FDECL(Hello, (struct monst *));
01846 E const char *NDECL(Goodbye);
01847 E char *FDECL(build_plselection_prompt, (char *, int, int, int, int, int));
01848 E char *FDECL(root_plselection_prompt, (char *, int, int, int, int, int));
01849 E void FDECL(violated, (int));
01850 E boolean FDECL(successful_cdt, (int));
01851 E boolean FDECL(intended_cdt, (int));
01852 E boolean FDECL(superfluous_cdt, (int));
01853 E boolean FDECL(failed_cdt, (int));
01854
01855
01856
01857 E char *FDECL(getrumor, (int,char *, BOOLEAN_P));
01858 E void FDECL(outrumor, (int,int));
01859 E void FDECL(outoracle, (BOOLEAN_P, BOOLEAN_P));
01860 E void FDECL(save_oracles, (int,int));
01861 E void FDECL(restore_oracles, (int));
01862 E int FDECL(doconsult, (struct monst *));
01863
01864
01865
01866 E int NDECL(dosave);
01867 #if defined(UNIX) || defined(VMS) || defined(__EMX__) || defined(WIN32)
01868 E void FDECL(hangup, (int));
01869 #endif
01870 E int NDECL(dosave0);
01871 #ifdef INSURANCE
01872 E void NDECL(savestateinlock);
01873 #endif
01874 #ifdef MFLOPPY
01875 E boolean FDECL(savelev, (int,XCHAR_P,int));
01876 E boolean FDECL(swapin_file, (int));
01877 E void NDECL(co_false);
01878 #else
01879 E void FDECL(savelev, (int,XCHAR_P,int));
01880 #endif
01881 E void FDECL(bufon, (int));
01882 E void FDECL(bufoff, (int));
01883 E void FDECL(bflush, (int));
01884 E void FDECL(bwrite, (int,genericptr_t,unsigned int));
01885 E void FDECL(bclose, (int));
01886 E void FDECL(savefruitchn, (int,int));
01887 E void NDECL(free_dungeons);
01888 E void NDECL(freedynamicdata);
01889
01890
01891
01892 #ifdef GOLDOBJ
01893 E long FDECL(money2mon, (struct monst *, long));
01894 E void FDECL(money2u, (struct monst *, long));
01895 #endif
01896 E char *FDECL(shkname, (struct monst *));
01897 E void FDECL(shkgone, (struct monst *));
01898 E void FDECL(set_residency, (struct monst *,BOOLEAN_P));
01899 E void FDECL(replshk, (struct monst *,struct monst *));
01900 E void FDECL(restshk, (struct monst *,BOOLEAN_P));
01901 E char FDECL(inside_shop, (XCHAR_P,XCHAR_P));
01902 E void FDECL(u_left_shop, (char *,BOOLEAN_P));
01903 E void FDECL(remote_burglary, (XCHAR_P,XCHAR_P));
01904 E void FDECL(u_entered_shop, (char *));
01905 E boolean FDECL(same_price, (struct obj *,struct obj *));
01906 E void NDECL(shopper_financial_report);
01907 E int FDECL(inhishop, (struct monst *));
01908 E struct monst *FDECL(shop_keeper, (CHAR_P));
01909 E boolean FDECL(tended_shop, (struct mkroom *));
01910 E void FDECL(delete_contents, (struct obj *));
01911 E void FDECL(obfree, (struct obj *,struct obj *));
01912 E void FDECL(home_shk, (struct monst *,BOOLEAN_P));
01913 E void FDECL(make_happy_shk, (struct monst *,BOOLEAN_P));
01914 E void FDECL(hot_pursuit, (struct monst *));
01915 E void FDECL(make_angry_shk, (struct monst *,XCHAR_P,XCHAR_P));
01916 E int NDECL(dopay);
01917 E boolean FDECL(paybill, (int));
01918 E void NDECL(finish_paybill);
01919 E struct obj *FDECL(find_oid, (unsigned));
01920 E long FDECL(contained_cost, (struct obj *,struct monst *,long,BOOLEAN_P, BOOLEAN_P));
01921 E long FDECL(contained_gold, (struct obj *));
01922 E void FDECL(picked_container, (struct obj *));
01923 E long FDECL(unpaid_cost, (struct obj *));
01924 E void FDECL(addtobill, (struct obj *,BOOLEAN_P,BOOLEAN_P,BOOLEAN_P));
01925 E void FDECL(splitbill, (struct obj *,struct obj *));
01926 E void FDECL(subfrombill, (struct obj *,struct monst *));
01927 E long FDECL(stolen_value, (struct obj *,XCHAR_P,XCHAR_P,BOOLEAN_P,BOOLEAN_P));
01928 E void FDECL(sellobj_state, (int));
01929 E void FDECL(sellobj, (struct obj *,XCHAR_P,XCHAR_P));
01930 E int FDECL(doinvbill, (int));
01931 E struct monst *FDECL(shkcatch, (struct obj *,XCHAR_P,XCHAR_P));
01932 E void FDECL(add_damage, (XCHAR_P,XCHAR_P,long));
01933 E int FDECL(repair_damage, (struct monst *,struct damage *,BOOLEAN_P));
01934 E int FDECL(shk_move, (struct monst *));
01935 E void FDECL(after_shk_move, (struct monst *));
01936 E boolean FDECL(is_fshk, (struct monst *));
01937 E void FDECL(shopdig, (int));
01938 E void FDECL(pay_for_damage, (const char *,BOOLEAN_P));
01939 E boolean FDECL(costly_spot, (XCHAR_P,XCHAR_P));
01940 E struct obj *FDECL(shop_object, (XCHAR_P,XCHAR_P));
01941 E void FDECL(price_quote, (struct obj *));
01942 E void FDECL(shk_chat, (struct monst *));
01943 E void FDECL(check_unpaid_usage, (struct obj *,BOOLEAN_P));
01944 E void FDECL(check_unpaid, (struct obj *));
01945 E void FDECL(costly_gold, (XCHAR_P,XCHAR_P,long));
01946 E long FDECL(get_cost_of_shop_item, (struct obj *));
01947 E boolean FDECL(block_door, (XCHAR_P,XCHAR_P));
01948 E boolean FDECL(block_entry, (XCHAR_P,XCHAR_P));
01949 #ifdef BLACKMARKET
01950 E void FDECL(blkmar_guards, (struct monst *));
01951 E void NDECL(set_black_marketeer_angry);
01952 #endif
01953 E char *FDECL(shk_your, (char *,struct obj *));
01954 E char *FDECL(Shk_Your, (char *,struct obj *));
01955
01956
01957
01958 E void FDECL(stock_room, (int,struct mkroom *));
01959 E boolean FDECL(saleable, (struct monst *,struct obj *));
01960 E int FDECL(get_shop_item, (int));
01961 E void NDECL(shop_selection_init);
01962
01963
01964
01965 E void NDECL(take_gold);
01966 E int NDECL(dosit);
01967 E void NDECL(rndcurse);
01968 E void NDECL(attrcurse);
01969
01970
01971
01972 E void NDECL(dosounds);
01973 E const char *FDECL(growl_sound, (struct monst *));
01974 E void FDECL(growl, (struct monst *));
01975 E void FDECL(yelp, (struct monst *));
01976 E void FDECL(whimper, (struct monst *));
01977 E void FDECL(beg, (struct monst *));
01978 E int NDECL(dotalk);
01979 #ifdef USER_SOUNDS
01980 E int FDECL(add_sound_mapping, (const char *));
01981 E void FDECL(play_sound_for_message, (const char *));
01982 #endif
01983
01984
01985
01986 #ifdef MSDOS
01987 E int FDECL(assign_soundcard, (char *));
01988 #endif
01989
01990
01991
01992 E boolean FDECL(check_room, (xchar *,xchar *,xchar *,xchar *,BOOLEAN_P));
01993 E boolean FDECL(create_room, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P,
01994 XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
01995 E void FDECL(create_secret_door, (struct mkroom *,XCHAR_P));
01996 E boolean FDECL(dig_corridor, (coord *,coord *,BOOLEAN_P,SCHAR_P,SCHAR_P));
01997 E void FDECL(fill_room, (struct mkroom *,BOOLEAN_P));
01998 E boolean FDECL(load_special, (const char *));
01999
02000
02001
02002 #ifdef USE_TRAMPOLI
02003 E int NDECL(learn);
02004 #endif
02005 E int FDECL(study_book, (struct obj *));
02006 E void FDECL(book_disappears, (struct obj *));
02007 E void FDECL(book_substitution, (struct obj *,struct obj *));
02008 E void NDECL(age_spells);
02009 E int NDECL(docast);
02010 E int FDECL(spell_skilltype, (int));
02011 E int FDECL(spelleffects, (int,BOOLEAN_P));
02012 E void NDECL(losespells);
02013 E int NDECL(dovspell);
02014 E void FDECL(initialspell, (struct obj *));
02015 E void NDECL(dump_spells);
02016
02017
02018
02019 #ifdef USE_TRAMPOLI
02020 E int NDECL(stealarm);
02021 #endif
02022 #ifdef GOLDOBJ
02023 E long FDECL(somegold, (long));
02024 #else
02025 E long NDECL(somegold);
02026 #endif
02027 E void FDECL(stealgold, (struct monst *));
02028 E void FDECL(remove_worn_item, (struct obj *,BOOLEAN_P));
02029 E int FDECL(steal, (struct monst *, char *));
02030 E int FDECL(mpickobj, (struct monst *,struct obj *));
02031 E void FDECL(stealamulet, (struct monst *));
02032 E void FDECL(mdrop_special_objs, (struct monst *));
02033 E void FDECL(relobj, (struct monst *,int,BOOLEAN_P));
02034 #ifdef GOLDOBJ
02035 E struct obj *FDECL(findgold, (struct obj *));
02036 #endif
02037
02038
02039
02040 #ifdef STEED
02041 E void NDECL(rider_cant_reach);
02042 E boolean FDECL(can_saddle, (struct monst *));
02043 E int FDECL(use_saddle, (struct obj *));
02044 E boolean FDECL(can_ride, (struct monst *));
02045 E int NDECL(doride);
02046 E boolean FDECL(mount_steed, (struct monst *, BOOLEAN_P));
02047 E void NDECL(exercise_steed);
02048 E void NDECL(kick_steed);
02049 E void FDECL(dismount_steed, (int));
02050 E void FDECL(place_monster, (struct monst *,int,int));
02051 #endif
02052
02053
02054
02055 E boolean FDECL(goodpos, (int,int,struct monst *,unsigned));
02056 E boolean FDECL(enexto, (coord *,XCHAR_P,XCHAR_P,struct permonst *));
02057 E boolean FDECL(enexto_core, (coord *,XCHAR_P,XCHAR_P,struct permonst *,unsigned));
02058 E boolean FDECL(enexto_core_range, (coord *,XCHAR_P,XCHAR_P,struct permonst *,unsigned,int));
02059 E int FDECL(epathto, (coord *,int,XCHAR_P,XCHAR_P,struct permonst *));
02060 E void FDECL(teleds, (int,int,BOOLEAN_P));
02061 E boolean FDECL(safe_teleds, (BOOLEAN_P));
02062 E boolean FDECL(teleport_pet, (struct monst *,BOOLEAN_P));
02063 E void NDECL(tele);
02064 E int NDECL(dotele);
02065 E void NDECL(level_tele);
02066 E void FDECL(domagicportal, (struct trap *));
02067 E void FDECL(tele_trap, (struct trap *));
02068 E void FDECL(level_tele_trap, (struct trap *));
02069 E void FDECL(rloc_to, (struct monst *,int,int));
02070 E boolean FDECL(rloc, (struct monst *, BOOLEAN_P));
02071 E boolean FDECL(tele_restrict, (struct monst *));
02072 E void FDECL(mtele_trap, (struct monst *, struct trap *,int));
02073 E int FDECL(mlevel_tele_trap, (struct monst *, struct trap *,BOOLEAN_P,int));
02074 E void FDECL(rloco, (struct obj *));
02075 E int NDECL(random_teleport_level);
02076 E boolean FDECL(u_teleport_mon, (struct monst *,BOOLEAN_P));
02077
02078
02079 E void FDECL(term_start_color, (int));
02080 E void NDECL(term_end_color);
02081 E void FDECL(term_start_attr, (int));
02082 E void FDECL(term_end_attr, (int));
02083
02084
02085 #ifdef USE_TILES
02086 E void FDECL(substitute_tiles, (d_level *));
02087 #endif
02088
02089
02090
02091 E void NDECL(burn_away_slime);
02092 E void NDECL(nh_timeout);
02093 E void FDECL(fall_asleep, (int, BOOLEAN_P));
02094 E void FDECL(attach_egg_hatch_timeout, (struct obj *));
02095 E void FDECL(attach_fig_transform_timeout, (struct obj *));
02096 E void FDECL(kill_egg, (struct obj *));
02097 E void FDECL(hatch_egg, (genericptr_t, long));
02098 E void FDECL(learn_egg_type, (int));
02099 E void FDECL(burn_object, (genericptr_t, long));
02100 E void FDECL(begin_burn, (struct obj *, BOOLEAN_P));
02101 E void FDECL(end_burn, (struct obj *, BOOLEAN_P));
02102 E void NDECL(do_storms);
02103 E boolean FDECL(start_timer, (long, SHORT_P, SHORT_P, genericptr_t));
02104 E long FDECL(stop_timer, (SHORT_P, genericptr_t));
02105 E void NDECL(run_timers);
02106 E void FDECL(obj_move_timers, (struct obj *, struct obj *));
02107 E void FDECL(obj_split_timers, (struct obj *, struct obj *));
02108 E void FDECL(obj_stop_timers, (struct obj *));
02109 E boolean FDECL(obj_is_local, (struct obj *));
02110 E void FDECL(save_timers, (int,int,int));
02111 E void FDECL(restore_timers, (int,int,BOOLEAN_P,long));
02112 E void FDECL(relink_timers, (BOOLEAN_P));
02113 #ifdef WIZARD
02114 E int NDECL(wiz_timeout_queue);
02115 E void NDECL(timer_sanity_check);
02116 #endif
02117
02118
02119
02120 #ifdef RECORD_CONDUCT
02121 E long FDECL(encodeconduct, (void));
02122 #endif
02123 E void FDECL(topten, (int));
02124 E void FDECL(prscore, (int,char **));
02125 E struct obj *FDECL(tt_oname, (struct obj *));
02126
02127
02128
02129 E void NDECL(initrack);
02130 E void NDECL(settrack);
02131 E coord *FDECL(gettrack, (int,int));
02132
02133
02134
02135 E boolean FDECL(burnarmor,(struct monst *));
02136 E boolean FDECL(rust_dmg, (struct obj *,const char *,int,BOOLEAN_P,struct monst *));
02137 E void FDECL(grease_protect, (struct obj *,const char *,struct monst *));
02138 E struct trap *FDECL(maketrap, (int,int,int));
02139 E void FDECL(fall_through, (BOOLEAN_P));
02140 E struct monst *FDECL(animate_statue, (struct obj *,XCHAR_P,XCHAR_P,int,int *));
02141 E struct monst *FDECL(activate_statue_trap,
02142 (struct trap *,XCHAR_P,XCHAR_P,BOOLEAN_P));
02143 E void FDECL(dotrap, (struct trap *, unsigned));
02144 E void FDECL(seetrap, (struct trap *));
02145 E int FDECL(mintrap, (struct monst *));
02146 E void FDECL(instapetrify, (const char *));
02147 E void FDECL(minstapetrify, (struct monst *,BOOLEAN_P));
02148 #ifdef WEBB_DISINT
02149 E int FDECL(instadisintegrate, (const char *));
02150 E int FDECL(minstadisintegrate, (struct monst *));
02151 #endif
02152 E void FDECL(selftouch, (const char *));
02153 E void FDECL(mselftouch, (struct monst *,const char *,BOOLEAN_P));
02154 E void NDECL(float_up);
02155 E void FDECL(fill_pit, (int,int));
02156 E int FDECL(float_down, (long, long));
02157 E int FDECL(fire_damage, (struct obj *,BOOLEAN_P,BOOLEAN_P,XCHAR_P,XCHAR_P));
02158 E boolean FDECL(water_damage, (struct obj *,BOOLEAN_P,BOOLEAN_P));
02159 E boolean NDECL(drown);
02160 E void FDECL(drain_en, (int));
02161 E int NDECL(dountrap);
02162 E int FDECL(untrap, (BOOLEAN_P));
02163 E boolean FDECL(chest_trap, (struct obj *,int,BOOLEAN_P));
02164 E void FDECL(deltrap, (struct trap *));
02165 E boolean FDECL(delfloortrap, (struct trap *));
02166 E struct trap *FDECL(t_at, (int,int));
02167 E void FDECL(b_trapped, (const char *,int));
02168 E boolean NDECL(unconscious);
02169 E boolean NDECL(lava_effects);
02170 E void FDECL(blow_up_landmine, (struct trap *));
02171 E int FDECL(launch_obj,(SHORT_P,int,int,int,int,int));
02172
02173
02174
02175 E void NDECL(u_init);
02176
02177
02178
02179 E void FDECL(hurtmarmor,(struct monst *,int));
02180 E boolean FDECL(attack_checks, (struct monst *,struct obj *));
02181 E void FDECL(check_caitiff, (struct monst *));
02182 E schar FDECL(find_roll_to_hit, (struct monst *));
02183 E boolean FDECL(attack, (struct monst *));
02184 E boolean FDECL(hmon, (struct monst *,struct obj *,int));
02185 E int FDECL(damageum, (struct monst *,struct attack *));
02186 E void FDECL(missum, (struct monst *,struct attack *));
02187 E int FDECL(passive, (struct monst *,BOOLEAN_P,int,UCHAR_P));
02188 E void FDECL(passive_obj, (struct monst *,struct obj *,struct attack *));
02189 E void FDECL(stumble_onto_mimic, (struct monst *));
02190 E int FDECL(flash_hits_mon, (struct monst *,struct obj *));
02191
02192
02193
02194 #ifdef UNIX
02195 # ifdef PORT_HELP
02196 E void NDECL(port_help);
02197 # endif
02198 #endif
02199
02200
02201
02202
02203 #if defined(UNIX) || defined(__BEOS__)
02204 E void NDECL(gettty);
02205 E void FDECL(settty, (const char *));
02206 E void NDECL(setftty);
02207 E void NDECL(intron);
02208 E void NDECL(introff);
02209 E void VDECL(error, (const char *,...)) PRINTF_F(1,2);
02210 #endif
02211
02212
02213
02214 #ifdef UNIX
02215 E void NDECL(getlock);
02216 E void FDECL(regularize, (char *));
02217 # if defined(TIMED_DELAY) && !defined(msleep) && defined(SYSV)
02218 E void FDECL(msleep, (unsigned));
02219 # endif
02220 # ifdef SHELL
02221 E int NDECL(dosh);
02222 # endif
02223 # if defined(SHELL) || defined(DEF_PAGER) || defined(DEF_MAILREADER)
02224 E int FDECL(child, (int));
02225 # endif
02226 #endif
02227
02228
02229
02230 #ifdef UNIX
02231 # ifdef GNOME_GRAPHICS
02232 E int FDECL(hide_privileges, (BOOLEAN_P));
02233 # endif
02234 #endif
02235
02236
02237
02238 E boolean FDECL(grddead, (struct monst *));
02239 E char FDECL(vault_occupied, (char *));
02240 E void NDECL(invault);
02241 E int FDECL(gd_move, (struct monst *));
02242 E void NDECL(paygd);
02243 E long NDECL(hidden_gold);
02244 E boolean NDECL(gd_sound);
02245
02246
02247
02248 E char *FDECL(version_string, (char *));
02249 E char *FDECL(getversionstring, (char *));
02250 E int NDECL(doversion);
02251 E int NDECL(doextversion);
02252 #ifdef MICRO
02253 E boolean FDECL(comp_times, (long));
02254 #endif
02255 E boolean FDECL(check_version, (struct version_info *,
02256 const char *,BOOLEAN_P));
02257 E unsigned long FDECL(get_feature_notice_ver, (char *));
02258 E unsigned long NDECL(get_current_feature_ver);
02259 #ifdef RUNTIME_PORT_ID
02260 E void FDECL(append_port_id, (char *));
02261 #endif
02262
02263
02264
02265 #ifdef MSDOS
02266 E int FDECL(assign_video, (char *));
02267 # ifdef NO_TERMS
02268 E void NDECL(gr_init);
02269 E void NDECL(gr_finish);
02270 # endif
02271 E void FDECL(tileview,(BOOLEAN_P));
02272 #endif
02273 #ifdef VIDEOSHADES
02274 E int FDECL(assign_videoshades, (char *));
02275 E int FDECL(assign_videocolors, (char *));
02276 #endif
02277
02278
02279
02280 #ifdef VISION_TABLES
02281 E void NDECL(vis_tab_init);
02282 #endif
02283
02284
02285
02286 E void NDECL(vision_init);
02287 E int FDECL(does_block, (int,int,struct rm*));
02288 E void NDECL(vision_reset);
02289 E void FDECL(vision_recalc, (int));
02290 E void FDECL(block_point, (int,int));
02291 E void FDECL(unblock_point, (int,int));
02292 E boolean FDECL(clear_path, (int,int,int,int));
02293 E void FDECL(do_clear_area, (int,int,int,
02294 void (*)(int,int,genericptr_t),genericptr_t));
02295
02296 #ifdef VMS
02297
02298
02299
02300 E int FDECL(vms_link, (const char *,const char *));
02301 E int FDECL(vms_unlink, (const char *));
02302 E int FDECL(vms_creat, (const char *,unsigned int));
02303 E int FDECL(vms_open, (const char *,int,unsigned int));
02304 E boolean FDECL(same_dir, (const char *,const char *));
02305 E int FDECL(c__translate, (int));
02306 E char *FDECL(vms_basename, (const char *));
02307
02308
02309
02310 E unsigned long NDECL(init_broadcast_trapping);
02311 E unsigned long NDECL(enable_broadcast_trapping);
02312 E unsigned long NDECL(disable_broadcast_trapping);
02313 # if 0
02314 E struct mail_info *NDECL(parse_next_broadcast);
02315 # endif
02316
02317
02318
02319 E int FDECL(main, (int, char **));
02320 # ifdef CHDIR
02321 E void FDECL(chdirx, (const char *,BOOLEAN_P));
02322 # endif
02323
02324
02325
02326 E void NDECL(vms_abort);
02327 E void FDECL(vms_exit, (int));
02328
02329
02330
02331 E int NDECL(vms_getchar);
02332 E void NDECL(gettty);
02333 E void FDECL(settty, (const char *));
02334 E void FDECL(shuttty, (const char *));
02335 E void NDECL(setftty);
02336 E void NDECL(intron);
02337 E void NDECL(introff);
02338 E void VDECL(error, (const char *,...)) PRINTF_F(1,2);
02339 #ifdef TIMED_DELAY
02340 E void FDECL(msleep, (unsigned));
02341 #endif
02342
02343
02344
02345 E void NDECL(getlock);
02346 E void FDECL(regularize, (char *));
02347 E int NDECL(vms_getuid);
02348 E boolean FDECL(file_is_stmlf, (int));
02349 E int FDECL(vms_define, (const char *,const char *,int));
02350 E int FDECL(vms_putenv, (const char *));
02351 E char *NDECL(verify_termcap);
02352 # if defined(CHDIR) || defined(SHELL) || defined(SECURE)
02353 E void NDECL(privoff);
02354 E void NDECL(privon);
02355 # endif
02356 # ifdef SHELL
02357 E int NDECL(dosh);
02358 # endif
02359 # if defined(SHELL) || defined(MAIL)
02360 E int FDECL(vms_doshell, (const char *,BOOLEAN_P));
02361 # endif
02362 # ifdef SUSPEND
02363 E int NDECL(dosuspend);
02364 # endif
02365
02366 #endif
02367
02368
02369
02370 E int FDECL(hitval, (struct obj *,struct monst *));
02371 E int FDECL(dmgval, (struct obj *,struct monst *));
02372 E struct obj *FDECL(select_rwep, (struct monst *));
02373 E struct obj *FDECL(select_hwep, (struct monst *));
02374 E void FDECL(possibly_unwield, (struct monst *,BOOLEAN_P));
02375 E int FDECL(mon_wield_item, (struct monst *));
02376 E int NDECL(abon);
02377 E int NDECL(dbon);
02378 E int NDECL(enhance_weapon_skill);
02379 #ifdef DUMP_LOG
02380 E void NDECL(dump_weapon_skill);
02381 #endif
02382 E void FDECL(unrestrict_weapon_skill, (int));
02383 E void FDECL(use_skill, (int,int));
02384 E void FDECL(add_weapon_skill, (int));
02385 E void FDECL(lose_weapon_skill, (int));
02386 E int FDECL(weapon_type, (struct obj *));
02387 E int NDECL(uwep_skill_type);
02388 E int FDECL(weapon_hit_bonus, (struct obj *));
02389 E int FDECL(weapon_dam_bonus, (struct obj *));
02390 E void FDECL(skill_init, (const struct def_skill *));
02391 E boolean NDECL(can_advance_something);
02392
02393
02394
02395 E void FDECL(were_change, (struct monst *));
02396 E void FDECL(new_were, (struct monst *));
02397 E int FDECL(were_summon, (struct permonst *,BOOLEAN_P,int *,char *));
02398 E void NDECL(you_were);
02399 E void FDECL(you_unwere, (BOOLEAN_P));
02400
02401
02402
02403 E void FDECL(setuwep, (struct obj *));
02404 E void FDECL(setuqwep, (struct obj *));
02405 E void FDECL(setuswapwep, (struct obj *));
02406 E int NDECL(dowield);
02407 E int NDECL(doswapweapon);
02408 E int NDECL(dowieldquiver);
02409 E boolean FDECL(wield_tool, (struct obj *,const char *));
02410 E int NDECL(can_twoweapon);
02411 E void NDECL(drop_uswapwep);
02412 E int NDECL(dotwoweapon);
02413 E void NDECL(uwepgone);
02414 E void NDECL(uswapwepgone);
02415 E void NDECL(uqwepgone);
02416 E void NDECL(untwoweapon);
02417 E void FDECL(erode_obj, (struct obj *,BOOLEAN_P,BOOLEAN_P));
02418 E int FDECL(chwepon, (struct obj *,int));
02419 E int FDECL(welded, (struct obj *));
02420 E void FDECL(weldmsg, (struct obj *));
02421 E void FDECL(setmnotwielded, (struct monst *,struct obj *));
02422 E void NDECL(unwield_weapons_silently);
02423
02424
02425
02426 E void FDECL(choose_windows, (const char *));
02427 E char FDECL(genl_message_menu, (CHAR_P,int,const char *));
02428 E void FDECL(genl_preference_update, (const char *));
02429
02430
02431
02432 E void NDECL(amulet);
02433 E int FDECL(mon_has_amulet, (struct monst *));
02434 E int FDECL(mon_has_special, (struct monst *));
02435 E int FDECL(tactics, (struct monst *));
02436 E void NDECL(aggravate);
02437 E void NDECL(clonewiz);
02438 E int NDECL(pick_nasty);
02439 E int FDECL(nasty, (struct monst*));
02440 E void NDECL(resurrect);
02441 E void NDECL(intervene);
02442 E void NDECL(wizdead);
02443 E void FDECL(cuss, (struct monst *));
02444
02445
02446
02447 E int NDECL(get_wormno);
02448 E void FDECL(initworm, (struct monst *,int));
02449 E void FDECL(worm_move, (struct monst *));
02450 E void FDECL(worm_nomove, (struct monst *));
02451 E void FDECL(wormgone, (struct monst *));
02452 E void FDECL(wormhitu, (struct monst *));
02453 E void FDECL(cutworm, (struct monst *,XCHAR_P,XCHAR_P,struct obj *));
02454 E void FDECL(see_wsegs, (struct monst *));
02455 E void FDECL(detect_wsegs, (struct monst *,BOOLEAN_P));
02456 E void FDECL(save_worm, (int,int));
02457 E void FDECL(rest_worm, (int));
02458 E void FDECL(place_wsegs, (struct monst *));
02459 E void FDECL(remove_worm, (struct monst *));
02460 E void FDECL(place_worm_tail_randomly, (struct monst *,XCHAR_P,XCHAR_P));
02461 E int FDECL(count_wsegs, (struct monst *));
02462 E boolean FDECL(worm_known, (struct monst *));
02463 E void FDECL(flip_worm_segs_vertical, (struct monst *, int));
02464 E void FDECL(flip_worm_segs_horizontal, (struct monst *, int));
02465
02466
02467
02468 E void FDECL(setworn, (struct obj *,long));
02469 E void FDECL(setnotworn, (struct obj *));
02470 E void FDECL(mon_set_minvis, (struct monst *));
02471 E void FDECL(mon_adjust_speed, (struct monst *,int,struct obj *));
02472 E void FDECL(update_mon_intrinsics,
02473 (struct monst *,struct obj *,BOOLEAN_P,BOOLEAN_P));
02474 E int FDECL(find_mac, (struct monst *));
02475 E void FDECL(m_dowear, (struct monst *,BOOLEAN_P));
02476 E struct obj *FDECL(which_armor, (struct monst *,long));
02477 E void FDECL(mon_break_armor, (struct monst *,BOOLEAN_P));
02478 E void FDECL(bypass_obj, (struct obj *));
02479 E void NDECL(clear_bypasses);
02480 E int FDECL(racial_exception, (struct monst *, struct obj *));
02481
02482
02483
02484 E int FDECL(dowrite, (struct obj *));
02485
02486
02487
02488 E int FDECL(bhitm, (struct monst *,struct obj *));
02489 E void FDECL(probe_monster, (struct monst *));
02490 E boolean FDECL(get_obj_location, (struct obj *,xchar *,xchar *,int));
02491 E boolean FDECL(get_mon_location, (struct monst *,xchar *,xchar *,int));
02492 E struct monst *FDECL(get_container_location, (struct obj *obj, int *, int *));
02493 E struct monst *FDECL(montraits, (struct obj *,coord *));
02494 E struct monst *FDECL(revive, (struct obj *));
02495 E int FDECL(unturn_dead, (struct monst *));
02496 E void FDECL(cancel_item, (struct obj *));
02497 E boolean FDECL(drain_item, (struct obj *));
02498 E struct obj *FDECL(poly_obj, (struct obj *, int));
02499 E boolean FDECL(obj_resists, (struct obj *,int,int));
02500 E boolean FDECL(obj_shudders, (struct obj *));
02501 E void FDECL(do_osshock, (struct obj *));
02502 E int FDECL(bhito, (struct obj *,struct obj *));
02503 E int FDECL(bhitpile, (struct obj *,int (*)(OBJ_P,OBJ_P),int,int));
02504 E int FDECL(zappable, (struct obj *));
02505 E void FDECL(zapnodir, (struct obj *));
02506 E int NDECL(dozap);
02507 E int FDECL(zapyourself, (struct obj *,BOOLEAN_P));
02508 E boolean FDECL(cancel_monst, (struct monst *,struct obj *,
02509 BOOLEAN_P,BOOLEAN_P,BOOLEAN_P));
02510 E void FDECL(weffects, (struct obj *));
02511 E int NDECL(spell_damage_bonus);
02512 E const char *FDECL(exclam, (int force));
02513 E void FDECL(hit, (const char *,struct monst *,const char *));
02514 E void FDECL(miss, (const char *,struct monst *));
02515 E struct monst *FDECL(bhit, (int,int,int,int,int (*)(MONST_P,OBJ_P),
02516 int (*)(OBJ_P,OBJ_P),struct obj *, boolean *));
02517 E struct monst *FDECL(boomhit, (int,int));
02518 E int FDECL(burn_floor_paper, (int,int,BOOLEAN_P,BOOLEAN_P));
02519 E void FDECL(buzz, (int,int,XCHAR_P,XCHAR_P,int,int));
02520 E void FDECL(melt_ice, (XCHAR_P,XCHAR_P));
02521 E int FDECL(zap_over_floor, (XCHAR_P,XCHAR_P,int,boolean *));
02522 E void FDECL(fracture_rock, (struct obj *));
02523 E boolean FDECL(break_statue, (struct obj *));
02524 E void FDECL(destroy_item, (int,int));
02525 E int FDECL(destroy_mitem, (struct monst *,int,int));
02526 E int FDECL(resist, (struct monst *,CHAR_P,int,int));
02527 E void FDECL(makewish, (BOOLEAN_P));
02528
02529
02530 #ifdef LIVELOGFILE
02531 E boolean NDECL(livelog_start);
02532 E void NDECL(livelog_achieve_update);
02533 E void FDECL(livelog_wish, (char*));
02534 #ifdef LIVELOG_SHOUT
02535 E int NDECL(doshout);
02536 #endif
02537 E void FDECL(livelog_shoplifting, (const char*, const char*, long));
02538 #endif
02539 E void FDECL(livelog_game_started, (const char*, const char*, const char*, const char*));
02540 E void FDECL(livelog_game_action, (const char*));
02541 E void FDECL(livelog_generic, (const char*, const char*));
02542 E void FDECL(livelog_genocide, (const char*, int));
02543
02544 #endif
02545
02546
02547 E boolean FDECL(check_tutorial_message, (int));
02548 E void NDECL(maybe_tutorial);
02549 E int NDECL(tutorial_redisplay);
02550 E void NDECL(tutorial_redisplay_message);
02551 E void FDECL(check_tutorial_farlook, (int, int));
02552 E void FDECL(check_tutorial_command, (char));
02553 E int FDECL(check_tutorial_location, (int, int, BOOLEAN_P));
02554
02555 #undef E
02556
02557 #endif