Wikia

Wikihack

Source:Windows.c

2,032pages on
this wiki
Talk0

Below is the full text to src/windows.c from NetHack 3.4.3. To link to a particular line, write [[windows.c#line123]], for example.

Top of file Edit

1.    /*	SCCS Id: @(#)windows.c	3.4	1996/05/19	*/
2.    /* Copyright (c) D. Cohrs, 1993. */
3.    /* NetHack may be freely redistributed.  See license for details. */
4.    
The NetHack General Public License applies to screenshots, source code and other content from NetHack.
5.    #include "hack.h"
6.    #ifdef TTY_GRAPHICS
7.    #include "wintty.h"
8.    #endif
9.    #ifdef X11_GRAPHICS
10.   /* cannot just blindly include winX.h without including all of X11 stuff */
11.   /* and must get the order of include files right.  Don't bother */
12.   extern struct window_procs X11_procs;
13.   extern void NDECL(win_X11_init);
14.   #endif
15.   #ifdef QT_GRAPHICS
16.   extern struct window_procs Qt_procs;
17.   #endif
18.   #ifdef GEM_GRAPHICS
19.   #include "wingem.h"
20.   #endif
21.   #ifdef MAC
22.   extern struct window_procs mac_procs;
23.   #endif
24.   #ifdef BEOS_GRAPHICS
25.   extern struct window_procs beos_procs;
26.   extern void NDECL(be_win_init);
27.   #endif
28.   #ifdef AMIGA_INTUITION
29.   extern struct window_procs amii_procs;
30.   extern struct window_procs amiv_procs;
31.   extern void NDECL(ami_wininit_data);
32.   #endif
33.   #ifdef WIN32_GRAPHICS
34.   extern struct window_procs win32_procs;
35.   #endif
36.   #ifdef GNOME_GRAPHICS
37.   #include "winGnome.h"
38.   extern struct window_procs Gnome_procs;
39.   #endif
40.   #ifdef MSWIN_GRAPHICS
41.   extern struct window_procs mswin_procs;
42.   #endif
43.   
44.   STATIC_DCL void FDECL(def_raw_print, (const char *s));
45.   
46.   NEARDATA struct window_procs windowprocs;
47.   
48.   static
49.   struct win_choices {
50.       struct window_procs *procs;
51.       void NDECL((*ini_routine));		/* optional (can be 0) */
52.   } winchoices[] = {
53.   #ifdef TTY_GRAPHICS
54.       { &tty_procs, win_tty_init },
55.   #endif
56.   #ifdef X11_GRAPHICS
57.       { &X11_procs, win_X11_init },
58.   #endif
59.   #ifdef QT_GRAPHICS
60.       { &Qt_procs, 0 },
61.   #endif
62.   #ifdef GEM_GRAPHICS
63.       { &Gem_procs, win_Gem_init },
64.   #endif
65.   #ifdef MAC
66.       { &mac_procs, 0 },
67.   #endif
68.   #ifdef BEOS_GRAPHICS
69.       { &beos_procs, be_win_init },
70.   #endif
71.   #ifdef AMIGA_INTUITION
72.       { &amii_procs, ami_wininit_data },		/* Old font version of the game */
73.       { &amiv_procs, ami_wininit_data },		/* Tile version of the game */
74.   #endif
75.   #ifdef WIN32_GRAPHICS
76.       { &win32_procs, 0 },
77.   #endif
78.   #ifdef GNOME_GRAPHICS
79.       { &Gnome_procs, 0 },
80.   #endif
81.   #ifdef MSWIN_GRAPHICS
82.       { &mswin_procs, 0 },
83.   #endif
84.       { 0, 0 }		/* must be last */
85.   };
86.   

def_raw_print Edit

87.   STATIC_OVL
88.   void
89.   def_raw_print(s)
90.   const char *s;
91.   {
92.       puts(s);
93.   }
94.   

choose_windows Edit

95.   void
96.   choose_windows(s)
97.   const char *s;
98.   {
99.       register int i;
100.  
101.      for(i=0; winchoices[i].procs; i++)
102.  	if (!strcmpi(s, winchoices[i].procs->name)) {
103.  	    windowprocs = *winchoices[i].procs;
104.  	    if (winchoices[i].ini_routine) (*winchoices[i].ini_routine)();
105.  	    return;
106.  	}
107.  
108.      if (!windowprocs.win_raw_print)
109.  	windowprocs.win_raw_print = def_raw_print;
110.  
111.      raw_printf("Window type %s not recognized.  Choices are:", s);
112.      for(i=0; winchoices[i].procs; i++)
113.  	raw_printf("        %s", winchoices[i].procs->name);
114.  
115.      if (windowprocs.win_raw_print == def_raw_print)
116.  	terminate(EXIT_SUCCESS);
117.      wait_synch();
118.  }
119.  

genl_message_menu Edit

120.  /*
121.   * tty_message_menu() provides a means to get feedback from the
122.   * --More-- prompt; other interfaces generally don't need that.
123.   */
124.  /*ARGSUSED*/
125.  char
126.  genl_message_menu(let, how, mesg)
127.  char let;
128.  int how;
129.  const char *mesg;
130.  {
131.      pline("%s", mesg);
132.      return 0;
133.  }
134.  

genl_preference_update Edit

135.  /*ARGSUSED*/
136.  void
137.  genl_preference_update(pref)
138.  const char *pref;
139.  {
140.  	/* window ports are expected to provide
141.  	   their own preference update routine
142.  	   for the preference capabilities that
143.  	   they support.
144.  	   Just return in this genl one. */
145.  }
146.  /*windows.c*/

Around Wikia's network

Random Wiki