/
rogue25b1/
rogue25b1/space/planets/
rogue25b1/space/prototypes/
rogue25b1/space/ships/
/***************************************************************************\
[*]    ___    ____   ____   __   __  ____ [*]   ROGUE: ROM With Attitude  [*]
[*]   /#/ )  /#/  ) /#/  ) /#/  /#/ /#/   [*]    All rights reserved      [*]
[*]  /#/ <  /#/  / /#/ _  /#/  /#/ /#/--  [*]   Copyright(C) 2000-2001    [*]
[*] /#/   \(#(__/ (#(__/ (#(__/#/ (#(___  [*] Kenneth Conley (Mendanbar)  [*]
[*]  Expression of Digital Creativity..   [*]  scmud@mad.scientist.com    [*]
[-]---------------------------------------+-+-----------------------------[-]
[*] File: clientopt.h                                                     [*]
[*] Usage: Stuff for MCP, MXP and MSP                                     [*]
\***************************************************************************/

void toggle_compression(DESCRIPTOR_DATA *d);
void negotiate_telopt(DESCRIPTOR_DATA *d);
void convert_mxp_tags(int mxp, char *dest, const char *src, int len);

int process_telopt(DESCRIPTOR_DATA *d, int iac_first);
int count_mxp_tags(int mxp, const char *txt, int length);


/* strings */
#define MXP_ESC		"\x1B"
#define MXP_BEG		"\x03"
#define MXP_END		"\x04"
#define MXP_AMP		"\x05"

/* characters */
#define MXP_BEGc	'\x03'
#define MXP_ENDc	'\x04'
#define MXP_AMPc	'\x05'

#define MXP_TAG(arg)	MXP_BEG arg MXP_END
#define MXPMODE(arg)	MXP_ESC arg


/* states */
#define MXP_OPEN		"[0z"
#define MXP_SECURE		"[1z"
#define MXP_LOCKED		"[2z"
#define MXP_RESET		"[3z"
#define MXP_SECURE_ONCE		"[4z"
#define MXP_PERM_OPEN		"[5z"
#define MXP_PERM_SECURE		"[6z"
#define MXP_PERM_LOCKED		"[7z"

/* MCCP */
#define COMPRESS_BUF_SIZE	16384