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