1 /*    SCCS Id: @(#)winext.h    3.1    2000/01/12 */
2 /* Copyright (c) Gregg Wonderly, Naperville, Illinois,  1991,1992,1993. */
3 /* NetHack may be freely redistributed.  See license for details. */
4 
5 extern int reclip;
6 
7 #ifdef	CLIPPING
8 extern int clipping;
9 extern int clipx;
10 extern int clipy;
11 extern int clipxmax;
12 extern int clipymax;
13 extern int xclipbord, yclipbord;
14 #endif
15 
16 extern int CO;
17 extern int LI;
18 extern int scrollmsg;
19 extern int alwaysinvent;
20 
21 #ifndef	SHAREDLIB
22 extern unsigned short amii_defpens[ 20 ];
23 extern struct amii_DisplayDesc *amiIDisplay;	/* the Amiga Intuition descriptor */
24 extern struct window_procs amii_procs;
25 extern struct window_procs amiv_procs;
26 extern unsigned short amii_initmap[ AMII_MAXCOLORS ];
27 extern unsigned short amiv_init_map[ AMII_MAXCOLORS ];
28 extern unsigned short amii_init_map[ AMII_MAXCOLORS ];
29 extern int bigscreen;
30 extern int amii_numcolors;
31 extern long amii_scrnmode;
32 extern winid amii_rawprwin;
33 extern struct Screen *HackScreen;
34 extern char Initialized;
35 /* These have already been defined elsewhere (and some are conflicting)
36  * ... going ... going once ... going twice ....
37  * extern const char *roles[];
38  * extern struct Library *ConsoleDevice;
39  * extern char toplines[ TBUFSZ ];
40  * extern NEARDATA winid WIN_MESSAGE;
41  * extern NEARDATA winid WIN_MAP;
42  * extern NEARDATA winid WIN_STATUS;
43  * extern NEARDATA winid WIN_INVEN;
44  * extern winid WIN_OVER;
45  * extern struct GfxBase *GfxBase;
46  * extern struct Library *DiskfontBase;
47  * extern struct IntuitionBase *IntuitionBase;
48  * extern struct Library *LayersBase;
49  */
50 extern int amii_msgAPen;
51 extern int amii_msgBPen;
52 extern int amii_statAPen;
53 extern int amii_statBPen;
54 extern int amii_menuAPen;
55 extern int amii_menuBPen;
56 extern int amii_textAPen;
57 extern int amii_textBPen;
58 extern int amii_otherAPen;
59 extern int amii_otherBPen;
60 #else
61 extern WinamiBASE *WinamiBase;
62 #endif
63 /* All kinds of shared stuff */
64 extern struct TextAttr Hack160;
65 extern struct TextAttr Hack40;
66 extern struct TextAttr Hack80;
67 extern struct TextAttr TextsFont13;
68 extern struct Window *pr_WindowPtr;
69 extern struct Menu HackMenu[];
70 extern struct Menu *MenuStrip;
71 extern struct NewMenu GTHackMenu[];
72 extern APTR *VisualInfo;
73 extern unsigned char KbdBuffered;
74 extern struct TextFont *TextsFont;
75 extern struct TextFont *HackFont;
76 extern struct IOStdReq ConsoleIO;
77 extern struct MsgPort *HackPort;
78 
79 extern int txwidth, txheight, txbaseline;
80 #ifdef	SUPERBITMAP_MAP
81 extern struct BitMap amii_vbm;
82 #endif
83 
84 /* This gadget data is replicated for menu/text windows... */
85 extern struct PropInfo PropScroll;
86 extern struct Image Image1;
87 extern struct Gadget MenuScroll;
88 
89 /* This gadget is for the message window... */
90 extern struct PropInfo MsgPropScroll;
91 extern struct Image MsgImage1;
92 extern struct Gadget MsgScroll;
93 
94 extern struct TagItem tags[];
95 
96 extern struct win_setup
97 {
98     struct NewWindow newwin;
99     UWORD offx,offy,maxrow,rows,maxcol,cols;	/* CHECK TYPES */
100 } new_wins[];
101 
102 extern UWORD scrnpens[];
103 /* The last Window event is stored here for reference. */
104 extern WEVENT lastevent;
105 extern const char winpanicstr[];
106 extern struct TagItem scrntags[];
107 extern struct NewScreen NewHackScreen;
108 
109 extern int topl_addspace;
110 extern char spaces[ 76 ];
111 extern int wincnt;   /* # of nh windows opened */
112 extern struct Rectangle lastinvent, lastmsg;
113 
114 typedef struct {
115 	UWORD w, h;
116 	WORD x, y;
117 	UBYTE nPlanes;
118 	UBYTE masking;
119 	UBYTE compression;
120 	UBYTE reserved1;
121 	UWORD transparentColor;
122 	UBYTE xAspect, yAspect;
123 	WORD pageWidth, pageHeight;
124 } BitMapHeader;
125 
126 typedef enum {COL_MAZE_BRICK,COL_MAZE_STONE,COL_MAZE_HEAT,COL_MAZE_WOOD} MazeType;
127 extern struct PDAT pictdata;
128 extern struct Hook fillhook;
129 extern struct TagItem wintags[];
130 #ifndef	SHAREDLIB
131 #ifndef __GNUC__
132 void __asm LayerFillHook(
133     register __a0 struct Hook *hk,
134     register __a2 struct RastPort *rp,
135     register __a1 struct FillParams *fp );
136 #else
137 #ifdef __PPC__
138 struct EmulLibEntry LayerFillHook;
139 #else
140 void LayerFillHook(void);
141 #endif
142 #endif
143 #endif
144 extern int mxsize, mysize;
145