abstract
| - Below is the full text to proxycom.h from the source code of SLASH'EM 0.0.7E7F2. To link to a particular line, write [[SLASH'EM 0.0.7E7F2/proxycom.h#line123]], for example. The latest source code for vanilla NetHack is at Source code. 1. /* $Id: proxycom.h,v 1.17 2004/04/19 06:56:41 j_ali Exp $ */ 2. /* Copyright (c) Slash'EM Development Team 2002-2004 */ 3. /* NetHack may be freely redistributed. See license for details. */ 4. 5. #ifndef PROXYCOM_H 6. #define PROXYCOM_H 7. 8. /* The NhExt standard to which we conform */ 9. 10. #define EXT_STANDARD_MAJOR 1 11. #define EXT_STANDARD_MINOR 0 12. #define EXT_STANDARD_MICRO 2 /* Not used in the code */ 13. 14. #define EXT_IM_STATUS 0x0001 15. #define EXT_IM_DISPLAY_LAYERS 0x0002 16. 17. #define EXT_PARAM_INT 0x4001 18. #define EXT_PARAM_LONG 0x4002 19. #define EXT_PARAM_STRING 0x4003 20. #define EXT_PARAM_BYTES 0x4004 21. #define EXT_PARAM_BOOLEAN 0x4005 22. #define EXT_PARAM_CHAR 0x4006 23. #define EXT_PARAM_XDRF 0x4007 24. 25. #define EXT_PARAM_PTR 0x8000 26. 27. #define EXT_INT(i) EXT_PARAM_INT, i 28. #define EXT_LONG(l) EXT_PARAM_LONG, l 29. #define EXT_STRING(s) EXT_PARAM_STRING, (s) ? (s) : "" 30. #define EXT_BYTES(buf,nb) EXT_PARAM_BYTES, buf, nb 31. #define EXT_BOOLEAN(b) EXT_PARAM_BOOLEAN, b 32. #define EXT_CHAR(c) EXT_PARAM_CHAR, c 33. #define EXT_XDRF(func,data) EXT_PARAM_XDRF, func, data 34. 35. #define EXT_INT_P(i) EXT_PARAM_PTR | EXT_PARAM_INT, &(i) 36. #define EXT_LONG_P(l) EXT_PARAM_PTR | EXT_PARAM_LONG, &(l) 37. #define EXT_STRING_P(s) EXT_PARAM_PTR | EXT_PARAM_STRING, &(s) 38. #define EXT_BYTES_P(buf,nb) EXT_PARAM_PTR | EXT_PARAM_BYTES, &(buf), &(nb) 39. #define EXT_BOOLEAN_P(b) EXT_PARAM_PTR | EXT_PARAM_BOOLEAN, &(b) 40. #define EXT_CHAR_P(c) EXT_PARAM_PTR | EXT_PARAM_CHAR, &(c) 41. 42. #define EXT_SPECIAL_ERROR 0 43. 44. #define EXT_ERROR_UNSUPPORTED 1 45. #define EXT_ERROR_UNAVAILABLE 2 46. #define EXT_ERROR_INVALIDENCODING 3 47. #define EXT_ERROR_INVALIDPARAMS 4 48. #define EXT_ERROR_RESOURCEFAILURE 5 49. 50. #define EXT_ERROR_GENERIC 0x100 51. 52. #define EXT_ERROR_INTERNAL 0x101 53. #define EXT_ERROR_COMMS 0x102 54. #define EXT_ERROR_NOTSUPPORTED 0x103 55. #define EXT_ERROR_PROTOCOL 0x104 56. 57. #ifdef NHXDR_H 58. struct nhext_svc { 59. unsigned short id; 60. void FDECL((*handler), (unsigned short, NhExtXdr *, NhExtXdr *)); 61. }; 62. 63. struct nhext_line { 64. char *type; 65. int n; 66. char **tags, **values; 67. }; 68. 69. typedef void FDECL((*nhext_errhandler), (int, const char *)); 70. 71. E int FDECL(nhext_init, (NhExtIO *, NhExtIO *, struct nhext_svc *)); 72. E int FDECL(nhext_set_protocol, (int)); 73. E int NDECL(nhext_async_mode); 74. E void NDECL(nhext_end); 75. E int FDECL(nhext_subprotocol0_write_line, (struct nhext_line *)); 76. E void FDECL(nhext_subprotocol0_free_line, (struct nhext_line *)); 77. E struct nhext_line *NDECL(nhext_subprotocol0_read_line); 78. E char *FDECL(nhext_subprotocol0_get_failed_packet, (int *)); 79. E nhext_errhandler FDECL(nhext_set_errhandler, (nhext_errhandler)); 80. E int VDECL(nhext_rpc_params, (NhExtXdr *xdrs, int, ...)); 81. E int VDECL(nhext_rpc, (unsigned short, ...)); 82. E int FDECL(nhext_svc, (struct nhext_svc *)); 83. E void FDECL(nhext_set_async_masks, (int, unsigned long *)); 84. E void FDECL(nhext_set_unsupported, (int)); 85. E unsigned short NDECL(nhext_rpc_get_next_serial); 86. E unsigned short NDECL(nhext_svc_get_serial); 87. E void FDECL(nhext_send_error, (unsigned short, unsigned char)); 88. #endif /* NHXDR_H */ 89. 90. #define EXT_FID_INIT 0x01 91. #define EXT_FID_INIT_NHWINDOWS 0x02 92. #define EXT_FID_PLAYER_SELECTION 0x03 93. #define EXT_FID_ASKNAME 0x04 94. #define EXT_FID_GET_NH_EVENT 0x05 95. #define EXT_FID_EXIT_NHWINDOWS 0x06 96. #define EXT_FID_SUSPEND_NHWINDOWS 0x07 97. #define EXT_FID_RESUME_NHWINDOWS 0x08 98. #define EXT_FID_CREATE_NHWINDOW 0x09 99. #define EXT_FID_CLEAR_NHWINDOW 0x0A 100. #define EXT_FID_DISPLAY_NHWINDOW 0x0B 101. #define EXT_FID_DESTROY_NHWINDOW 0x0C 102. #define EXT_FID_CURS 0x0D 103. #define EXT_FID_PUTSTR 0x0E 104. #define EXT_FID_DISPLAY_FILE 0x0F 105. #define EXT_FID_START_MENU 0x10 106. #define EXT_FID_ADD_MENU 0x11 107. #define EXT_FID_END_MENU 0x12 108. #define EXT_FID_SELECT_MENU 0x13 109. #define EXT_FID_MESSAGE_MENU 0x14 110. #define EXT_FID_UPDATE_INVENTORY 0x15 111. #define EXT_FID_MARK_SYNC 0x16 112. #define EXT_FID_WAIT_SYNC 0x17 113. #define EXT_FID_CLIPAROUND 0x18 114. #define EXT_FID_UPDATE_POSITIONBAR 0x19 115. #define EXT_FID_PRINT_GLYPH 0x1A 116. #define EXT_FID_RAW_PRINT 0x1B 117. #define EXT_FID_RAW_PRINT_BOLD 0x1C 118. #define EXT_FID_NHGETCH 0x1D 119. #define EXT_FID_NH_POSKEY 0x1E 120. #define EXT_FID_NHBELL 0x1F 121. #define EXT_FID_DOPREV_MESSAGE 0x20 122. #define EXT_FID_YN_FUNCTION 0x21 123. #define EXT_FID_GETLIN 0x22 124. #define EXT_FID_GET_EXT_CMD 0x23 125. #define EXT_FID_NUMBER_PAD 0x24 126. #define EXT_FID_DELAY_OUTPUT 0x25 127. #define EXT_FID_CHANGE_COLOR 0x26 128. #define EXT_FID_CHANGE_BACKGROUND 0x27 129. #define EXT_FID_SET_FONT_NAME 0x28 130. #define EXT_FID_GET_COLOR_STRING 0x29 131. #define EXT_FID_START_SCREEN 0x2A 132. #define EXT_FID_END_SCREEN 0x2B 133. #define EXT_FID_OUTRIP 0x2C 134. #define EXT_FID_PREFERENCE_UPDATE 0x2D 135. #define EXT_FID_STATUS 0x2E 136. #define EXT_FID_PRINT_GLYPH_LAYERED 0x2F 137. #define EXT_FID_SEND_CONFIG_FILE 0x30 138. 139. #ifdef NHXDR_H 140. struct proxy_init_nhwindow_req { 141. int argc; 142. char **argv; 143. }; 144. 145. struct proxy_init_nhwindow_res { 146. nhext_xdr_bool_t inited; 147. int argc; 148. char **argv; 149. int capc; 150. char **capv; 151. }; 152. 153. struct proxy_mi { 154. int item; /* identifier */ 155. long count; /* count */ 156. }; 157. 158. struct proxy_select_menu_res { 159. int retval; 160. int n; 161. struct proxy_mi *selected; 162. }; 163. 164. struct proxy_status_req { 165. int reconfig; 166. int nv; 167. const char **values; 168. }; 169. 170. struct proxy_glyph_row { 171. int start; 172. int ng; 173. int *glyphs; 174. }; 175. 176. struct proxy_glyph_layer { 177. int start; 178. int nr; 179. struct proxy_glyph_row *rows; 180. }; 181. 182. struct proxy_print_glyph_layered_req { 183. int window; 184. int nl; 185. struct proxy_glyph_layer *layers; 186. }; 187. 188. E nhext_xdr_bool_t FDECL(proxy_xdr_init_nhwindow_req, 189. (NhExtXdr *, struct proxy_init_nhwindow_req *)); 190. E nhext_xdr_bool_t FDECL(proxy_xdr_init_nhwindow_res, 191. (NhExtXdr *, struct proxy_init_nhwindow_res *)); 192. E nhext_xdr_bool_t FDECL(proxy_xdr_proxy_mi, (NhExtXdr *, struct proxy_mi *)); 193. E nhext_xdr_bool_t FDECL(proxy_xdr_select_menu_res, 194. (NhExtXdr *, struct proxy_select_menu_res *)); 195. E nhext_xdr_bool_t FDECL(proxy_xdr_status_req, 196. (NhExtXdr *, struct proxy_status_req *)); 197. E nhext_xdr_bool_t FDECL(proxy_xdr_print_glyph_layered_req, 198. (NhExtXdr *, struct proxy_print_glyph_layered_req *)); 199. #endif /* NHXDR_H */ 200. 201. #define EXT_CID_DISPLAY_INVENTORY 0x01 202. #define EXT_CID_DLBH_FOPEN 0x02 203. #define EXT_CID_DLBH_FGETS 0x03 204. #define EXT_CID_DLBH_FREAD 0x04 205. #define EXT_CID_DLBH_FWRITE 0x05 206. #define EXT_CID_DLBH_FCLOSE 0x06 207. #define EXT_CID_DLBH_FMD5SUM 0x07 208. #define EXT_CID_FLUSH_SCREEN 0x08 209. #define EXT_CID_DOREDRAW 0x09 210. #define EXT_CID_INTERFACE_MODE 0x0A 211. #define EXT_CID_PARSE_OPTIONS 0x0B 212. #define EXT_CID_GET_OPTION 0x0C 213. #define EXT_CID_GET_PLAYER_CHOICES 0x0D 214. #define EXT_CID_GET_VALID_SELECTIONS 0x0E 215. #define EXT_CID_QUIT_GAME 0x0F 216. #define EXT_CID_DISPLAY_SCORE 0x10 217. #define EXT_CID_DOSET 0x11 218. #define EXT_CID_GET_EXTENDED_COMMANDS 0x12 219. #define EXT_CID_MAP_MENU_CMD 0x13 220. #define EXT_CID_GET_STANDARD_WINID 0x14 221. #define EXT_CID_GET_TILESETS 0x15 222. #define EXT_CID_GET_GLYPH_MAPPING 0x16 223. #define EXT_CID_GET_EXTENSIONS 0x17 224. #define EXT_CID_SET_OPTION_MOD_STATUS 0x18 225. 226. #ifdef NHXDR_H 227. struct proxycb_dlbh_fmd5sum_res { 228. int retval; 229. const char *digest; 230. }; 231. 232. struct proxycb_get_player_choices_res_role { 233. const char *male; 234. const char *female; 235. }; 236. 237. struct proxycb_get_player_choices_res { 238. int n_aligns; 239. const char **aligns; 240. int n_genders; 241. const char **genders; 242. int n_races; 243. const char **races; 244. int n_roles; 245. struct proxycb_get_player_choices_res_role *roles; 246. }; 247. 248. struct proxycb_get_valid_selections_res { 249. int no_roles; 250. int no_races; 251. int no_aligns; 252. int no_genders; 253. int n_masks; 254. unsigned long *masks; 255. }; 256. 257. struct proxycb_get_extended_commands_res { 258. int n_commands; 259. const char **commands; 260. }; 261. 262. struct proxycb_get_tilesets_res_tileset { 263. const char *name; 264. const char *file; 265. const char *mapfile; 266. unsigned long flags; 267. }; 268. 269. struct proxycb_get_tilesets_res { 270. int n_tilesets; 271. struct proxycb_get_tilesets_res_tileset *tilesets; 272. }; 273. 274. #define RGB_SYM(rgb, sym) ((rgb) << 8 | (sym)) 275. #define RGBSYM_RGB(rgbsym) ((rgbsym) >> 8 & 0xFFFFFF) 276. #define RGBSYM_SYM(rgbsym) ((rgbsym) & 0xFF) 277. 278. struct proxycb_get_glyph_mapping_res_symdef { 279. long rgbsym; 280. const char *description; 281. }; 282. 283. struct proxycb_get_glyph_mapping_res_submapping { 284. struct proxycb_get_glyph_mapping_res_symdef symdef; 285. int n_glyphs; 286. struct proxycb_get_glyph_mapping_res_symdef *glyphs; 287. }; 288. 289. struct proxycb_get_glyph_mapping_res_mapping { 290. const char *flags; 291. int base_mapping; 292. int alt_glyph; 293. struct proxycb_get_glyph_mapping_res_symdef symdef; 294. int n_submappings; 295. struct proxycb_get_glyph_mapping_res_submapping *submappings; 296. }; 297. 298. struct proxycb_get_glyph_mapping_res { 299. int no_glyph; 300. long transparent; 301. int n_mappings; 302. struct proxycb_get_glyph_mapping_res_mapping *mappings; 303. }; 304. 305. struct proxycb_get_extensions_res_extension { 306. const char *name; 307. const char *version; 308. int no_procedures; 309. }; 310. 311. struct proxycb_get_extensions_res { 312. int n_extensions; 313. struct proxycb_get_extensions_res_extension *extensions; 314. }; 315. 316. /* This structure is used for both the sub-protocol 2 init request and reply */ 317. struct proxycb_subprot2_init { 318. int n_masks; 319. unsigned long *masks; 320. }; 321. 322. extern nhext_xdr_bool_t FDECL(proxycb_xdr_get_player_choices_res_role, 323. (NhExtXdr *, struct proxycb_get_player_choices_res_role *)); 324. extern nhext_xdr_bool_t FDECL(proxycb_xdr_get_player_choices_res, 325. (NhExtXdr *, struct proxycb_get_player_choices_res *)); 326. extern nhext_xdr_bool_t FDECL(proxycb_xdr_get_valid_selections_res, 327. (NhExtXdr *, struct proxycb_get_valid_selections_res *)); 328. extern nhext_xdr_bool_t FDECL(proxycb_xdr_get_extended_commands_res, 329. (NhExtXdr *, struct proxycb_get_extended_commands_res *)); 330. extern nhext_xdr_bool_t FDECL(proxycb_xdr_get_tilesets_res_tileset, 331. (NhExtXdr *, struct proxycb_get_tilesets_res_tileset *)); 332. extern nhext_xdr_bool_t FDECL(proxycb_xdr_get_tilesets_res, 333. (NhExtXdr *, struct proxycb_get_tilesets_res *)); 334. extern nhext_xdr_bool_t FDECL(proxycb_xdr_get_glyph_mapping_res_symdef, 335. (NhExtXdr *, struct proxycb_get_glyph_mapping_res_symdef *)); 336. extern nhext_xdr_bool_t FDECL(proxycb_xdr_get_glyph_mapping_res_submapping, 337. (NhExtXdr *, struct proxycb_get_glyph_mapping_res_submapping *)); 338. extern nhext_xdr_bool_t FDECL(proxycb_xdr_get_glyph_mapping_res_mapping, 339. (NhExtXdr *, struct proxycb_get_glyph_mapping_res_mapping *)); 340. extern nhext_xdr_bool_t FDECL(proxycb_xdr_get_glyph_mapping_res, 341. (NhExtXdr *, struct proxycb_get_glyph_mapping_res *)); 342. extern nhext_xdr_bool_t FDECL(proxycb_xdr_get_extensions_res, 343. (NhExtXdr *, struct proxycb_get_extensions_res *)); 344. extern nhext_xdr_bool_t FDECL(proxycb_xdr_subprot2_init, 345. (NhExtXdr *, struct proxycb_subprot2_init *)); 346. #endif /* NHXDR_H */ 347. 348. /* riputil.c */ 349. extern char * FDECL(get_killer_string, (int)); 350. /* getopt.c */ 351. extern char * FDECL(get_option, (const char *)); 352. /* glyphmap.c */ 353. extern void NDECL(set_glyph_mapping); 354. extern struct proxycb_get_glyph_mapping_res * NDECL(get_glyph_mapping); 355. extern void FDECL(free_glyph_mapping, (struct proxycb_get_glyph_mapping_res *)); 356. 357. #endif /* PROXYCOM_H */
|