1 /*	SCCS Id: @(#)trampoli.c 	3.1	95/06/01	  */
2 /* Copyright (c) 1989 - 1993 by Norm Meluch and Stephen Spackman  */
3 /* NetHack may be freely redistributed.  See license for details. */
4 
5 #include "hack.h"
6 
7 /****************************************************************************/
8 /*									    */
9 /*	This file contains a series of definitions of "one liner"	    */
10 /*	functions corresponding to *all* functions that NetHack calls	    */
11 /*	via pointers.							    */
12 /*	     IF ANY CALLS TO FUNCTIONS VIA POINTERS ARE ADDED		    */
13 /*	     TO THE CODE, AN ENTRY FOR THE FUNCTION CALLED MUST		    */
14 /*	     BE ADDED TO THIS FILE AND TO TRAMPOLI.H.			    */
15 /*	This mess is necessary for the Microsoft Compiler implementation    */
16 /*	of overlaid code (v5.1 - 6.0ax).				    */
17 /*									    */
18 /*	The original function (eg foo) has been #defined to be foo_	    */
19 /*	via double inclusion of trampoli.h in hack.h, and		    */
20 /*	now the definition of foo is placed in this file calling foo	    */
21 /*	directly.  This module is _never_ placed in an overlay so	    */
22 /*	calls via pointers to these functions will not cause difficulties.  */
23 /*									    */
24 /*	This leads to what could be called a "trampoline" effect, and	    */
25 /*	hence the silly name for these files. :-)			    */
26 /*									    */
27 /****************************************************************************/
28 
29 #ifdef OVERLAY
30 
31 /* ### apply.c ### */
32 #undef dig
33 #undef doapply
34 #undef dojump
35 #undef dorub
36 
dig()37 int dig()		{ return dig_(); }
doapply()38 int doapply()		{ return doapply_(); }
dojump()39 int dojump()		{ return dojump_(); }
dorub()40 int dorub()		{ return dorub_(); }
41 
42 
43 /* ### artifact.c ### */
44 #undef doinvoke
45 
doinvoke()46 int doinvoke()		{ return doinvoke_(); }
47 
48 
49 /* ### cmd.c ### */
50 #undef doextcmd
51 #undef doextlist
52 #undef doprev_message
53 
54 #undef domonability
55 
56 #undef enter_explore_mode
57 
enter_explore_mode()58 int enter_explore_mode()	{ return enter_explore_mode_(); }
59 
60 #undef timed_occupation
61 
62 #undef wiz_attributes
63 
64 #ifdef WIZARD
65 #undef wiz_detect
66 #undef wiz_genesis
67 #undef wiz_identify
68 #undef wiz_level_tele
69 #undef wiz_map
70 #undef wiz_where
71 #undef wiz_wish
72 #endif
73 
doextcmd()74 int doextcmd()		{ return doextcmd_(); }
doextlist()75 int doextlist()		{ return doextlist_(); }
doprev_message()76 int doprev_message()	{ return doprev_message_(); }
77 
domonability()78 int domonability()	{ return domonability_(); }
79 
timed_occupation()80 int timed_occupation()	{ return timed_occupation_(); }
81 
wiz_attributes()82 int wiz_attributes()	{ return wiz_attributes_(); }
83 
84 #ifdef WIZARD
wiz_detect()85 int wiz_detect()	{ return wiz_detect_(); }
wiz_genesis()86 int wiz_genesis()	{ return wiz_genesis_(); }
wiz_identify()87 int wiz_identify()	{ return wiz_identify_(); }
wiz_level_tele()88 int wiz_level_tele()	{ return wiz_level_tele_(); }
wiz_map()89 int wiz_map()		{ return wiz_map_(); }
wiz_where()90 int wiz_where()		{ return wiz_where_(); }
wiz_wish()91 int wiz_wish()		{ return wiz_wish_(); }
92 #endif
93 
94 
95 /* ### do.c ### */
96 #undef doddrop
97 #undef dodown
98 #undef dodrop
99 #undef donull
100 #undef doup
101 #undef dowipe
102 #undef drop
103 #undef wipeoff
104 
doddrop()105 int doddrop()			{ return doddrop_(); }
dodown()106 int dodown()			{ return dodown_(); }
dodrop()107 int dodrop()			{ return dodrop_(); }
donull()108 int donull()			{ return donull_(); }
doup()109 int doup()			{ return doup_(); }
dowipe()110 int dowipe()			{ return dowipe_(); }
drop(obj)111 int drop(obj)
112   register struct obj *obj;	{ return drop_(obj); }
wipeoff()113 int wipeoff()			{ return wipeoff_(); }
114 
115 
116 /* ### do_name.c ### */
117 #undef ddocall
118 #undef do_mname
119 
ddocall()120 int ddocall()		{ return ddocall_(); }
do_mname()121 int do_mname()		{ return do_mname_(); }
122 
123 
124 /* ### do_wear.c ### */
125 #undef Armor_off
126 #undef Boots_off
127 #undef Gloves_off
128 #undef Helmet_off
129 #undef Armor_on
130 #undef Boots_on
131 #undef Gloves_on
132 #undef Helmet_on
133 #undef doddoremarm
134 #undef doputon
135 #undef doremring
136 #undef dotakeoff
137 #undef dowear
138 #undef select_off
139 #undef take_off
140 
Armor_off()141 int Armor_off()		{ return Armor_off_(); }
Boots_off()142 int Boots_off()		{ return Boots_off_(); }
Gloves_off()143 int Gloves_off()	{ return Gloves_off_(); }
Helmet_off()144 int Helmet_off()	{ return Helmet_off_(); }
Armor_on()145 int Armor_on()		{ return Armor_on_(); }
Boots_on()146 int Boots_on()		{ return Boots_on_(); }
Gloves_on()147 int Gloves_on()		{ return Gloves_on_(); }
Helmet_on()148 int Helmet_on()		{ return Helmet_on_(); }
doddoremarm()149 int doddoremarm()	{ return doddoremarm_(); }
doputon()150 int doputon()		{ return doputon_(); }
doremring()151 int doremring()		{ return doremring_(); }
dotakeoff()152 int dotakeoff()		{ return dotakeoff_(); }
dowear()153 int dowear()		{ return dowear_(); }
select_off(otmp)154 int select_off(otmp)
155   struct obj *otmp;	{ return select_off_(otmp); }
take_off()156 int take_off()		{ return take_off_(); }
157 
158 
159 /* ### dogmove.c ### */
160 #undef wantdoor
161 
wantdoor(x,y,dummy)162 void wantdoor(x, y, dummy)
163   int x, y; genericptr_t dummy; { wantdoor_(x, y, dummy); }
164 
165 
166 /* ### dokick.c ### */
167 #undef dokick
168 
dokick()169 int dokick()		{ return dokick_(); }
170 
171 
172 /* ### dothrow.c ### */
173 #undef dothrow
174 
dothrow()175 int dothrow()		{ return dothrow_(); }
176 
177 
178 /* ### eat.c ### */
179 #undef Hear_again
180 #undef eatmdone
181 #undef doeat
182 #undef eatfood
183 #undef opentin
184 #undef unfaint
185 
Hear_again()186 int Hear_again()	{ return Hear_again_(); }
eatmdone()187 int eatmdone()		{ return eatmdone_(); }
doeat()188 int doeat()		{ return doeat_(); }
eatfood()189 int eatfood()		{ return eatfood_(); }
opentin()190 int opentin()		{ return opentin_(); }
unfaint()191 int unfaint()		{ return unfaint_(); }
192 
193 
194 /* ### end.c ### */
195 #undef done1
196 #undef done2
197 #undef done_intr
198 #if defined(UNIX) || defined(VMS)
199 #undef done_hangup
200 #endif
201 
done1(sig)202 void done1(sig) int sig; { done1_(sig); }
done2()203 int done2()		{ return done2_(); }
done_intr(sig)204 void done_intr(sig) int sig; { done_intr_(sig); }
205 #if defined(UNIX) || defined(VMS)
done_hangup(sig)206 void done_hangup(sig) int sig; { done_hangup_(sig); }
207 #endif
208 
209 
210 /* ### engrave.c ### */
211 #undef doengrave
212 
doengrave()213 int doengrave()		{ return doengrave_(); }
214 
215 
216 /* ### fountain.c ### */
217 #undef gush
218 
gush(x,y,poolcnt)219 void gush(x, y, poolcnt)
220   int x, y; genericptr_t poolcnt; { gush_(x, y, poolcnt); }
221 
222 
223 /* ### hack.c ### */
224 #undef dopickup
225 #undef identify
226 
dopickup()227 int dopickup()		{ return dopickup_(); }
identify(otmp)228 int identify(otmp)
229   struct obj *otmp;	{ return identify_(otmp); }
230 
231 
232 /* ### invent.c ### */
233 #undef ckunpaid
234 #undef ddoinv
235 #undef dolook
236 #undef dopramulet
237 #undef doprarm
238 #undef doprgold
239 #undef doprring
240 #undef doprtool
241 #undef doprwep
242 #undef dotypeinv
243 #undef doorganize
244 
ckunpaid(obj)245 int ckunpaid(obj)
246   struct obj *obj;	{ return ckunpaid_(obj); }
ddoinv()247 int ddoinv()		{ return ddoinv_(); }
dolook()248 int dolook()		{ return dolook_(); }
dopramulet()249 int dopramulet()	{ return dopramulet_(); }
doprarm()250 int doprarm()		{ return doprarm_(); }
doprgold()251 int doprgold()		{ return doprgold_(); }
doprring()252 int doprring()		{ return doprring_(); }
doprtool()253 int doprtool()		{ return doprtool_(); }
doprwep()254 int doprwep()		{ return doprwep_(); }
dotypeinv()255 int dotypeinv()		{ return dotypeinv_(); }
doorganize()256 int doorganize()	{ return doorganize_(); }
257 
258 
259 /* ### ioctl.c ### */
260 #ifdef UNIX
261 # ifdef SUSPEND
262 #undef dosuspend
263 
dosuspend()264 int dosuspend()		{ return dosuspend_(); }
265 # endif /* SUSPEND */
266 #endif /* UNIX */
267 
268 
269 /* ### lock.c ### */
270 #undef doclose
271 #undef doforce
272 #undef doopen
273 #undef forcelock
274 #undef picklock
275 
doclose()276 int doclose()		{ return doclose_(); }
doforce()277 int doforce()		{ return doforce_(); }
doopen()278 int doopen()		{ return doopen_(); }
forcelock()279 int forcelock()		{ return forcelock_(); }
picklock()280 int picklock()		{ return picklock_(); }
281 
282 
283 /* ### mklev.c ### */
284 #undef do_comp
285 
do_comp(vx,vy)286 int do_comp(vx, vy)
287   genericptr_t vx, vy;	{ return comp_(vx, vy); }
288 
289 
290 /* ### mondata.c ### */
291 /* canseemon() is only called by a macro e_boolean.  If e_boolean ever does
292    become a function, this may need to return. */
293 
294 /* #undef canseemon */
295 
296 /* boolean canseemon(x) struct monst *x; { return canseemon_(x); } */
297 
298 
299 /* ### muse.c ### */
300 #undef mbhitm
301 
mbhitm(mtmp,otmp)302 int mbhitm(mtmp, otmp)
303   struct monst *mtmp; struct obj *otmp; { return mbhitm_(mtmp, otmp); }
304 
305 
306 /* ### o_init.c ### */
307 #undef dodiscovered
308 
dodiscovered()309 int dodiscovered()	{ return dodiscovered_(); }
310 
311 
312 /* ### objnam.c ### */
313 #undef doname
314 #undef xname
315 
doname(obj)316 char *doname(obj)
317   struct obj *obj;	{ return doname_(obj); }
xname(obj)318 char *xname(obj)
319   struct obj *obj;	{ return xname_(obj); }
320 
321 
322 /* ### options.c ### */
323 #undef doset
324 #undef dotogglepickup
325 
doset()326 int doset()		{ return doset_(); }
dotogglepickup()327 int dotogglepickup()	{ return dotogglepickup_(); }
328 
329 
330 /* ### pager.c ### */
331 #undef dohelp
332 #undef dohistory
333 #undef dowhatdoes
334 #undef dowhatis
335 #undef doquickwhatis
336 
dohelp()337 int dohelp()		{ return dohelp_(); }
dohistory()338 int dohistory()		{ return dohistory_(); }
dowhatdoes()339 int dowhatdoes()	{ return dowhatdoes_(); }
dowhatis()340 int dowhatis()		{ return dowhatis_(); }
doquickwhatis()341 int doquickwhatis()	{ return doquickwhatis_(); }
342 
343 
344 /* ### pcsys.c ### */
345 #ifdef SHELL
346 #undef dosh
347 
dosh()348 int dosh()		{ return dosh_(); }
349 #endif /* SHELL */
350 
351 
352 /* ### pickup.c ### */
353 #undef ck_bag
354 #undef doloot
355 #undef in_container
356 #undef out_container
357 
ck_bag(obj)358 int ck_bag(obj)
359   struct obj *obj;	{ return ck_bag_(obj);  }
doloot()360 int doloot()		{ return doloot_(); }
in_container(obj)361 int in_container(obj)
362   struct obj *obj;	{ return in_container_(obj); }
out_container(obj)363 int out_container(obj)
364   struct obj *obj;	{ return out_container_(obj); }
365 
366 
367 /* ### potion.c ### */
368 #undef dodrink
369 #undef dodip
370 
dodrink()371 int dodrink()		{ return dodrink_(); }
dodip()372 int dodip()		{ return dodip_(); }
373 
374 
375 /* ### pray.c ### */
376 #undef doturn
377 #undef dopray
378 #undef prayer_done
379 #undef dosacrifice
380 
doturn()381 int doturn()		{ return doturn_(); }
dopray()382 int dopray()		{ return dopray_(); }
prayer_done()383 int prayer_done()	{ return prayer_done_(); }
dosacrifice()384 int dosacrifice()	{ return dosacrifice_(); }
385 
386 
387 /* ### print.c ### */
388 #undef doredraw
389 
doredraw()390 int doredraw()		{ return doredraw_(); }
391 
392 
393 /* ### read.c ### */
394 #undef doread
395 #undef set_lit
396 
doread()397 int doread()		{ return doread_(); }
set_lit(x,y,val)398 void set_lit(x, y, val)
399   int x, y; genericptr_t val; { set_lit_(x, y, val); }
400 
401 
402 /* ### rip.c ### */
403 #undef genl_outrip
404 
genl_outrip(tmpwin,how)405 void genl_outrip(tmpwin, how)
406   winid tmpwin; int how; { genl_outrip_(tmpwin, how); }
407 
408 
409 /* ### save.c ### */
410 #undef dosave
411 #if defined(UNIX) || defined(VMS)
412 #undef hangup
413 #endif
414 
dosave()415 int dosave()		{ return dosave_(); }
416 #if defined(UNIX) || defined(VMS)
hangup(sig)417 void hangup(sig) int sig; { hangup_(sig); }
418 #endif
419 
420 
421 /* ### search.c ### */
422 #undef findone
423 #undef openone
424 #undef doidtrap
425 #undef dosearch
426 
findone(zx,zy,num)427 void findone(zx, zy, num)
428   int zx, zy; genericptr_t num; { findone_(zx, zy, num); }
openone(zx,zy,num)429 void openone(zx, zy, num)
430   int zx, zy; genericptr_t num; { openone_(zx, zy, num); }
doidtrap()431 int doidtrap()		{ return doidtrap_(); }
dosearch()432 int dosearch()		{ return dosearch_(); }
433 
434 
435 /* ### shk.c ### */
436 #undef dopay
437 
dopay()438 int dopay()		{ return dopay_(); }
439 
440 
441 /* ### sit.c ### */
442 #undef dosit
443 
dosit()444 int dosit()		{ return dosit_(); }
445 
446 
447 /* ### sounds.c ### */
448 #undef dotalk
449 
dotalk()450 int dotalk()		{ return dotalk_(); }
451 
452 
453 /* ### spell.c ### */
454 #undef learn
455 #undef docast
456 #undef dovspell
457 
learn()458 int learn()		{ return learn_(); }
docast()459 int docast()		{ return docast_(); }
dovspell()460 int dovspell()		{ return dovspell_(); }
461 
462 
463 /* ### steal.c ### */
464 #undef stealarm
465 
stealarm()466 int stealarm()		{ return stealarm_(); }
467 
468 
469 /* ### trap.c ### */
470 #undef dotele
471 #undef dountrap
472 #undef float_down
473 
dotele()474 int dotele()		{ return dotele_(); }
dountrap()475 int dountrap()		{ return dountrap_(); }
float_down()476 int float_down()	{ return float_down_(); }
477 
478 
479 /* ### version.c ### */
480 #undef doversion
481 #undef doextversion
482 
doversion()483 int doversion()		{ return doversion_(); }
doextversion()484 int doextversion()	{ return doextversion_(); }
485 
486 
487 /* ### wield.c ### */
488 #undef dowield
489 
dowield()490 int dowield()		{ return dowield_(); }
491 
492 
493 /* ### zap.c ### */
494 #undef bhitm
495 #undef bhito
496 #undef dozap
497 
bhitm(mtmp,otmp)498 int bhitm(mtmp, otmp)
499   struct monst *mtmp; struct obj *otmp; { return bhitm_(mtmp, otmp); }
bhito(obj,otmp)500 int bhito(obj, otmp)
501   struct obj *obj, *otmp; { return bhito_(obj,  otmp); }
dozap()502 int dozap()		{ return dozap_(); }
503 
504 
505 /*
506  * Window Implementation Specific Functions.
507  */
508 
509 /* ### getline.c ### */
510 #undef tty_getlin
511 #undef tty_get_ext_cmd
512 
tty_get_ext_cmd()513 int tty_get_ext_cmd()		{ return tty_get_ext_cmd_(); }
tty_getlin(query,bufp)514 void tty_getlin(query,bufp)
515   const char *query; char *bufp;{ tty_getlin_(query,bufp); }
516 
517 
518 /* ### termcap.c ### */
519 #undef tty_nhbell
520 #undef tty_number_pad
521 #undef tty_delay_output
522 #undef tty_start_screen
523 #undef tty_end_screen
524 
tty_nhbell()525 void tty_nhbell()		{ tty_nhbell_(); }
tty_number_pad(state)526 void tty_number_pad(state)
527   int state;			{ tty_number_pad_(state); }
tty_delay_output()528 void tty_delay_output()		{ tty_delay_output_(); }
529 /* other defs that really should go away (they're tty specific) */
tty_start_screen()530 void tty_start_screen()		{ tty_start_screen_(); }
tty_end_screen()531 void tty_end_screen()		{ tty_end_screen_(); }
532 
533 
534 /* ### topl.c ### */
535 #undef tty_doprev_message
536 #undef tty_yn_function
537 
tty_doprev_message()538 int tty_doprev_message()	{ return tty_doprev_message_(); }
tty_yn_function(query,resp,def)539 char tty_yn_function(query,resp,def)
540   const char *query, *resp; char def;
541 				{ return tty_yn_function_(query,resp,def); }
542 
543 
544 /* ### wintty.c ### */
545 #undef tty_init_nhwindows
546 #undef tty_player_selection
547 #undef tty_askname
548 #undef tty_get_nh_event
549 #undef tty_exit_nhwindows
550 #undef tty_suspend_nhwindows
551 #undef tty_resume_nhwindows
552 #undef tty_create_nhwindow
553 #undef tty_clear_nhwindow
554 #undef tty_display_nhwindow
555 #undef tty_destroy_nhwindow
556 #undef tty_curs
557 #undef tty_putstr
558 #undef tty_display_file
559 #undef tty_start_menu
560 #undef tty_add_menu
561 #undef tty_end_menu
562 #undef tty_select_menu
563 #undef tty_update_inventory
564 #undef tty_mark_synch
565 #undef tty_wait_synch
566 #ifdef CLIPPING
567 #undef tty_cliparound
568 #endif
569 #ifdef POSITIONBAR
570 #undef tty_update_positionbar
571 #endif
572 #undef tty_print_glyph
573 #undef tty_raw_print
574 #undef tty_raw_print_bold
575 #undef tty_nhgetch
576 #undef tty_nh_poskey
577 
tty_init_nhwindows(argcp,argv)578 void tty_init_nhwindows(argcp,argv)
579 	int *argcp; char **argv;
580 				{ tty_init_nhwindows_(argcp,argv); }
tty_player_selection()581 void tty_player_selection()	{ tty_player_selection_(); }
tty_askname()582 void tty_askname()		{ tty_askname_(); }
tty_get_nh_event()583 void tty_get_nh_event()		{ tty_get_nh_event_(); }
tty_exit_nhwindows(str)584 void tty_exit_nhwindows(str)
585   const char *str;		{ tty_exit_nhwindows_(str); }
tty_suspend_nhwindows(str)586 void tty_suspend_nhwindows(str)
587   const char *str;		{ tty_suspend_nhwindows_(str); }
tty_resume_nhwindows()588 void tty_resume_nhwindows()	{ tty_resume_nhwindows_(); }
tty_create_nhwindow(type)589 winid tty_create_nhwindow(type)
590   int type;			{ return tty_create_nhwindow_(type); }
tty_clear_nhwindow(window)591 void tty_clear_nhwindow(window)
592   winid window;			{ tty_clear_nhwindow_(window); }
tty_display_nhwindow(window,blocking)593 void tty_display_nhwindow(window, blocking)
594   winid window; boolean blocking;
595 				{ tty_display_nhwindow_(window,blocking); }
tty_destroy_nhwindow(window)596 void tty_destroy_nhwindow(window)
597   winid window;			{ tty_destroy_nhwindow_(window); }
tty_curs(window,x,y)598 void tty_curs(window,x,y)
599   winid window; int x,y;	{ tty_curs_(window,x,y); }
tty_putstr(window,attr,str)600 void tty_putstr(window,attr,str)
601   winid window; int attr; const char *str;
602 				{ tty_putstr_(window,attr,str); }
tty_display_file(fname,complain)603 void tty_display_file(fname, complain)
604   const char *fname; boolean complain;
605 				{ tty_display_file_(fname,complain); }
tty_start_menu(window)606 void tty_start_menu(window)
607   winid window;			{ tty_start_menu_(window); }
tty_add_menu(window,ch,attr,str)608 void tty_add_menu(window,ch,attr,str)
609   winid window; char ch; int attr; const char *str;
610 				{ tty_add_menu_(window,ch,attr,str); }
tty_end_menu(window,ch,str,morestr)611 void tty_end_menu(window,ch,str,morestr)
612   winid window; char ch; const char *str, *morestr;
613 				{ tty_end_menu_(window,ch,str,morestr); }
tty_select_menu(window)614 char tty_select_menu(window)
615   winid window;			{ return tty_select_menu_(window); }
tty_update_inventory()616 void tty_update_inventory()	{ tty_update_inventory_(); }
tty_mark_synch()617 void tty_mark_synch()		{ tty_mark_synch_(); }
tty_wait_synch()618 void tty_wait_synch()		{ tty_wait_synch_(); }
619 #ifdef CLIPPING
tty_cliparound(x,y)620 void tty_cliparound(x,y)
621   int x,y;			{ tty_cliparound_(x,y); }
622 #endif
623 #ifdef POSITIONBAR
tty_update_positionbar(str)624 void tty_update_positionbar(str)
625   char *str;			{ tty_update_positionbar_(str); }
626 #endif
tty_print_glyph(window,x,y,glyph)627 void tty_print_glyph(window,x,y,glyph)
628   winid window; xchar x,y; int glyph;
629 				{ tty_print_glyph_(window,x,y,glyph); }
tty_raw_print(str)630 void tty_raw_print(str)
631   const char *str;		{ tty_raw_print_(str); }
tty_raw_print_bold(str)632 void tty_raw_print_bold(str)
633   const char *str;		{ tty_raw_print_bold_(str); }
tty_nhgetch()634 int tty_nhgetch()		{ return tty_nhgetch_(); }
tty_nh_poskey(x,y,pos)635 int tty_nh_poskey(x,y,pos)
636   int *x,*y,*pos;		{ return tty_nh_poskey_(x,y,pos); }
637 
638 #endif /* OVERLAY */
639