Difference between revisions of "Source:NetHack 3.1.0/macconf.h"
Jump to navigation
Jump to search
m (Automated source code upload) |
Kernigh bot (talk | contribs) m (NetHack 3.1.0/macconf.h moved to Source:NetHack 3.1.0/macconf.h: Robot: moved page) |
(No difference)
|
Latest revision as of 06:38, 4 March 2008
Below is the full text to macconf.h from the source code of NetHack 3.1.0. To link to a particular line, write [[NetHack 3.1.0/macconf.h#line123]], for example.
Warning! This is the source code from an old release. For the latest release, see Source code
The NetHack General Public License applies to screenshots, source code and other content from NetHack.
This content was modified from the original NetHack source code distribution (by splitting up NetHack content between wiki pages, and possibly further editing). See the page history for a list of who changed it, and on what dates.
1. /* SCCS Id: @(#)macconf.h 3.1 91/07/14 */ 2. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ 3. /* NetHack may be freely redistributed. See license for details. */ 4. 5. #ifdef MAC 6. # ifndef MACCONF_H 7. # define MACCONF_H 8. 9. /* 10. * Select your compiler... 11. * This could probably be automagic later on - I believe there's 12. * a unique symbol for MPW at least (it's "macintosh") 13. */ 14. # define MAC_MPW32 /* Headers, and for avoiding a bug */ 15. /* # define MAC_THINKC5 /* Maybe supported now ... */ 16. 17. # define RANDOM 18. # define NO_SIGNAL /* You wouldn't believe our signals ... */ 19. # define FILENAME 256 20. 21. # include "system.h" 22. 23. typedef long off_t ; 24. 25. /* 26. * Try and keep the number of files here to an ABSOLUTE minimum ! 27. * include the relevant files in the relevant .c files instead ! 28. */ 29. # include <segload.h> 30. # include <stdlib.h> 31. # include <windows.h> 32. # include <memory.h> 33. # include <quickdraw.h> 34. # include <events.h> 35. # include <controls.h> 36. # include <dialogs.h> 37. # include <fonts.h> 38. 39. /* 40. * We could use the PSN under sys 7 here ... 41. */ 42. # define getpid() 1 43. # define getuid() 1 44. # define index strchr 45. # define rindex strrchr 46. 47. # define Rand random 48. 49. # define error progerror 50. 51. # if defined(VISION_TABLES) && defined(BRACES) 52. # undef BRACES 53. # endif 54. 55. /* 56. * macfile.c 57. * MAC file I/O routines 58. */ 59. 60. extern int maccreat ( const char * name , long fileType ) ; 61. extern int macopen ( const char * name , int flags , long fileType ) ; 62. extern int macclose ( int fd ) ; 63. extern int macread ( int fd , void * ptr , unsigned ) ; 64. extern int macwrite ( int fd , void * ptr , unsigned ) ; 65. extern long macseek ( int fd , long pos , short whence ) ; 66. 67. 68. # if !defined(O_WRONLY) 69. # include <fcntl.h> 70. # endif 71. 72. #if !defined(SPEC_LEV) && !defined(DGN_COMP) 73. # define creat maccreat 74. # define open macopen 75. # define close macclose 76. # define read macread 77. # define write macwrite 78. # define lseek macseek 79. #endif 80. 81. # define TEXT_TYPE 'TEXT' 82. # define LEVL_TYPE 'LEVL' 83. # define BONE_TYPE 'BONE' 84. # define SAVE_TYPE 'SAVE' 85. # define PREF_TYPE 'PREF' 86. # define DATA_TYPE 'DATA' 87. # define MAC_CREATOR 'nh31' /* Registered with DTS ! */ 88. 89. typedef struct macdirs { 90. Str32 dataName ; 91. short dataRefNum ; 92. long dataDirID ; 93. 94. Str32 saveName ; 95. short saveRefNum ; 96. long saveDirID ; 97. 98. Str32 levelName ; 99. short levelRefNum ; 100. long levelDirID ; 101. } MacDirs ; 102. 103. typedef struct macflags { 104. Bitfield ( processes , 1 ) ; 105. Bitfield ( color , 1 ) ; 106. Bitfield ( folders , 1 ) ; 107. Bitfield ( tempMem , 1 ) ; 108. Bitfield ( help , 1 ) ; 109. Bitfield ( fsSpec , 1 ) ; 110. Bitfield ( trueType , 1 ) ; 111. Bitfield ( aux , 1 ) ; 112. Bitfield ( alias , 1 ) ; 113. Bitfield ( standardFile , 1 ) ; 114. } MacFlags ; 115. 116. extern MacDirs theDirs ; 117. extern MacFlags macFlags ; 118. 119. /* 120. * Mac windows 121. */ 122. #define NUM_MACWINDOWS 15 123. #define TEXT_BLOCK 512L 124. #define WIN_BASE_RES 128 125. #define WIN_BASE_KIND 128 126. #define NUM_MENU_ITEMS 60 /* We've run out of letters by then ... */ 127. #define CHAR_ENTER ((char)3) 128. #define CHAR_BS ((char)8) 129. #define CHAR_LF ((char)10) 130. #define CHAR_CR ((char)13) 131. #define CHAR_ESC ((char)27) 132. #define CHAR_BLANK ((char)32) 133. #define CHAR_DELETE ((char)127) 134. 135. #define MAC_GRAPHICS_ENV 136. 137. /* Window constants */ 138. #define kMapWindow 0 139. #define kStatusWindow 1 140. #define kMessageWindow 2 141. #define kTextWindow 3 142. #define kMenuWindow 4 143. #define kLastWindowKind kMenuWindow 144. 145. extern Boolean RetrievePosition ( short , short * , short * ) ; 146. extern Boolean RetrieveSize ( short , short , short , short * , short * ) ; 147. extern void SavePosition ( short , short , short ) ; 148. extern void SaveSize ( short , short , short ) ; 149. extern void SaveWindowPos ( WindowPtr ) ; 150. extern void SaveWindowSize ( WindowPtr ) ; 151. 152. /* 153. * This determines the minimum logical line length in text windows 154. * That is; even if physical width is less, this is where line breaks 155. * go at the minimum. 350 is about right for score lines with a 156. * geneva 10 pt font. 157. */ 158. #define MIN_RIGHT 350 159. 160. #define NUM_CANCEL_ITEMS 10 161. 162. typedef struct NhWindow { 163. WindowPtr theWindow ; 164. short kind ; 165. void ( * keyFunc ) ( EventRecord * , WindowPtr ) ; 166. void ( * clickFunc ) ( EventRecord * , WindowPtr ) ; 167. void ( * updateFunc ) ( EventRecord * , WindowPtr ) ; 168. void ( * cursorFunc ) ( EventRecord * , WindowPtr , RgnHandle ) ; 169. Handle windowText ; 170. long windowTextLen ; 171. long textBase ; 172. Point cursor ; /* In CHARS / LINES */ 173. short leading ; 174. short charHeight ; 175. short charWidth ; 176. short fontNum ; 177. short fontSize ; 178. short lin ; /* Used by menus */ 179. short wid ; /* Used by menus */ 180. char itemChars [ NUM_MENU_ITEMS ] ; 181. char cancelStr [ NUM_CANCEL_ITEMS ] ; 182. char cancelChar ; 183. char clear ; 184. char cursorDrawn ; 185. short scrollPos ; 186. ControlHandle scrollBar ; 187. } NhWindow ; 188. 189. #define NUM_STAT_ROWS 2 190. #define NUM_ROWS 22 191. #define NUM_COLS 81 /* We shouldn't use column 0 */ 192. 193. typedef struct MapData { 194. char map [ NUM_ROWS ] [ NUM_COLS ] ; 195. } MapData ; 196. 197. typedef struct StatusData { 198. char map [ NUM_STAT_ROWS ] [ NUM_COLS ] ; 199. } StatusData ; 200. 201. extern NhWindow * theWindows ; 202. 203. extern struct window_procs mac_procs ; 204. 205. extern short text_wind_font; 206. #define set_text_wind_font(fnt) (text_wind_font = fnt) 207. #define mono_font() set_text_wind_font(monaco) 208. #define normal_font() set_text_wind_font(geneva) 209. 210. #define E extern 211. 212. /* 213. * Define PORT_HELP to be the name of the port-specfic help file. 214. * This file is included into the resource fork of the application. 215. */ 216. #define PORT_HELP "MacHelp" 217. 218. E void NDECL(port_help); 219. 220. E void NDECL(mac_init_nhwindows); 221. E void NDECL(mac_player_selection); 222. E void NDECL(mac_askname); 223. E void NDECL(mac_get_nh_event) ; 224. E void FDECL(mac_exit_nhwindows, (const char *)); 225. E void FDECL(mac_suspend_nhwindows, (const char *)); 226. E void NDECL(mac_resume_nhwindows); 227. E winid FDECL(mac_create_nhwindow, (int)); 228. E void FDECL(mac_clear_nhwindow, (winid)); 229. E void FDECL(mac_display_nhwindow, (winid, BOOLEAN_P)); 230. E void FDECL(mac_destroy_nhwindow, (winid)); 231. E void FDECL(mac_curs, (winid,int,int)); 232. E void FDECL(mac_putstr, (winid, int, const char *)); 233. E void FDECL(mac_display_file, (const char *, BOOLEAN_P)); 234. E void FDECL(mac_start_menu, (winid)); 235. E void FDECL(mac_add_menu, (winid, CHAR_P, int, const char *)); 236. E void FDECL(mac_end_menu, (winid, CHAR_P, const char *, const char *)); 237. E char FDECL(mac_select_menu, (winid)); 238. E void NDECL(mac_update_inventory); 239. E void NDECL(mac_mark_synch); 240. E void NDECL(mac_wait_synch); 241. #ifdef CLIPPING 242. E void FDECL(mac_cliparound, (int, int)); 243. #endif 244. E void FDECL(mac_print_glyph, (winid,XCHAR_P,XCHAR_P,int)); 245. E void FDECL(mac_raw_print, (const char *)); 246. E void FDECL(mac_raw_print_bold, (const char *)); 247. E int NDECL(mac_nhgetch); 248. E int FDECL(mac_nh_poskey, (int *, int *, int *)); 249. E void NDECL(mac_nhbell); 250. E int NDECL(mac_doprev_message); 251. E char FDECL(mac_yn_function, (const char *, const char *, CHAR_P)); 252. E void FDECL(mac_getlin, (const char *,char *)); 253. #ifdef COM_COMPL 254. E void FDECL(mac_get_ext_cmd, (char *)); 255. #endif /* COM_COMPL */ 256. E void FDECL(mac_number_pad, (int)); 257. E void NDECL(mac_delay_output); 258. 259. /* defined in macwin.c and exported for used in mmodal.c */ 260. E void FDECL(HandleEvent, (EventRecord *)); 261. 262. /* defined in mmodal.c */ 263. E DialogPtr FDECL(mv_get_new_dialog, (short)); 264. E void FDECL(mv_close_dialog, (DialogPtr)); 265. E void FDECL(mv_modal_dialog, (ModalFilterProcPtr, short *)); 266. 267. #undef E 268. 269. extern void DimMenuBar ( void ) ; 270. extern void UndimMenuBar ( void ) ; 271. extern int SanePositions ( void ) ; 272. 273. #define NHW_BASE 0 274. extern winid BASE_WINDOW , WIN_MAP , WIN_MESSAGE , WIN_INVEN , WIN_STATUS ; 275. 276. extern Boolean itworked( short ); 277. extern void mustwork( short ); 278. extern void VDECL(progerror, (const char *,...)); 279. extern void attemptingto( char * ); 280. extern void pushattemptingto( char * ); 281. extern void popattempt( void ); 282. extern void UnloadAllSegments( void ); 283. extern void InitSegMgmt( void * ); 284. extern void IsResident ( void * ); 285. extern void NotResident ( void * ); 286. 287. # endif /* ! MACCONF_H */ 288. #endif /* MAC */