Within mud.h change:
/*
* Channel bits.
*/
#define CHANNEL_AUCTION BV00
#define CHANNEL_CHAT BV01
#define CHANNEL_QUEST BV02
#define CHANNEL_IMMTALK BV03
#define CHANNEL_MUSIC BV04
#define CHANNEL_ASK BV05
#define CHANNEL_SHOUT BV06
#define CHANNEL_YELL BV07
#define CHANNEL_MONITOR BV08
#define CHANNEL_LOG BV09
#define CHANNEL_HIGHGOD BV10
#define CHANNEL_CLAN BV11
#define CHANNEL_BUILD BV12
#define CHANNEL_HIGH BV13
#define CHANNEL_AVTALK BV14
#define CHANNEL_PRAY BV15
#define CHANNEL_COUNCIL BV16
#define CHANNEL_GUILD BV17
#define CHANNEL_COMM BV18
#define CHANNEL_TELLS BV19
#define CHANNEL_ORDER BV20
#define CHANNEL_NEWBIE BV21
#define CHANNEL_WARTALK BV22
#define CHANNEL_RACETALK BV23
#define CHANNEL_WARN BV24
#define CHANNEL_WHISPER BV25
#define CHANNEL_AUTH BV26
#define CHANNEL_TRAFFIC BV27
Into:
/*
* Channel bits.
*/
typedef enum
{
CHANNEL_AUCTION, CHANNEL_CHAT, CHANNEL_QUEST, CHANNEL_IMMTALK, CHANNEL_MUSIC,
CHANNEL_ASK, CHANNEL_SHOUT, CHANNEL_YELL, CHANNEL_MONITOR, CHANNEL_LOG,
CHANNEL_HIGHGOD, CHANNEL_CLAN, CHANNEL_BUILD, CHANNEL_HIGH, CHANNEL_AVTALK,
CHANNEL_PRAY, CHANNEL_COUNCIL, CHANNEL_GUILD, CHANNEL_COMM, CHANNEL_TELLS,
CHANNEL_ORDER, CHANNEL_NEWBIE, CHANNEL_WARTALK, CHANNEL_RACETALK,
CHANNEL_WARN, CHANNEL_WHISPER, CHANNEL_AUTH, CHANNEL_TRAFFIC
} channel_bits;
in the char_data structure change:
int deaf;
into
EXT_BV deaf;
in save.c
In fwrite_char change:
if ( ch->deaf )
fprintf( fp, "Deaf %d\n", ch->deaf );
into:
if ( !xIS_EMPTY(ch->deaf) )
fprintf( fp, "Deaf %s\n", fprint_bitvector(&ch->deaf) );
in fread_char change:
KEY( "Deaf", ch->deaf, fread_number( fp ) );
into:
KEY( "Deaf", ch->deaf, fread_bitvector( fp ) );
In act_info.c
inside do_channels:
change all macros for ch->deaf into extended bitvector macros.
IS_SET becomes xIS_SET
REMOVE_BIT becomes xREMOVE_BIT
SET_BIT becomes xSET_BIT
In act_comm.c do likewise by searching all references of ->deaf