/****************************************************************************
* [S]imulated [M]edieval [A]dventure multi[U]ser [G]ame | \\._.// *
* -----------------------------------------------------------| (0...0) *
* SMAUG 1.0 (C) 1994, 1995, 1996 by Derek Snider | ).:.( *
* -----------------------------------------------------------| {o o} *
* SMAUG code team: Thoric, Altrag, Blodkai, Narn, Haus, | / ' ' \ *
* Scryn, Rennard, Swordbearer, Gorog, Grishnakh and Tricops |~'~.VxvxV.~'~*
* ------------------------------------------------------------------------ *
* Online Building and Editing Module *
****************************************************************************/
#include <sys/types.h>
#include <ctype.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include "mud.h"
#define MOB 0
#define OBJ 1
#define ROOM 2
#define CONTROL 3
#define NO_COMMAND "there_is_to_be_no_command_associated_with_this_element"
/*
* Externals
*/
int get_npc_race( char *type );
/*
* Locals
*/
void refresh_page(CHAR_DATA * ch);
char *get_ris(MOB_INDEX_DATA * idx, int risFlag);
void fill_in_mob_page(CHAR_DATA * ch, MOB_INDEX_DATA * idx, char page);
void fill_in_obj_page(CHAR_DATA * ch, OBJ_INDEX_DATA * idx, char page);
void fill_in_room_page(CHAR_DATA * ch, ROOM_INDEX_DATA * idx, char page);
void fill_in_control_page(CHAR_DATA * ch, char page);
void send_page_to_char(CHAR_DATA * ch, MOB_INDEX_DATA * idx, char page);
void send_room_page_to_char(CHAR_DATA * ch, ROOM_INDEX_DATA * idx, char page);
void send_control_page_to_char(CHAR_DATA * ch, char page);
void send_obj_page_to_char(CHAR_DATA * ch, OBJ_INDEX_DATA * idx, char page);
int get_affect(OBJ_INDEX_DATA * obj, int type);
int get_bvl(int bitvector);
void format_string(char output[], char *str, int length);
char *get_item_strings( int item_number, int which_string );
static char *const space = " ";
static char *const check = "X";
MENU_DATA room_help_page_data[] =
{
{ "-", "a", 13, 2, "", NULL, STRING, 0, "rmenu a" },
{ "-", "b", 13, 2, "", NULL, STRING, 0, "rmenu b" },
{ "-", "c", 13, 2, "", NULL, STRING, 0, "rmenu c" },
{ "-", "h", 13, 2, "", NULL, STRING, 0, "rmenu h" },
{ " ", " ", 0, 0, " ", NULL, (int) NULL, 0, NULL }
};
MENU_DATA mob_help_page_data[] =
{
{ "-", "a", 13, 2, "", NULL, STRING, 1, "mmenu %s a" },
{ "-", "b", 13, 2, "", NULL, STRING, 1, "mmenu %s b" },
{ "-", "c", 13, 2, "", NULL, STRING, 1, "mmenu %s c" },
{ "-", "d", 13, 2, "", NULL, STRING, 1, "mmenu %s d" },
{ "-", "e", 13, 2, "", NULL, STRING, 1, "mmenu %s e" },
{ "-", "f", 13, 2, "", NULL, STRING, 1, "mmenu %s f" },
{ "-", "h", 13, 2, "", NULL, STRING, 1, "mmenu %s h" },
{ " ", " ", 0, 0, " ", NULL, (int) NULL, 0, NULL }
};
MENU_DATA obj_help_page_data[] =
{
{ "-", "a", 13, 2, "", NULL, STRING, 1, "omenu %s a" },
{ "-", "b", 13, 2, "", NULL, STRING, 1, "omenu %s b" },
{ "-", "c", 13, 2, "", NULL, STRING, 1, "omenu %s c" },
{ "-", "d", 13, 2, "", NULL, STRING, 1, "omenu %s d" },
{ "-", "e", 13, 2, "", NULL, STRING, 1, "omenu %s e" },
{ "-", "h", 13, 2, "", NULL, STRING, 1, "omenu %s h" },
{ " ", " ", 0, 0, " ", NULL, (int) NULL, 0, NULL }
};
MENU_DATA control_help_page_data[] =
{
{ "-", "a", 13, 2, "", NULL, STRING, 0, "cmenu a" },
{ "-", "h", 13, 2, "", NULL, STRING, 0, "cmenu h" },
{ " ", " ", 0, 0, " ", NULL, (int) NULL, 0, NULL }
};
MENU_DATA room_page_d_data[] =
{{"1", "a", 2, 24, "%1.1s", NULL, STRING, 0, "redit default_room hut"},
{"1", "b", 2, 42, "%1.1s", NULL, STRING, 0, "redit default_room tent"},
{ "1", "c", 2, 57, "%1.1s", NULL, STRING, 0, "redit default_room hovel" },
{ "1", "d", 2, 72, "%1.1s", NULL, STRING, 0, "redit default_room campsite" },
{ "1", "e", 3, 24, "%1.1s", NULL, STRING, 0, "redit default_room shack" },
{ "1", "f", 3, 42, "%1.1s", NULL, STRING, 0, "redit default_room cabin" },
{ "1", "g", 3, 57, "%1.1s", NULL, STRING, 0, "redit default_room homestead"},
{ "1", "h", 3, 72, "%1.1s", NULL, STRING, 0, "redit default_room keep" },
{ "1", "i", 4, 24, "%1.1s", NULL, STRING, 0, "redit default_room fortress" },
{ "1", "j", 4, 42, "%1.1s", NULL, STRING, 0, "redit default_room castle" },
{ "1", "k", 4, 57, "%1.1s", NULL, STRING, 0, "redit default_room palace" },
{ "1", "l", 4, 72, "%1.1s", NULL, STRING, 0, "redit default_room temple" },
{ "1", "m", 5, 24, "%1.1s", NULL, STRING, 0, "redit default_room store" },
{ "1", "n", 5, 42, "%1.1s", NULL, STRING, 0, "redit default_room graveyard"},
{
"1", "q", 6, 24, "%1.1s", NULL, STRING, 0, "redit default_room basement"
},
{
"1", "r", 6, 42, "%1.1s", NULL, STRING, 0, "redit default_room bedroom"
},
{
"1", "s", 6, 57, "%1.1s", NULL, STRING, 0, "redit default_room attic"
},
{
"1", "t", 6, 72, "%1.1s", NULL, STRING, 0, "redit default_room workroom"
},
{
"1", "u", 7, 24, "%1.1s", NULL, STRING, 0, "redit default_room cellar"
},
{
"1", "v", 7, 42, "%1.1s", NULL, STRING, 0, "redit default_room banquetroom"
},
{
"1", "w", 7, 57, "%1.1s", NULL, STRING, 0, "redit default_room tower"
},
{
"1", "x", 7, 72, "%1.1s", NULL, STRING, 0, "redit default_room workshop"
},
{
"1", "y", 8, 24, "%1.1s", NULL, STRING, 0, "redit default_room vault"
},
{
"1", "z", 8, 42, "%1.1s", NULL, STRING, 0, "redit default_room sitting_room"
},
{
"1", "A", 8, 57, "%1.1s", NULL, STRING, 0, "redit default_room turret"
},
{
"1", "B", 8, 72, "%1.1s", NULL, STRING, 0, "redit default_room lab"
},
{
"1", "C", 9, 24, "%1.1s", NULL, STRING, 0, "redit default_room crypt"
},
{
"1", "D", 9, 42, "%1.1s", NULL, STRING, 0, "redit default_room kitchen"
},
{
"1", "E", 9, 57, "%1.1s", NULL, STRING, 0, "redit default_room corridor"
},
{
"1", "F", 9, 72, "%1.1s", NULL, STRING, 0, "redit default_room library"
},
{
"1", "G", 10, 24, "%1.1s", NULL, STRING, 0, "redit default_room storeroom"
},
{
"1", "H", 10, 42, "%1.1s", NULL, STRING, 0, "redit default_room office"
},
{
"1", "I", 10, 57, "%1.1s", NULL, STRING, 0, "redit default_room passage"
},
{
"1", "J", 10, 72, "%1.1s", NULL, STRING, 0, "redit default_room treasury"
},
{
"1", "K", 11, 24, "%1.1s", NULL, STRING, 0, "redit default_room closet"
},
{
"1", "L", 11, 42, "%1.1s", NULL, STRING, 0, "redit default_room drawing_room"
},
{
"1", "M", 11, 57, "%1.1s", NULL, STRING, 0, "redit default_room hallway"
},
{
"1", "N", 11, 72, "%1.1s", NULL, STRING, 0, "redit default_room ladder"
},
{
"1", "O", 12, 24, "%1.1s", NULL, STRING, 0, "redit default_room foyer"
},
{
"1", "P", 12, 42, "%1.1s", NULL, STRING, 0, "redit default_room arboretum"
},
{
"1", "Q", 12, 57, "%1.1s", NULL, STRING, 0, "redit default_room stairway"
},
{
"1", "R", 12, 72, "%1.1s", NULL, STRING, 0, "redit default_room vent"
},
{
"1", "S", 13, 24, "%1.1s", NULL, STRING, 0, "redit default_room entrance"
},
{
"1", "T", 13, 42, "%1.1s", NULL, STRING, 0, "redit default_room larder"
},
{
"1", "U", 13, 57, "%1.1s", NULL, STRING, 0, "redit default_room landing"
},
{
"1", "V", 13, 72, "%1.1s", NULL, STRING, 0, "redit default_room dumbwaiter"
},
{
"1", "W", 14, 24, "%1.1s", NULL, STRING, 0, "redit default_room gate"
},
{
"1", "X", 14, 42, "%1.1s", NULL, STRING, 0, "redit default_room chamber"
},
{
"1", "Y", 14, 57, "%1.1s", NULL, STRING, 0, "redit default_room balcony"
},
{
"1", "Z", 14, 72, "%1.1s", NULL, STRING, 0, "redit default_room shaft"
},
{
"1", "2", 15, 42, "%1.1s", NULL, STRING, 0, "redit default_room conservatory"
},
{
"1", "4", 15, 72, "%1.1s", NULL, STRING, 0, "redit default_room chimney"
},
{
"1", "5", 16, 24, "%1.1s", NULL, STRING, 0, "redit default_room well"
},
{ "1", "6", 16, 42, "%1.1s", NULL, STRING, 0, "redit default_room garden" }, { "1", "7", 16, 57, "%1.1s", NULL, STRING, 0, "redit default_room cave" },
{ "1", "8", 16, 72, "%1.1s", NULL, STRING, 0, "redit default_room mine" },
{ "1", "9", 17, 24, "%1.1s", NULL, STRING, 0, "redit default_room grotto" },
{ "1", "0", 17, 42, "%1.1s", NULL, STRING, 0, "redit default_room tunnel" }, { "1", "$", 17, 57, "%1.1s", NULL, STRING, 0, "redit default_room maze" },
{ "-", "a", 13, 2, "", NULL, STRING, 0, "rmenu a" },
{ "-", "b", 13, 2, "", NULL, STRING, 0, "rmenu b" },
{ "-", "c", 13, 2, "", NULL, STRING, 0, "rmenu c" },
{ "-", "h", 13, 2, "", NULL, STRING, 0, "rmenu h" },
{
" ", " ", 0, 0, " ", NULL, (int) NULL, 0, NULL
}
};
MENU_DATA room_page_c_data[] =
{{
"1", "n", 2, 52, "%1.1s", NULL, STRING, 0, "redit substate north"
},
{
"1", "u", 2, 70, "%1.1s", NULL, STRING, 0, "redit substate up"
},
{
"1", "w", 3, 43, "%1.1s", NULL, STRING, 0, "redit substate east"
},
{
"1", "e", 3, 61, "%1.1s", NULL, STRING, 0, "redit substate west"
},
{
"1", "s", 4, 52, "%1.1s", NULL, STRING, 0, "redit substate south"
},
{
"1", "d", 4, 70, "%1.1s", NULL, STRING, 0, "redit substate down"
},
{
"2", "a", 6, 25, "%1.1s", NULL, STRING, 0, "redit ex_flags isdoor"
},
{
"2", "b", 6, 41, "%1.1s", NULL, STRING, 0, "redit ex_flags secret"
},
{
"2", "c", 7, 25, "%1.1s", NULL, STRING, 0, "redit ex_flags closed"
},
{
"2", "d", 7, 41, "%1.1s", NULL, STRING, 0, "redit ex_flags pickproof"
},
{
"2", "e", 8, 25, "%1.1s", NULL, STRING, 0, "redit ex_flags locked"
},
{
"2", "f", 8, 41, "%1.1s", NULL, STRING, 0, "redit ex_flags nopassdoor"
},
{
"2", "i", 10, 14, "%5.5hd", NULL, SH_INT, 1, "redit ex_to_room %s"
},
{
"2", NO_COMMAND
,10, 22, "%-19.19s", NULL, STRING, 0, NO_COMMAND
},
{
"2", "j", 11, 14, "%5.5hd", NULL, SH_INT, 1, "redit ex_key %s"
},
{ "2", NO_COMMAND ,11, 22, "%-19.19s", NULL, STRING, 0, NO_COMMAND
},
{ "2", "k", 13, 2, "%-70.70s", NULL, STRING, 1, "redit ex_exdesc %s" },
{ "-", "a", 13, 2, "", NULL, STRING, 0, "rmenu a" },
{ "-", "b", 13, 2, "", NULL, STRING, 0, "rmenu b" },
{ "-", "c", 13, 2, "", NULL, STRING, 0, "rmenu c" },
{ "-", "h", 13, 2, "", NULL, STRING, 0, "rmenu h" },
{
" ", " ", 0, 0, " ", NULL, (int) NULL, 0, NULL
}
};
MENU_DATA room_page_a_data[] =
{{
"1", "a", 5, 2, "%-73.73s", NULL, STRING, 1, "redit name %s"
},
{
"1", "b", 7, 2, "%-73.73s", NULL, STRING, 0, "redit desc"
},
{ "-", "a", 13, 2, "", NULL, STRING, 0, "rmenu a" },
{ "-", "b", 13, 2, "", NULL, STRING, 0, "rmenu b" },
{ "-", "c", 13, 2, "", NULL, STRING, 0, "rmenu c" },
{ "-", "h", 13, 2, "", NULL, STRING, 0, "rmenu h" },
{
" ", " ", 0, 0, " ", NULL, (int) NULL, 0, NULL
}
};
MENU_DATA room_page_b_data[] =
{{
"1", "a", 2, 26, "%1.1s", NULL, STRING, 1, "redit flags dark"
},
{
"1", "b", 2, 42, "%1.1s", NULL, STRING, 1, "redit flags death"
},
{
"1", "c", 2, 60, "%1.1s", NULL, STRING, 1, "redit flags nomob"
},
{
"1", "d", 3, 26, "%1.1s", NULL, STRING, 1, "redit flags indoors"
},
{
"1", "e", 3, 42, "%1.1s", NULL, STRING, 1, "redit flags lawful"
},
{
"1", "f", 3, 60, "%1.1s", NULL, STRING, 1, "redit flags nomagic"
},
{
"1", "g", 4, 26, "%1.1s", NULL, STRING, 1, "redit flags petshop"
},
{
"1", "h", 4, 42, "%1.1s", NULL, STRING, 1, "redit flags neutral"
},
{
"1", "i", 4, 60, "%1.1s", NULL, STRING, 1, "redit flags nodrop"
},
{
"1", "j", 5, 26, "%1.1s", NULL, STRING, 1, "redit flags safe"
},
{
"1", "k", 5, 42, "%1.1s", NULL, STRING, 1, "redit flags chaotic"
},
{
"1", "l", 5, 60, "%1.1s", NULL, STRING, 1, "redit flags nodropall"
},
{
"1", "m", 6, 26, "%1.1s", NULL, STRING, 1, "redit flags teleport"
},
{
"1", "n", 6, 42, "%1.1s", NULL, STRING, 1, "redit flags donation"
},
{
"1", "o", 6, 60, "%1.1s", NULL, STRING, 1, "redit flags norecall"
},
{
"1", "p", 7, 26, "%1.1s", NULL, STRING, 1, "redit flags private"
},
{
"1", "q", 7, 42, "%1.1s", NULL, STRING, 1, "redit flags solitary"
},
{
"1", "r", 7, 60, "%1.1s", NULL, STRING, 1, "redit flags noastral"
},
{
"1", "s", 8, 26, "%1.1s", NULL, STRING, 1, "redit flags tunnel"
},
{
"1", "t", 8, 42, "%1.1s", NULL, STRING, 1, "redit flags silence"
},
{
"1", "u", 8, 60, "%1.1s", NULL, STRING, 1, "redit flags nosummon"
},
{
"1", "v", 9, 26, "%1.1s", NULL, STRING, 1, "redit flags clanstorage"
},
{
"1", "w", 9, 42, "%1.1s", NULL, STRING, 1, "redit flags logspeech"
},
{
"1", "x", 9, 60, "%1.1s", NULL, STRING, 1, "redit flags nofloor"
},
{
"2", "a", 11, 25, "%1.1s", NULL, STRING, 0, "redit sector 0"
}, /* inside */
{
"2", "b", 11, 44, "%1.1s", NULL, STRING, 0, "redit sector 3"
}, /* forest */
{
"2", "c", 11, 55, "%1.1s", NULL, STRING, 0, "redit sector 1"
}, /* city */
{
"2", "d", 11, 68, "%1.1s", NULL, STRING, 0, "redit sector 4"
}, /* hills */
{
"2", "e", 12, 25, "%1.1s", NULL, STRING, 0, "redit sector 5"
}, /* mountain */
{
"2", "f", 12, 44, "%1.1s", NULL, STRING, 0, "redit sector 6"
}, /* water_s */
{
"2", "g", 12, 55, "%1.1s", NULL, STRING, 0, "redit sector 9"
}, /* air */
{
"2", "h", 12, 68, "%1.1s", NULL, STRING, 0, "redit sector 10"
}, /* desert */
{
"2", "i", 13, 25, "%1.1s", NULL, STRING, 0, "redit sector 11"
}, /* dunno */
{
"2", "j", 13, 44, "%1.1s", NULL, STRING, 0, "redit sector 7"
}, /* water_n */
{
"2", "l", 13, 68, "%1.1s", NULL, STRING, 0, "redit sector 2"
}, /* field */
{ "-", "a", 13, 2, "", NULL, STRING, 0, "rmenu a" },
{ "-", "b", 13, 2, "", NULL, STRING, 0, "rmenu b" },
{ "-", "c", 13, 2, "", NULL, STRING, 0, "rmenu c" },
{ "-", "h", 13, 2, "", NULL, STRING, 0, "rmenu h" },
{
" ", " ", 0, 0, " ", NULL, (int)NULL, 0, NULL
}
};
MENU_DATA obj_page_e_data[] =
{{
"1", "a", 2, 26, "%1.1s", NULL, STRING, 1, "oset %s flags evil"
},
{
"1", "b", 2, 44, "%1.1s", NULL, STRING, 1, "oset %s flags antigood"
},
{
"1", "c", 2, 61, "%1.1s", NULL, STRING, 1, "oset %s flags nodrop"
},
{
"1", "d", 3, 26, "%1.1s", NULL, STRING, 1, "oset %s flags invis"
},
{
"1", "e", 3, 44, "%1.1s", NULL, STRING, 1, "oset %s flags antievil"
},
{
"1", "f", 3, 61, "%1.1s", NULL, STRING, 1, "oset %s flags noremove"
},
{
"1", "g", 4, 26, "%1.1s", NULL, STRING, 1, "oset %s flags hidden"
},
{
"1", "h", 4, 44, "%1.1s", NULL, STRING, 1, "oset %s flags antineutral"
},
{
"1", "i", 4, 61, "%1.1s", NULL, STRING, 1, "oset %s flags inventory"
},
{
"1", "j", 5, 12, "%1.1s", NULL, STRING, 1, "oset %s flags glow"
},
{
"1", "k", 5, 26, "%1.1s", NULL, STRING, 1, "oset %s flags bless"
},
{
"1", "l", 5, 44, "%1.1s", NULL, STRING, 1, "oset %s flags antimage"
},
{
"1", "m", 5, 61, "%1.1s", NULL, STRING, 1, "oset %s flags donation"
},
{
"1", "n", 6, 12, "%1.1s", NULL, STRING, 1, "oset %s flags hum"
},
{
"1", "o", 6, 26, "%1.1s", NULL, STRING, 1, "oset %s flags metal"
},
{
"1", "p", 6, 44, "%1.1s", NULL, STRING, 1, "oset %s flags antithief"
},
{
"1", "q", 6, 61, "%1.1s", NULL, STRING, 1, "oset %s flags clanobject"
},
{
"1", "r", 7, 12, "%1.1s", NULL, STRING, 1, "oset %s flags dark"
},
{
"1", "s", 7, 26, "%1.1s", NULL, STRING, 1, "oset %s flags organic"
},
{
"1", "t", 7, 44, "%1.1s", NULL, STRING, 1, "oset %s flags antiwarrior"
},
{
"1", "u", 7, 61, "%1.1s", NULL, STRING, 1, "oset %s flags clancorpse"
},
{
"1", "v", 8, 12, "%1.1s", NULL, STRING, 1, "oset %s flags magic"
},
{
"1", "x", 8, 44, "%1.1s", NULL, STRING, 1, "oset %s flags anticleric"
},
{
"1", "y", 8, 61, "%1.1s", NULL, STRING, 1, "oset %s flags prototype"
},
{
"1", "z", 9, 12, "%1.1s", NULL, STRING, 1, "oset %s flags loyal"
},
{
"1", "B", 9, 44, "%1.1s", NULL, STRING, 1, "oset %s flags antivampire"
},
{
"1", "C", 9, 61, "%1.1s", NULL, STRING, 1, "oset %s flags deathrot"
},
{
"1", "F", 10, 44, "%1.1s", NULL, STRING, 1, "oset %s flags antidruid"
},
{
"2", "a", 12, 24, "%1.1s", NULL, STRING, 1, "oset %s wear take"
},
{
"2", "b", 12, 39, "%1.1s", NULL, STRING, 1, "oset %s wear finger"
},
{
"2", "c", 12, 52, "%1.1s", NULL, STRING, 1, "oset %s wear neck"
},
{
"2", "d", 12, 64, "%1.1s", NULL, STRING, 1, "oset %s wear body"
},
{
"2", "e", 13, 24, "%1.1s", NULL, STRING, 1, "oset %s wear head"
},
{
"2", "f", 13, 39, "%1.1s", NULL, STRING, 1, "oset %s wear legs"
},
{
"2", "g", 13, 52, "%1.1s", NULL, STRING, 1, "oset %s wear feet"
},
{
"2", "h", 13, 64, "%1.1s", NULL, STRING, 1, "oset %s wear hands"
},
{
"2", "e", 14, 24, "%1.1s", NULL, STRING, 1, "oset %s wear arms"
},
{
"2", "f", 14, 39, "%1.1s", NULL, STRING, 1, "oset %s wear shield"
},
{
"2", "g", 14, 52, "%1.1s", NULL, STRING, 1, "oset %s wear about"
},
{
"2", "h", 14, 64, "%1.1s", NULL, STRING, 1, "oset %s wear waist"
},
{
"2", "b", 15, 12, "%1.1s", NULL, STRING, 1, "oset %s wear wrist"
},
{
"2", "c", 15, 24, "%1.1s", NULL, STRING, 1, "oset %s wear wield"
},
{
"2", "d", 15, 39, "%1.1s", NULL, STRING, 1, "oset %s wear hold"
},
{
"2", "d", 15, 52, "%1.1s", NULL, STRING, 1, "oset %s wear _dual_"
},
{
"2", "d", 15, 64, "%1.1s", NULL, STRING, 1, "oset %s wear ears"
},
{
"2", "d", 16, 64, "%1.1s", NULL, STRING, 1, "oset %s wear eyes"
},
{ "-", "a", 13, 2, "", NULL, STRING, 1, "omenu %s a" },
{ "-", "b", 13, 2, "", NULL, STRING, 1, "omenu %s b" },
{ "-", "c", 13, 2, "", NULL, STRING, 1, "omenu %s c" },
{ "-", "d", 13, 2, "", NULL, STRING, 1, "omenu %s d" },
{ "-", "e", 13, 2, "", NULL, STRING, 1, "omenu %s e" },
{ "-", "h", 13, 2, "", NULL, STRING, 1, "omenu %s h" },
{
" ", " ", 0, 0, " ", NULL, (int) NULL, 0, NULL
}
};
MENU_DATA obj_page_d_data[] =
{{
"1", "a", 3, 29, "%1.1s", NULL, STRING, 1, "oset %s affect affected blind "
},
{
"1", "b", 3, 47, "%1.1s", NULL, STRING, 1, "oset %s affect affected det_invis"
},
{
"1", "c", 3, 63, "%1.1s", NULL, STRING, 1, "oset %s affect affected det_evil"
},
{
"1", "d", 4, 29, "%1.1s", NULL, STRING, 1, "oset %s affect affected det_magic"
},
{
"1", "e", 4, 47, "%1.1s", NULL, STRING, 1, "oset %s affect affected det_hidden"
},
{
"1", "f", 4, 63, "%1.1s", NULL, STRING, 1, "oset %s affect affected hold"
},
{
"1", "g", 5, 12, "%1.1s", NULL, STRING, 1, "oset %s affect affected sanctuary"
},
{
"1", "h", 5, 29, "%1.1s", NULL, STRING, 1, "oset %s affect affected faerie_fire"
},
{
"1", "i", 5, 47, "%1.1s", NULL, STRING, 1, "oset %s affect affected infrared"
},
{
"1", "j", 5, 63, "%1.1s", NULL, STRING, 1, "oset %s affect affected curse"
},
{
"1", "k", 6, 12, "%1.1s", NULL, STRING, 1, "oset %s affect affected flaming"
},
{
"1", "l", 6, 29, "%1.1s", NULL, STRING, 1, "oset %s affect affected poison"
},
{
"1", "m", 6, 47, "%1.1s", NULL, STRING, 1, "oset %s affect affected protect"
},
{
"1", "n", 6, 63, "%1.1s", NULL, STRING, 1, "oset %s affect affected paralysis"
},
{
"1", "o", 7, 12, "%1.1s", NULL, STRING, 1, "oset %s affect affected sleep"
},
{
"1", "p", 7, 29, "%1.1s", NULL, STRING, 1, "oset %s affect affected hide"
},
{
"1", "q", 7, 47, "%1.1s", NULL, STRING, 1, "oset %s affect affected sneak"
},
{
"1", "r", 7, 63, "%1.1s", NULL, STRING, 1, "oset %s affect affected charm"
},
{
"1", "s", 8, 12, "%1.1s", NULL, STRING, 1, "oset %s affect affected flying"
},
{
"1", "t", 8, 29, "%1.1s", NULL, STRING, 1, "oset %s affect affected passdoor"
},
{
"1", "u", 8, 47, "%1.1s", NULL, STRING, 1, "oset %s affect affected truesight"
},
{
"1", "v", 8, 63, "%1.1s", NULL, STRING, 1, "oset %s affect affected det_traps"
},
{
"1", "w", 9, 12, "%1.1s", NULL, STRING, 1, "oset %s affect affected scrying"
},
{
"1", "x", 9, 29, "%1.1s", NULL, STRING, 1, "oset %s affect affected fireshield"
},
{
"1", "y", 9, 47, "%1.1s", NULL, STRING, 1, "oset %s affect affected shockshield"
},
{
"1", "z", 9, 63, "%1.1s", NULL, STRING, 1, "oset %s affect affected floating"
},
{ "1", "A", 10, 63, "%1.1s", NULL, STRING, 1, "oset %s affect affected invisible" },
{ "-", "a", 13, 2, "", NULL, STRING, 1, "omenu %s a" },
{ "-", "b", 13, 2, "", NULL, STRING, 1, "omenu %s b" },
{ "-", "c", 13, 2, "", NULL, STRING, 1, "omenu %s c" },
{ "-", "d", 13, 2, "", NULL, STRING, 1, "omenu %s d" },
{ "-", "e", 13, 2, "", NULL, STRING, 1, "omenu %s e" },
{ "-", "h", 13, 2, "", NULL, STRING, 1, "omenu %s h" },
{ " ", " ", 0, 0, " ", NULL, (int) NULL, 0, NULL }
};
/* the val#'s weren't dereferencing right as short ints *boggle* */
MENU_DATA obj_page_a_data[] =
{{
"1", "a", 2, 20, "%-49.49s", NULL, STRING, 2, "oset %s name %s"
},
{
"1", "b", 3, 20, "%-49.49s", NULL, STRING, 2, "oset %s short %s"
},
{
"1", "c", 4, 10, "%-59.69s", NULL, STRING, 2, "oset %s long %s"
},
{
"1", "d", 5, 15, "%-49.59s", NULL, STRING, 2, "oset %s actiondesc %s"
},
{
"2", "a", 9, 13, "%5.5d", NULL, INT, 2, "oset %s value0 %s"
},
{
"2", NO_COMMAND
,9, 23, "%-19.19s", NULL, STRING, 0, NO_COMMAND
},
{
"2", "b", 10, 13, "%5.5d", NULL, INT, 2, "oset %s value1 %s"
},
{
"2", NO_COMMAND
,10, 23, "%-19.19s", NULL, STRING, 0, NO_COMMAND
},
{
"2", "c", 11, 13, "%5.5d", NULL, INT, 2, "oset %s value2 %s"
},
{
"2", NO_COMMAND
,11, 23, "%-19.19s", NULL, STRING, 0, NO_COMMAND
},
{
"2", "d", 12, 13, "%5.5d", NULL, INT, 2, "oset %s value3 %s"
},
{
"2", NO_COMMAND
,12, 23, "%-19.19s", NULL, STRING, 0, NO_COMMAND
},
{
"3", "a", 9, 59, "%5.5hd", NULL, SH_INT, 2, "oset %s weight %s"
},
{
"3", "b", 10, 59, "%5.5hd", NULL, SH_INT, 2, "oset %s cost %s"
},
{ "-", "a", 13, 2, "", NULL, STRING, 1, "omenu %s a" },
{ "-", "b", 13, 2, "", NULL, STRING, 1, "omenu %s b" },
{ "-", "c", 13, 2, "", NULL, STRING, 1, "omenu %s c" },
{ "-", "d", 13, 2, "", NULL, STRING, 1, "omenu %s d" },
{ "-", "e", 13, 2, "", NULL, STRING, 1, "omenu %s e" },
{ "-", "h", 13, 2, "", NULL, STRING, 1, "omenu %s h" },
{
" ", " ", 0, 0, " ", NULL, (int) NULL, 0, NULL
}
};
MENU_DATA obj_page_b_data[] =
{{
"1", "a", 2, 23, "%1.1s", NULL, STRING, 1, "oset %s type none"
},
{
"1", "b", 2, 42, "%1.1s", NULL, STRING, 1, "oset %s type fountain"
},
{
"1", "c", 2, 66, "%1.1s", NULL, STRING, 1, "oset %s type furniture"
},
{
"1", "d", 3, 23, "%1.1s", NULL, STRING, 1, "oset %s type armor"
},
{
"1", "e", 3, 42, "%1.1s", NULL, STRING, 1, "oset %s type food"
},
{
"1", "f", 3, 66, "%1.1s", NULL, STRING, 1, "oset %s type money"
},
{
"1", "g", 4, 23, "%1.1s", NULL, STRING, 1, "oset %s type potion"
},
{
"1", "h", 4, 42, "%1.1s", NULL, STRING, 1, "oset %s type pullchain"
},
{
"1", "i", 4, 66, "%1.1s", NULL, STRING, 1, "oset %s type weapon"
},
{
"1", "j", 5, 9, "%1.1s", NULL, STRING, 1, "oset %s type map"
},
{
"1", "k", 5, 23, "%1.1s", NULL, STRING, 1, "oset %s type light"
},
{
"1", "l", 5, 42, "%1.1s", NULL, STRING, 1, "oset %s type button"
},
{
"1", "m", 5, 66, "%1.1s", NULL, STRING, 1, "oset %s type treasure"
},
{
"1", "n", 6, 9, "%1.1s", NULL, STRING, 1, "oset %s type herb"
},
{
"1", "o", 6, 23, "%1.1s", NULL, STRING, 1, "oset %s type trash"
},
{
"1", "p", 6, 42, "%1.1s", NULL, STRING, 1, "oset %s type switch"
},
{
"1", "q", 6, 66, "%1.1s", NULL, STRING, 1, "oset %s type container"
},
{
"1", "r", 7, 9, "%1.1s", NULL, STRING, 1, "oset %s type wand"
},
{
"1", "s", 7, 23, "%1.1s", NULL, STRING, 1, "oset %s type scroll"
},
{
"1", "t", 7, 42, "%1.1s", NULL, STRING, 1, "oset %s type staff"
},
{
"1", "u", 7, 66, "%1.1s", NULL, STRING, 1, "oset %s type bloodstain"
},
{
"1", "v", 8, 9, "%1.1s", NULL, STRING, 1, "oset %s type pill"
},
{
"1", "w", 8, 23, "%1.1s", NULL, STRING, 1, "oset %s type blood"
},
{
"1", "x", 8, 42, "%1.1s", NULL, STRING, 1, "oset %s type dial"
},
{
"1", "y", 8, 66, "%1.1s", NULL, STRING, 1, "oset %s type portal"
},
{
"1", "z", 9, 9, "%1.1s", NULL, STRING, 1, "oset %s type key"
},
{
"1", "A", 9, 23, "%1.1s", NULL, STRING, 1, "oset %s type incense"
},
{
"1", "B", 9, 42, "%1.1s", NULL, STRING, 1, "oset %s type lever"
},
{
"1", "C", 9, 66, "%1.1s", NULL, STRING, 1, "oset %s type corpse_pc"
},
{
"1", "D", 10, 9, "%1.1s", NULL, STRING, 1, "oset %s type pipe"
},
{
"1", "E", 10, 23, "%1.1s", NULL, STRING, 1, "oset %s type scraps"
},
{
"1", "F", 10, 42, "%1.1s", NULL, STRING, 1, "oset %s type trap"
},
{
"1", "G", 10, 66, "%1.1s", NULL, STRING, 1, "oset %s type corpse"
},
{
"1", "H", 11, 9, "%1.1s", NULL, STRING, 1, "oset %s type book"
},
{
"1", "I", 11, 23, "%1.1s", NULL, STRING, 1, "oset %s type match"
},
{
"1", "J", 11, 42, "%1.1s", NULL, STRING, 1, "oset %s type drinkcon"
},
{
"1", "K", 11, 66, "%1.1s", NULL, STRING, 1, "oset %s type portal"
},
{
"1", "L", 12, 9, "%1.1s", NULL, STRING, 1, "oset %s type pen"
},
{
"1", "M", 12, 23, "%1.1s", NULL, STRING, 1, "oset %s type fire"
},
{
"1", "N", 12, 42, "%1.1s", NULL, STRING, 1, "oset %s type herbcon"
},
{
"1", "O", 12, 66, "%1.1s", NULL, STRING, 1, "oset %s type _fireweapon"
},
{
"1", "P", 13, 9, "%1.1s", NULL, STRING, 1, "oset %s type boat"
},
{
"1", "Q", 13, 23, "%1.1s", NULL, STRING, 1, "oset %s type rune"
},
{
"1", "R", 13, 42, "%1.1s", NULL, STRING, 1, "oset %s type runepouch"
},
{
"1", "S", 13, 66, "%1.1s", NULL, STRING, 1, "oset %s type _missile"
},
{ "-", "a", 13, 2, "", NULL, STRING, 1, "omenu %s a" },
{ "-", "b", 13, 2, "", NULL, STRING, 1, "omenu %s b" },
{ "-", "c", 13, 2, "", NULL, STRING, 1, "omenu %s c" },
{ "-", "d", 13, 2, "", NULL, STRING, 1, "omenu %s d" },
{ "-", "e", 13, 2, "", NULL, STRING, 1, "omenu %s e" },
{ "-", "h", 13, 2, "", NULL, STRING, 1, "omenu %s h" },
{
" ", " ", 0, 0, " ", NULL, (int) NULL, 0, NULL
}
};
MENU_DATA obj_page_c_data[] =
{{
"1", "a", 2, 23, "%1.1s", NULL, STRING, 1, "oset %s affect none"
},
{
"1", "b", 2, 44, "%+-3.3hd", NULL, SH_INT, 2, "oset %s affect save_poison %s"
},
{
"1", "c", 2, 65, "%+-3.3hd", NULL, SH_INT, 2, "oset %s affect age %s"
},
{
"1", "d", 3, 23, "%+-2.2hd", NULL, SH_INT, 2, "oset %s affect strength %s"
},
{
"1", "e", 3, 44, "%+-3.3hd", NULL, SH_INT, 2, "oset %s affect save_rod %s"
},
{
"1", "f", 3, 65, "%+-3.3hd", NULL, SH_INT, 2, "oset %s affect class %s"
},
{
"1", "g", 4, 23, "%+-2.2hd", NULL, SH_INT, 2, "oset %s affect intelligence %s"
},
{
"1", "h", 4, 44, "%+-3.3hd", NULL, SH_INT, 2, "oset %s affect save_para %s"
},
{
"1", "i", 4, 65, "%+-3.3hd", NULL, SH_INT, 2, "oset %s affect level %s"
},
{
"1", "j", 5, 23, "%+-2.2hd", NULL, SH_INT, 2, "oset %s affect wisdom %s"
},
{
"1", "k", 5, 44, "%+-3.3hd", NULL, SH_INT, 2, "oset %s affect save_breath %s"
},
{
"1", "l", 5, 65, "%+-1.1hd", NULL, SH_INT, 2, "oset %s affect sex %s"
},
{
"1", "m", 6, 23, "%+-2.2hd", NULL, SH_INT, 2, "oset %s affect dexterity %s"
},
{
"1", "n", 6, 44, "%+-3.3hd", NULL, SH_INT, 2, "oset %s affect save_spell %s"
},
{
"1", "o", 6, 65, "%+-3.3hd", NULL, SH_INT, 2, "oset %s affect height %s"
},
{
"1", "p", 7, 23, "%+-2.2hd", NULL, SH_INT, 2, "oset %s affect constitution %s"
},
{
"1", "r", 7, 65, "%+-3.3hd", NULL, SH_INT, 2, "oset %s affect weight %s"
},
{
"1", "s", 8, 23, "%+-2.2hd", NULL, SH_INT, 2, "oset %s affect charisma %s"
},
{
"1", "v", 9, 12, "%+-4.4hd", NULL, SH_INT, 2, "oset %s affect mana %s"
},
{
"1", "w", 9, 41, "%+-4.4hd", NULL, SH_INT, 2, "oset %s affect armor %s"
},
{
"1", "y", 10, 12, "%+-4.4hd", NULL, SH_INT, 2, "oset %s affect hit %s"
},
{
"1", "z", 10, 41, "%+-4.4hd", NULL, SH_INT, 2, "oset %s affect hitroll %s"
},
{
"1", "A", 10, 63, "%+-4.4hd", NULL, SH_INT, 2, "oset %s affect gold %s"
},
{
"1", "B", 11, 12, "%+-4.4hd", NULL, SH_INT, 2, "oset %s affect move %s"
},
{
"1", "C", 11, 41, "%+-4.4hd", NULL, SH_INT, 2, "oset %s affect damroll %s"
},
{
"1", "D", 11, 63, "%+-4.4hd", NULL, SH_INT, 2, "oset %s affect experience %s"
},
{
"2", "a", 13, 22, "%3.3s", NULL, STRING, 2, "oset %s %s fire"
},
{
"2", "b", 13, 34, "%3.3s", NULL, STRING, 2, "oset %s %s cold"
},
{
"2", "c", 13, 46, "%3.3s", NULL, STRING, 2, "oset %s %s electricity"
},
{
"2", "d", 13, 58, "%3.3s", NULL, STRING, 2, "oset %s %s energy"
},
{
"2", "e", 13, 70, "%3.3s", NULL, STRING, 2, "oset %s %s poison"
},
{
"2", "f", 14, 22, "%3.3s", NULL, STRING, 2, "oset %s %s blunt"
},
{
"2", "g", 14, 34, "%3.3s", NULL, STRING, 2, "oset %s %s pierce"
},
{
"2", "h", 14, 46, "%3.3s", NULL, STRING, 2, "oset %s %s slash"
},
{
"2", "i", 14, 58, "%3.3s", NULL, STRING, 2, "oset %s %s acid"
},
{
"2", "j", 14, 70, "%3.3s", NULL, STRING, 2, "oset %s %s nonmagic"
},
{
"2", "k", 15, 22, "%3.3s", NULL, STRING, 2, "oset %s %s drain"
},
{
"2", "l", 15, 34, "%3.3s", NULL, STRING, 2, "oset %s %s sleep"
},
{
"2", "m", 15, 46, "%3.3s", NULL, STRING, 2, "oset %s %s charm"
},
{
"2", "n", 15, 58, "%3.3s", NULL, STRING, 2, "oset %s %s hold"
},
{
"2", "o", 15, 70, "%3.3s", NULL, STRING, 2, "oset %s %s magic"
},
{
"2", "p", 16, 10, "%3.3s", NULL, STRING, 2, "oset %s %s plus1"
},
{
"2", "q", 16, 22, "%3.3s", NULL, STRING, 2, "oset %s %s plus2"
},
{
"2", "r", 16, 34, "%3.3s", NULL, STRING, 2, "oset %s %s plus3"
},
{
"2", "s", 16, 46, "%3.3s", NULL, STRING, 2, "oset %s %s plus4"
},
{
"2", "t", 16, 58, "%3.3s", NULL, STRING, 2, "oset %s %s plus5"
},
{
"2", "u", 16, 70, "%3.3s", NULL, STRING, 2, "oset %s %s plus6"
},
{ "-", "a", 13, 2, "", NULL, STRING, 1, "omenu %s a" },
{ "-", "b", 13, 2, "", NULL, STRING, 1, "omenu %s b" },
{ "-", "c", 13, 2, "", NULL, STRING, 1, "omenu %s c" },
{ "-", "d", 13, 2, "", NULL, STRING, 1, "omenu %s d" },
{ "-", "e", 13, 2, "", NULL, STRING, 1, "omenu %s e" },
{ "-", "h", 13, 2, "", NULL, STRING, 1, "omenu %s h" },
{
" ", " ", 0, 0, " ", NULL, (int) NULL, 0, NULL
}
};
MENU_DATA mob_page_a_data[] =
{{
"1", "a", 2, 20, "%-59.59s", NULL, STRING, 2, "mset %s name %s"
},
{
"1", "b", 3, 20, "%-59.59s", NULL, STRING, 2, "mset %s short %s"
},
{
"1", "c", 4, 10, "%-69.68s", NULL, STRING, 2, "mset %s long %s"
},
{
"1", "d", 5, 10, "%-69.68s", NULL, STRING, 2, "mset %s description %s"
},
{
"2", "a", 9, 11, "%5.5hd", NULL, SH_INT, 2, "mset %s vnum %s"
},
{
"2", "b", 10, 11, "%3.3hd", NULL, SH_INT, 2, "mset %s level %s"
},
{
"2", "c", 11, 11, "%-10.10s", NULL, STRING, 2, "mset (obsolete) %s class %s"
},
{
"2", "d", 12, 11, "%-10.10s", NULL, STRING, 2, "mset %s race %s"
},
{
"2", "e", 13, 11, "%-6.6s", NULL, STRING, 2, "mset %s sex %s"
},
{
"2", "f", 14, 11, "%d", NULL, INT, 2, "mset %s gold %s"
},
{
"2", "g", 15, 11, "%+-4.4hd", NULL, SH_INT, 2, "mset %s align %s"
},
{
"3", "a", 9, 31, "%2.2hd", NULL, SH_INT, 2, "mset %s str %s"
},
{
"3", "b", 10, 31, "%2.2hd", NULL, SH_INT, 2, "mset %s int %s"
},
{
"3", "c", 11, 31, "%2.2hd", NULL, SH_INT, 2, "mset %s wis %s"
},
{
"3", "d", 12, 31, "%2.2hd", NULL, SH_INT, 2, "mset %s dex %s"
},
{
"3", "e", 13, 31, "%2.2hd", NULL, SH_INT, 2, "mset %s con %s"
},
{
"3", "f", 14, 31, "%2.2hd", NULL, SH_INT, 2, "mset %s cha %s"
},
{
"3", "g", 15, 31, "%4.4hd", NULL, SH_INT, 2, "mset %s armor %s"
},
{
"4", "a", 9, 49, "%1.1s", NULL, STRING, 1, "mset %s class 0"
},
{
"4", "b", 9, 68, "%1.1s", NULL, STRING, 1, "mset %s class 1"
},
{
"4", "c", 10, 49, "%1.1s", NULL, STRING, 1, "mset %s class 2"
},
{
"4", "d", 10, 68, "%1.1s", NULL, STRING, 1, "mset %s class 3"
},
{
"4", "e", 11, 49, "%1.1s", NULL, STRING, 1, "mset %s class 4"
},
{
"4", "f", 11, 68, "%1.1s", NULL, STRING, 1, "mset %s class 5"
},
{
"4", "g", 12, 49, "%1.1s", NULL, STRING, 1, "mset %s class 6"
},
{
"4", "h", 12, 68, "%1.1s", NULL, STRING, 1, "mset %s class 20"
},
{
"4", "i", 13, 49, "%1.1s", NULL, STRING, 1, "mset %s class 21"
},
{
"4", "j", 13, 68, "%1.1s", NULL, STRING, 1, "mset %s class 22"
},
{
"4", "k", 14, 49, "%1.1s", NULL, STRING, 1, "mset %s class 23"
},
{
"4", "l", 14, 68, "%1.1s", NULL, STRING, 1, "mset %s class 24"
},
{
"4", "m", 15, 49, "%1.1s", NULL, STRING, 1, "mset %s class 25"
},
{ "-", "a", 13, 2, "", NULL, STRING, 1, "mmenu %s a" },
{ "-", "b", 13, 2, "", NULL, STRING, 1, "mmenu %s b" },
{ "-", "c", 13, 2, "", NULL, STRING, 1, "mmenu %s c" },
{ "-", "d", 13, 2, "", NULL, STRING, 1, "mmenu %s d" },
{ "-", "e", 13, 2, "", NULL, STRING, 1, "mmenu %s e" },
{ "-", "f", 13, 2, "", NULL, STRING, 1, "mmenu %s f" },
{ "-", "h", 13, 2, "", NULL, STRING, 1, "mmenu %s h" },
{ " ", " ", 0, 0, " ", NULL, (int) NULL, 1, NULL } };
MENU_DATA mob_page_f_data[] =
{{ "1", "a", 2, 27, "%1.1s", NULL, STRING, 1, "mset %s race human" },
{ "1", "b", 2, 42, "%1.1s", NULL, STRING, 1, "mset %s race neanderthal" },
{ "1", "c", 2, 57, "%1.1s", NULL, STRING, 1, "mset %s race avis" },
{ "1", "d", 2, 72, "%1.1s", NULL, STRING, 1, "mset %s race amphibian" },
{ "1", "e", 3, 27, "%1.1s", NULL, STRING, 1, "mset %s race elf" },
{ "1", "f", 3, 42, "%1.1s", NULL, STRING, 1, "mset %s race orc" },
{ "1", "g", 3, 57, "%1.1s", NULL, STRING, 1, "mset %s race bugbear" },
{ "1", "h", 3, 72, "%1.1s", NULL, STRING, 1, "mset %s race bovine" },
{ "1", "i", 4, 27, "%1.1s", NULL, STRING, 1, "mset %s race dwarf" },
{ "1", "j", 4, 42, "%1.1s", NULL, STRING, 1, "mset %s race skeleton" },
{ "1", "k", 4, 57, "%1.1s", NULL, STRING, 1, "mset %s race dragon" },
{ "1", "l", 4, 72, "%1.1s", NULL, STRING, 1, "mset %s race canine" },
{ "1", "m", 5, 12, "%1.1s", NULL, STRING, 1, "mset %s race ant" },
{ "1", "n", 5, 27, "%1.1s", NULL, STRING, 1, "mset %s race halfling" },
{ "1", "o", 5, 42, "%1.1s", NULL, STRING, 1, "mset %s race thoul" },
{ "1", "p", 5, 57, "%1.1s", NULL, STRING, 1, "mset %s race rustmonster" },
{ "1", "q", 5, 72, "%1.1s", NULL, STRING, 1, "mset %s race crustacean" },
{ "1", "r", 6, 12, "%1.1s", NULL, STRING, 1, "mset %s race bee" },
{ "1", "s", 6, 27, "%1.1s", NULL, STRING, 1, "mset %s race pixie" },
{ "1", "t", 6, 42, "%1.1s", NULL, STRING, 1, "mset %s race undead" },
{ "1", "u", 6, 57, "%1.1s", NULL, STRING, 1, "mset %s race shadow" },
{ "1", "v", 6, 72, "%1.1s", NULL, STRING, 1, "mset %s race feline" },
{ "1", "w", 7, 12, "%1.1s", NULL, STRING, 1, "mset %s race beetle" },
{ "1", "x", 7, 27, "%1.1s", NULL, STRING, 1, "mset %s race vampire" },
{ "1", "y", 7, 42, "%1.1s", NULL, STRING, 1, "mset %s race zombie" },
{ "1", "z", 7, 57, "%1.1s", NULL, STRING, 1, "mset %s race shapeshifter" },
{ "1", "A", 7, 72, "%1.1s", NULL, STRING, 1, "mset %s race fish" },
{ "1", "B", 8, 12, "%1.1s", NULL, STRING, 1, "mset %s race fly" },
{ "1", "C", 8, 27, "%1.1s", NULL, STRING, 1, "mset %s race gargoyle" },
{ "1", "D", 8, 42, "%1.1s", NULL, STRING, 1, "mset %s race ape" },
{ "1", "E", 8, 57, "%1.1s", NULL, STRING, 1, "mset %s race shrieker" },
{ "1", "F", 8, 72, "%1.1s", NULL, STRING, 1, "mset %s race insect" },
{ "1", "G", 9, 12, "%1.1s", NULL, STRING, 1, "mset %s race locust" },
{ "1", "H", 9, 27, "%1.1s", NULL, STRING, 1, "mset %s race ghoul" },
{ "1", "I", 9, 42, "%1.1s", NULL, STRING, 1, "mset %s race baboon" },
{ "1", "J", 9, 57, "%1.1s", NULL, STRING, 1, "mset %s race stirge" },
{ "1", "K", 9, 72, "%1.1s", NULL, STRING, 1, "mset %s race mammal" },
{ "1", "L",10, 12, "%1.1s", NULL, STRING, 1, "mset %s race snake" },
{ "1", "M",10, 27, "%1.1s", NULL, STRING, 1, "mset %s race gnoll" },
{ "1", "N",10, 42, "%1.1s", NULL, STRING, 1, "mset %s race bat" },
{ "1", "O",10, 57, "%1.1s", NULL, STRING, 1, "mset %s race wight" },
{ "1", "P",10, 72, "%1.1s", NULL, STRING, 1, "mset %s race porcine" },
{ "1", "Q",11, 12, "%1.1s", NULL, STRING, 1, "mset %s race spider" },
{ "1", "R",11, 27, "%1.1s", NULL, STRING, 1, "mset %s race gnome" },
{ "1", "S",11, 42, "%1.1s", NULL, STRING, 1, "mset %s race bear" },
{ "1", "U",11, 72, "%1.1s", NULL, STRING, 1, "mset %s race reptile" },
{ "1", "V",12, 12, "%1.1s", NULL, STRING, 1, "mset %s race worm" },
{ "1", "W",12, 27, "%1.1s", NULL, STRING, 1, "mset %s race goblin" },
{ "1", "X",12, 42, "%1.1s", NULL, STRING, 1, "mset %s race boar" },
{ "1", "Z",12, 72, "%1.1s", NULL, STRING, 1, "mset %s race rodent" },
{ "1", "1",13, 27, "%1.1s", NULL, STRING, 1, "mset %s race golem" },
{ "1", "2",13, 42, "%1.1s", NULL, STRING, 1, "mset %s race cat" },
{ "1", "4",13, 72, "%1.1s", NULL, STRING, 1, "mset %s race troglodyte" },
{ "1", "5",14, 12, "%1.1s", NULL, STRING, 1, "mset %s race gelatin" },
{ "1", "6",14, 27, "%1.1s", NULL, STRING, 1, "mset %s race gorgon" },
{ "1", "7",14, 42, "%1.1s", NULL, STRING, 1, "mset %s race dog" },
{ "1", "9",14, 72, "%1.1s", NULL, STRING, 1, "mset %s race spirit" },
{ "1", "!",15, 12, "%1.1s", NULL, STRING, 1, "mset %s race mold" },
{ "1", "@",15, 27, "%1.1s", NULL, STRING, 1, "mset %s race harpy" },
{ "1", "#",15, 42, "%1.1s", NULL, STRING, 1, "mset %s race ferret" },
{ "1", "%",15, 72, "%1.1s", NULL, STRING, 1, "mset %s race magical" },
{ "1", "^",16, 12, "%1.1s", NULL, STRING, 1, "mset %s race ooze" },
{ "1", "&",16, 27, "%1.1s", NULL, STRING, 1, "mset %s race hobgoblin" },
{ "1", "*",16, 42, "%1.1s", NULL, STRING, 1, "mset %s race horse" },
{ "1", "-",17, 12, "%1.1s", NULL, STRING, 1, "mset %s race slime" },
{ "1", "_",17, 27, "%1.1s", NULL, STRING, 1, "mset %s race kobold" },
{ "1", "+",17, 42, "%1.1s", NULL, STRING, 1, "mset %s race mule" },
{ "1", "~",18, 27, "%1.1s", NULL, STRING, 1, "mset %s race lizardman" },
{ "1", "`",18, 42, "%1.1s", NULL, STRING, 1, "mset %s race rat" },
{ "1", "]",19, 27, "%1.1s", NULL, STRING, 1, "mset %s race lycanthrope" },
{ "1", ":",19, 42, "%1.1s", NULL, STRING, 1, "mset %s race shrew" },
{ "1", ",",20, 27, "%1.1s", NULL, STRING, 1, "mset %s race minotaur" },
{ "1", ">",20, 42, "%1.1s", NULL, STRING, 1, "mset %s race wolf" },
{ "-", "a", 22, 2, "", NULL, STRING, 1, "mmenu %s a" },
{ "-", "b", 13, 2, "", NULL, STRING, 1, "mmenu %s b" },
{ "-", "c", 13, 2, "", NULL, STRING, 1, "mmenu %s c" },
{ "-", "d", 13, 2, "", NULL, STRING, 1, "mmenu %s d" },
{ "-", "e", 13, 2, "", NULL, STRING, 1, "mmenu %s e" },
{ "-", "f", 13, 2, "", NULL, STRING, 1, "mmenu %s f" },
{ "-", "h", 13, 2, "", NULL, STRING, 1, "mmenu %s h" },
{ " ", " ", 0, 0, " ", NULL, (int) NULL, 1, NULL } };
MENU_DATA mob_page_b_data[] =
{{
"1", "a", 2, 29, "%1.1s", NULL, STRING, 1, "mset %s flags sentinel"
},
{
"1", "b", 2, 47, "%1.1s", NULL, STRING, 1, "mset %s flags scavenger"
},
{
"1", "c", 2, 63, "%1.1s", NULL, STRING, 1, "mset %s flags aggressive"
},
{
"1", "d", 3, 29, "%1.1s", NULL, STRING, 1, "mset %s flags stayarea"
},
{
"1", "e", 3, 47, "%1.1s", NULL, STRING, 1, "mset %s flags wimpy"
},
{
"1", "f", 3, 63, "%1.1s", NULL, STRING, 1, "mset %s flags pet"
},
{
"1", "g", 4, 12, "%1.1s", NULL, STRING, 1, "mset %s flags train"
},
{
"1", "h", 4, 29, "%1.1s", NULL, STRING, 1, "mset %s flags practice"
},
{
"1", "i", 4, 47, "%1.1s", NULL, STRING, 1, "mset %s flags immortal"
},
{
"1", "j", 4, 63, "%1.1s", NULL, STRING, 1, "mset %s flags deadly"
},
{
"1", "k", 5, 12, "%1.1s", NULL, STRING, 1, "mset %s flags polyself"
},
{
"1", "l", 5, 29, "%1.1s", NULL, STRING, 1, "mset %s flags meta_aggr"
},
{
"1", "m", 5, 47, "%1.1s", NULL, STRING, 1, "mset %s flags guardian"
},
{
"1", "n", 5, 63, "%1.1s", NULL, STRING, 1, "mset %s flags running"
},
{
"1", "o", 6, 12, "%1.1s", NULL, STRING, 1, "mset %s flags nowander"
},
{
"1", "p", 6, 29, "%1.1s", NULL, STRING, 1, "mset %s flags mountable"
},
{
"1", "q", 6, 47, "%1.1s", NULL, STRING, 1, "mset %s flags mounted"
},
{
"2", "a", 8, 29, "%1.1s", NULL, STRING, 1, "mset %s affected blind"
},
{
"2", "b", 8, 47, "%1.1s", NULL, STRING, 1, "mset %s affected detect_invis"
},
{
"2", "c", 8, 63, "%1.1s", NULL, STRING, 1, "mset %s affected detect_evil"
},
{
"2", "d", 9, 29, "%1.1s", NULL, STRING, 1, "mset %s affected detect_magic"
},
{
"2", "e", 9, 47, "%1.1s", NULL, STRING, 1, "mset %s affected detect_hidden"
},
{
"2", "f", 9, 63, "%1.1s", NULL, STRING, 1, "mset %s affected _hold"
},
{
"2", "g", 10, 12, "%1.1s", NULL, STRING, 1, "mset %s affected sanctuary"
},
{
"2", "h", 10, 29, "%1.1s", NULL, STRING, 1, "mset %s affected faerie_fire"
},
{
"2", "i", 10, 47, "%1.1s", NULL, STRING, 1, "mset %s affected infrared"
},
{
"2", "j", 10, 63, "%1.1s", NULL, STRING, 1, "mset %s affected curse"
},
{
"2", "k", 11, 12, "%1.1s", NULL, STRING, 1, "mset %s affected flaming"
},
{
"2", "l", 11, 29, "%1.1s", NULL, STRING, 1, "mset %s affected poison"
},
{
"2", "m", 11, 47, "%1.1s", NULL, STRING, 1, "mset %s affected protect"
},
{
"2", "n", 11, 63, "%1.1s", NULL, STRING, 1, "mset %s affected _paralysis"
},
{
"2", "o", 12, 12, "%1.1s", NULL, STRING, 1, "mset %s affected sleep"
},
{
"2", "p", 12, 29, "%1.1s", NULL, STRING, 1, "mset %s affected hide"
},
{
"2", "q", 12, 47, "%1.1s", NULL, STRING, 1, "mset %s affected sneak"
},
{
"2", "r", 12, 63, "%1.1s", NULL, STRING, 1, "mset %s affected charm"
},
{
"2", "s", 13, 12, "%1.1s", NULL, STRING, 1, "mset %s affected flying"
},
{
"2", "t", 13, 29, "%1.1s", NULL, STRING, 1, "mset %s affected pass_door"
},
{
"2", "u", 13, 47, "%1.1s", NULL, STRING, 1, "mset %s affected truesight"
},
{
"2", "v", 13, 63, "%1.1s", NULL, STRING, 1, "mset %s affected detect_traps"
},
{
"2", "w", 14, 12, "%1.1s", NULL, STRING, 1, "mset %s affected scrying"
},
{
"2", "x", 14, 29, "%1.1s", NULL, STRING, 1, "mset %s affected fireshield"
},
{
"2", "y", 14, 47, "%1.1s", NULL, STRING, 1, "mset %s affected shockshield"
},
{
"2", "z", 14, 63, "%1.1s", NULL, STRING, 1, "mset %s affected floating"
},
{
"2", "A", 15, 12, "%1.1s", NULL, STRING, 1, "mset %s affected invisible"
},
{ "-", "a", 13, 2, "", NULL, STRING, 1, "mmenu %s a" },
{ "-", "b", 13, 2, "", NULL, STRING, 1, "mmenu %s b" },
{ "-", "c", 13, 2, "", NULL, STRING, 1, "mmenu %s c" },
{ "-", "d", 13, 2, "", NULL, STRING, 1, "mmenu %s d" },
{ "-", "e", 13, 2, "", NULL, STRING, 1, "mmenu %s e" },
{ "-", "f", 13, 2, "", NULL, STRING, 1, "mmenu %s f" },
{ "-", "h", 13, 2, "", NULL, STRING, 1, "mmenu %s h" },
{
" ", " ", 0, 0, " ", NULL, (int)NULL, 1, NULL
}
};
MENU_DATA mob_page_c_data[] =
{{
"1", "a", 2, 26, "%1.1s", NULL, STRING, 1, "mset %s attack bite"
},
{
"1", "b", 2, 42, "%1.1s", NULL, STRING, 1, "mset %s attack claws"
},
{
"1", "c", 2, 68, "%1.1s", NULL, STRING, 1, "mset %s attack firebreath"
},
{
"1", "d", 3, 26, "%1.1s", NULL, STRING, 1, "mset %s attack bash"
},
{
"1", "e", 3, 42, "%1.1s", NULL, STRING, 1, "mset %s attack stun"
},
{
"1", "f", 3, 68, "%1.1s", NULL, STRING, 1, "mset %s attack acidbreath"
},
{
"1", "g", 4, 11, "%1.1s", NULL, STRING, 1, "mset %s attack drain"
},
{
"1", "h", 4, 26, "%1.1s", NULL, STRING, 1, "mset %s attack kick"
},
{
"1", "i", 4, 42, "%1.1s", NULL, STRING, 1, "mset %s attack feed"
},
{
"1", "j", 4, 68, "%1.1s", NULL, STRING, 1, "mset %s attack gasbreath"
},
{
"1", "k", 5, 11, "%1.1s", NULL, STRING, 1, "mset %s attack poison"
},
{
"1", "l", 5, 26, "%1.1s", NULL, STRING, 1, "mset %s attack gaze"
},
{
"1", "m", 5, 42, "%1.1s", NULL, STRING, 1, "mset %s attack harm"
},
{
"1", "n", 5, 68, "%1.1s", NULL, STRING, 1, "mset %s attack frostbreath"
},
{
"1", "o", 6, 11, "%1.1s", NULL, STRING, 1, "mset %s attack curse"
},
{
"1", "p", 6, 26, "%1.1s", NULL, STRING, 1, "mset %s attack backstab"
},
{
"1", "q", 6, 42, "%1.1s", NULL, STRING, 1, "mset %s attack punch"
},
{
"1", "r", 6, 68, "%1.1s", NULL, STRING, 1, "mset %s attack lightnbreath"
},
{
"1", "s", 7, 11, "%1.1s", NULL, STRING, 1, "mset %s attack weaken"
},
{
"1", "t", 7, 26, "%1.1s", NULL, STRING, 1, "mset %s attack tail"
},
{
"1", "u", 7, 42, "%1.1s", NULL, STRING, 1, "mset %s attack sting"
},
{
"1", "v", 7, 68, "%1.1s", NULL, STRING, 1, "mset %s attack causeserious"
},
{
"1", "w", 8, 11, "%1.1s", NULL, STRING, 1, "mset %s attack trip"
},
{
"1", "x", 8, 26, "%1.1s", NULL, STRING, 1, "mset %s attack fireball"
},
{
"1", "y", 8, 42, "%1.1s", NULL, STRING, 1, "mset %s attack gouge"
},
{
"1", "z", 8, 68, "%1.1s", NULL, STRING, 1, "mset %s attack causecritical"
},
{
"1", "B", 9, 29, "%1.1s", NULL, STRING, 1, "mset %s attack flamestrike"
},
{
"1", "D", 9, 68, "%1.1s", NULL, STRING, 1, "mset %s attack earthquake"
},
{
"1", "F", 10, 29, "%1.1s", NULL, STRING, 1, "mset %s attack colorspray"
},
{
"1", "G", 10, 48, "%1.1s", NULL, STRING, 1, "mset %s attack nasty"
},
{
"1", "H", 10, 68, "%1.1s", NULL, STRING, 1, "mset %s attack blindness"
},
{
"2", "a", 12, 31, "%1.1s", NULL, STRING, 1, "mset %s defense sanctuary"
},
{
"2", "b", 12, 51, "%1.1s", NULL, STRING, 1, "mset %s defense curelight"
},
{
"2", "c", 12, 70, "%1.1s", NULL, STRING, 1, "mset %s defense dispelevil"
},
{
"2", "d", 13, 31, "%1.1s", NULL, STRING, 1, "mset %s defense shield"
},
{
"2", "e", 13, 51, "%1.1s", NULL, STRING, 1, "mset %s defense cureserious"
},
{
"2", "f", 13, 70, "%1.1s", NULL, STRING, 1, "mset %s defense dispelmagic"
},
{
"2", "g", 14, 11, "%1.1s", NULL, STRING, 1, "mset %s defense dodge"
},
{
"2", "h", 14, 31, "%1.1s", NULL, STRING, 1, "mset %s defense fireshield"
},
{
"2", "i", 14, 51, "%1.1s", NULL, STRING, 1, "mset %s defense curecritical"
},
{
"2", "j", 14, 70, "%1.1s", NULL, STRING, 1, "mset %s defense teleport"
},
{
"2", "k", 15, 11, "%1.1s", NULL, STRING, 1, "mset %s defense parry"
},
{
"2", "l", 15, 31, "%1.1s", NULL, STRING, 1, "mset %s defense shockshield"
},
{
"2", "m", 15, 51, "%1.1s", NULL, STRING, 1, "mset %s defense heal"
},
{
"2", "n", 15, 70, "%1.1s", NULL, STRING, 1, "mset %s defense bless"
},
{
"2", "o", 16, 11, "%1.1s", NULL, STRING, 1, "mset %s defense disarm"
},
{
"2", "p", 16, 31, "%1.1s", NULL, STRING, 1, "mset %s defense stoneskin"
},
{
"2", "q", 16, 51, "%1.1s", NULL, STRING, 1, "mset %s defense monsum1"
},
{
"2", "r", 16, 70, "%1.1s", NULL, STRING, 1, "mset %s defense monsum2"
},
{
"2", "u", 17, 51, "%1.1s", NULL, STRING, 1, "mset %s defense monsum3"
},
{
"2", "v", 17, 70, "%1.1s", NULL, STRING, 1, "mset %s defense monsum4"
},
{ "-", "a", 13, 2, "", NULL, STRING, 1, "mmenu %s a" },
{ "-", "b", 13, 2, "", NULL, STRING, 1, "mmenu %s b" },
{ "-", "c", 13, 2, "", NULL, STRING, 1, "mmenu %s c" },
{ "-", "d", 13, 2, "", NULL, STRING, 1, "mmenu %s d" },
{ "-", "e", 13, 2, "", NULL, STRING, 1, "mmenu %s e" },
{ "-", "f", 13, 2, "", NULL, STRING, 1, "mmenu %s f" },
{ "-", "h", 13, 2, "", NULL, STRING, 1, "mmenu %s h" },
{
" ", " ", 0, 0, " ", NULL, (int)NULL, 1, NULL
}
};
MENU_DATA mob_page_d_data[] =
{{
"1", "a", 2, 36, "%+-2.2hd", NULL, SH_INT, 2, "mset %s sav1 %s"
},
{
"1", "b", 2, 63, "%+-2.2d", NULL, SH_INT, 2, "mset %s sav2 %s"
},
{
"1", "c", 3, 36, "%+-2.2hd", NULL, SH_INT, 2, "mset %s sav3 %s"
},
{
"1", "d", 3, 63, "%+-2.2hd", NULL, SH_INT, 2, "mset %s sav4 %s"
},
{
"1", "e", 4, 36, "%+-2.2hd", NULL, SH_INT, 2, "mset %s sav5 %s"
},
{
"2", "a", 6, 20, "%1.1s", NULL, STRING, 1, "mset %s part fins"
},
{
"2", "b", 6, 31, "%1.1s", NULL, STRING, 1, "mset %s part ear"
},
{
"2", "c", 6, 42, "%1.1s", NULL, STRING, 1, "mset %s part eye"
},
{
"2", "d", 6, 59, "%1.1s", NULL, STRING, 1, "mset %s part long_tongue"
},
{
"2", "e", 6, 72, "%1.1s", NULL, STRING, 1, "mset %s part scales"
},
{
"2", "f", 7, 20, "%1.1s", NULL, STRING, 1, "mset %s part tail"
},
{
"2", "g", 7, 31, "%1.1s", NULL, STRING, 1, "mset %s part arms"
},
{
"2", "h", 7, 42, "%1.1s", NULL, STRING, 1, "mset %s part legs"
},
{
"2", "i", 7, 59, "%1.1s", NULL, STRING, 1, "mset %s part tentacles"
},
{
"2", "j", 7, 72, "%1.1s", NULL, STRING, 1, "mset %s part brains"
},
{
"2", "k", 8, 20, "%1.1s", NULL, STRING, 1, "mset %s part guts"
},
{
"2", "l", 8, 31, "%1.1s", NULL, STRING, 1, "mset %s part head"
},
{
"2", "m", 8, 42, "%1.1s", NULL, STRING, 1, "mset %s part feet"
},
{
"2", "n", 8, 59, "%1.1s", NULL, STRING, 1, "mset %s part eyestalks"
},
{
"2", "o", 8, 72, "%1.1s", NULL, STRING, 1, "mset %s part fingers"
},
{
"2", "p", 9, 21, "%1.1s", NULL, STRING, 1, "mset %s part wings"
},
{
"2", "q", 9, 32, "%1.1s", NULL, STRING, 1, "mset %s part hands"
},
{
"2", "r", 9, 43, "%1.1s", NULL, STRING, 1, "mset %s part heart"
},
{
"2", "u", 10, 21, "%1.1s", NULL, STRING, 1, "mset %s part claws"
},
{
"2", "v", 10, 32, "%1.1s", NULL, STRING, 1, "mset %s part horns"
},
{
"2", "w", 10, 43, "%1.1s", NULL, STRING, 1, "mset %s part tusks"
},
{
"2", "z", 11, 26, "%1.1s", NULL, STRING, 1, "mset %s part tail-attack"
},
{
"2", "A", 11, 49, "%1.1s", NULL, STRING, 1, "mset %s part sharp-scales"
},
{
"3", "a", 13, 27, "%3.3hd", NULL, SH_INT, 2, "mset %s numattacks %s"
},
{
"3", "b", 13, 48, "%s", NULL, STRING, 2, "mset %s hitdie %s"
},
{
"3", "c", 14, 25, "%5.5hd", NULL, SH_INT, 2, "mset %s hitroll %s"
},
{
"3", "d", 15, 25, "%5.5hd", NULL, SH_INT, 2, "mset %s damroll %s"
},
{
"3", "e", 15, 48, "%s", NULL, STRING, 2, "mset %s damdie %s"
},
{ "-", "a", 13, 2, "", NULL, STRING, 1, "mmenu %s a" },
{ "-", "b", 13, 2, "", NULL, STRING, 1, "mmenu %s b" },
{ "-", "c", 13, 2, "", NULL, STRING, 1, "mmenu %s c" },
{ "-", "d", 13, 2, "", NULL, STRING, 1, "mmenu %s d" },
{ "-", "e", 13, 2, "", NULL, STRING, 1, "mmenu %s e" },
{ "-", "f", 13, 2, "", NULL, STRING, 1, "mmenu %s f" },
{ "-", "h", 13, 2, "", NULL, STRING, 1, "mmenu %s h" },
{
" ", " ", 0, 0, " ", NULL, (int)NULL, 0, NULL
}
};
MENU_DATA mob_page_e_data[] =
{{
"1", "a", 2, 23, "%1.1s", NULL, STRING, 1, "mset %s spec spec_fido"
},
{
"1", "b", 2, 42, "%1.1s", NULL, STRING, 1, "mset %s spec spec_cast_adept"
},
{
"1", "c", 2, 70, "%1.1s", NULL, STRING, 1, "mset %s spec spec_breath_fire"
},
{
"1", "d", 3, 23, "%1.1s", NULL, STRING, 1, "mset %s spec spec_guard"
},
{
"1", "e", 3, 42, "%1.1s", NULL, STRING, 1, "mset %s spec spec_cast_cleric"
},
{
"1", "f", 3, 70, "%1.1s", NULL, STRING, 1, "mset %s spec spec_breath_frost"
},
{
"1", "g", 4, 23, "%1.1s", NULL, STRING, 1, "mset %s spec spec_janitor"
},
{
"1", "h", 4, 42, "%1.1s", NULL, STRING, 1, "mset %s spec spec_cast_mage"
},
{
"1", "i", 4, 70, "%1.1s", NULL, STRING, 1, "mset %s spec spec_breath_acid"
},
{
"1", "j", 5, 23, "%1.1s", NULL, STRING, 1, "mset %s spec spec_thief"
},
{
"1", "k", 5, 42, "%1.1s", NULL, STRING, 1, "mset %s spec spec_cast_undead"
},
{
"1", "l", 5, 70, "%1.1s", NULL, STRING, 1, "mset %s spec spec_breath_gas"
},
{
"1", "m", 6, 23, "%1.1s", NULL, STRING, 1, "mset %s spec spec_mayor"
},
{
"1", "o", 6, 70, "%1.1s", NULL, STRING, 1, "mset %s spec spec_breath_lightning"
},
{
"1", "p", 7, 23, "%1.1s", NULL, STRING, 1, "mset %s spec spec_poison"
},
{
"1", "q", 7, 42, "%1.1s", NULL, STRING, 1, "mset %s spec spec_executioner"
},
{
"1", "r", 7, 70, "%1.1s", NULL, STRING, 1, "mset %s spec spec_breath_any"
},
{
"2", "a", 9, 28, "%1.1s", NULL, STRING, 1, "mset %s defpos 0"
},
{
"2", "b", 9, 44, "%1.1s", NULL, STRING, 1, "mset %s defpos 1"
},
{
"2", "c", 9, 66, "%1.1s", NULL, STRING, 1, "mset %s defpos 2"
},
{
"2", "d", 10, 28, "%1.1s", NULL, STRING, 1, "mset %s defpos 3"
},
{
"2", "e", 10, 44, "%1.1s", NULL, STRING, 1, "mset %s defpos 4"
},
{
"2", "f", 10, 66, "%1.1s", NULL, STRING, 1, "mset %s defpos 5"
},
{
"2", "g", 11, 28, "%1.1s", NULL, STRING, 1, "mset %s defpos 6"
},
{
"2", "h", 11, 44, "%1.1s", NULL, STRING, 1, "mset %s defpos 7"
},
{
"2", "i", 11, 66, "%1.1s", NULL, STRING, 1, "mset %s defpos 8"
},
{
"2", "k", 12, 28, "%1.1s", NULL, STRING, 1, "mset %s defpos not_implemented"
},
{
"3", "a", 14, 22, "%3.3s", NULL, STRING, 2, "mset %s %s fire"
},
{
"3", "b", 14, 34, "%3.3s", NULL, STRING, 2, "mset %s %s cold"
},
{
"3", "c", 14, 46, "%3.3s", NULL, STRING, 2, "mset %s %s electricity"
},
{
"3", "d", 14, 58, "%3.3s", NULL, STRING, 2, "mset %s %s energy"
},
{
"3", "e", 14, 70, "%3.3s", NULL, STRING, 2, "mset %s %s poison"
},
{
"3", "f", 15, 22, "%3.3s", NULL, STRING, 2, "mset %s %s blunt"
},
{
"3", "g", 15, 34, "%3.3s", NULL, STRING, 2, "mset %s %s pierce"
},
{
"3", "h", 15, 46, "%3.3s", NULL, STRING, 2, "mset %s %s slash"
},
{
"3", "i", 15, 58, "%3.3s", NULL, STRING, 2, "mset %s %s acid"
},
{
"3", "j", 15, 70, "%3.3s", NULL, STRING, 2, "mset %s %s nonmagic"
},
{
"3", "k", 16, 22, "%3.3s", NULL, STRING, 2, "mset %s %s drain"
},
{
"3", "l", 16, 34, "%3.3s", NULL, STRING, 2, "mset %s %s sleep"
},
{
"3", "m", 16, 46, "%3.3s", NULL, STRING, 2, "mset %s %s charm"
},
{
"3", "n", 16, 58, "%3.3s", NULL, STRING, 2, "mset %s %s hold"
},
{
"3", "o", 16, 70, "%3.3s", NULL, STRING, 2, "mset %s %s magic"
},
{
"3", "p", 17, 10, "%3.3s", NULL, STRING, 2, "mset %s %s plus1"
},
{
"3", "q", 17, 22, "%3.3s", NULL, STRING, 2, "mset %s %s plus2"
},
{
"3", "r", 17, 34, "%3.3s", NULL, STRING, 2, "mset %s %s plus3"
},
{
"3", "s", 17, 46, "%3.3s", NULL, STRING, 2, "mset %s %s plus4"
},
{
"3", "t", 17, 58, "%3.3s", NULL, STRING, 2, "mset %s %s plus5"
},
{
"3", "u", 17, 70, "%3.3s", NULL, STRING, 2, "mset %s %s plus6"
},
{ "-", "a", 13, 2, "", NULL, STRING, 1, "mmenu %s a" },
{ "-", "b", 13, 2, "", NULL, STRING, 1, "mmenu %s b" },
{ "-", "c", 13, 2, "", NULL, STRING, 1, "mmenu %s c" },
{ "-", "d", 13, 2, "", NULL, STRING, 1, "mmenu %s d" },
{ "-", "e", 13, 2, "", NULL, STRING, 1, "mmenu %s e" },
{ "-", "f", 13, 2, "", NULL, STRING, 1, "mmenu %s f" },
{ "-", "h", 13, 2, "", NULL, STRING, 1, "mmenu %s h" },
{
" ", " ", 0, 0, " ", NULL, (int)NULL, 0, NULL
}
};
MENU_DATA control_page_a_data[] =
{
{
"1", "a", 4, 16, "%3.3hd", NULL, SH_INT, 1, "cset read_free %s"
},
{
"1", "b", 5, 16, "%3.3hd", NULL, SH_INT, 1, "cset write_free %s"
},
{
"1", "c", 6, 16, "%3.3hd", NULL, SH_INT, 1, "cset read_all %s"
},
{
"1", "d", 7, 16, "%3.3hd", NULL, SH_INT, 1, "cset take_all %s"
},
{
"2", "a", 4, 30, "%3.3hd", NULL, SH_INT, 1, "cset muse_level %s"
},
{
"2", "b", 5, 30, "%3.3hd", NULL, SH_INT, 1, "cset think_level %s"
},
{
"2", "c", 6, 30, "%3.3hd", NULL, SH_INT, 1, "cset log_level %s"
},
{
"2", "d", 7, 30, "%3.3hd", NULL, SH_INT, 1, "cset build_level %s"
},
{ "-", "a", 13, 2, "", NULL, STRING, 0, "cmenu a" },
{ "-", "h", 13, 2, "", NULL, STRING, 0, "cmenu h" },
{
" ", " ", 0, 0, " ", NULL, (int) NULL, 0, NULL
}
};
/*
* from MERC2.2, but i use it to define the scrolling region of the screen
*/
void
do_pagelen(CHAR_DATA * ch, char *argument)
{
char buf[MAX_STRING_LENGTH];
char arg[MAX_INPUT_LENGTH];
int lines; /* don't wanna muck about with atoi and
* sh_int */
one_argument(argument, arg);
if (arg[0] == '\0')
lines = 24;
else
lines = atoi(arg);
if (lines < 1) {
send_to_char("Negative or Zero values for a page length is not legal.\n\r", ch);
return;
}
ch->pagelen = lines;
sprintf(buf, "Page length set to %d lines.\n\r", lines);
send_to_char(buf, ch);
return;
}
char *
get_ris(MOB_INDEX_DATA * idx, int risFlag)
{
int num = 0;
if (IS_SET(idx->resistant, risFlag))
num += 1;
if (IS_SET(idx->immune, risFlag))
num += 2;
if (IS_SET(idx->susceptible, risFlag))
num += 4;
return ((char *) ris_strings[num]); /* see const.c */
}
int
get_offset(CHAR_DATA * ch)
{
switch (ch->inter_page) {
case MOB_PAGE_A:
return 18;
case MOB_PAGE_B:
return 18;
case MOB_PAGE_C:
return 20;
case MOB_PAGE_D:
return 18;
case MOB_PAGE_E:
return 19;
case MOB_PAGE_F:
return 22;
case MOB_HELP_PAGE:
return 13;
case ROOM_PAGE_A:
return 10;
case ROOM_PAGE_B:
return 15;
case ROOM_PAGE_C:
return 18;
case ROOM_HELP_PAGE:
return 13;
case OBJ_PAGE_A:
return 16;
case OBJ_PAGE_B:
return 18;
case OBJ_PAGE_C:
return 20;
case OBJ_PAGE_D:
return 18;
case OBJ_PAGE_E:
return 19;
case OBJ_HELP_PAGE:
return 13;
case CONTROL_PAGE_A:
return 9;
case CONTROL_HELP_PAGE:
return 13;
default:
return 0;
}
}
/*
* Send a room editing screen
*/
void
send_room_page_to_char(CHAR_DATA * ch, ROOM_INDEX_DATA * idx, char page)
{
int offset;
char menu_picture[60 * 80];
char buf[MAX_STRING_LENGTH];
if (!ch) {
bug("Send_room_page_to_char: NULL *ch", 0);
return;
}
if (!ch->desc) {
bug("Send_room_page_to_char: NULL ch->desc", 0);
return;
}
switch (page) {
#ifdef NEW_MAPS
case 'd':
format_string(buf,ch->inter_editing,10);
sprintf(menu_picture, room_page_d, buf);
ch->inter_page = ROOM_PAGE_D;
break;
#endif
case 'h':
format_string(buf,ch->inter_editing,10);
sprintf(menu_picture, room_help_page, buf);
ch->inter_page = ROOM_HELP_PAGE;
break;
case 'c':
format_string(buf,ch->inter_editing,10);
sprintf(menu_picture, room_page_c, buf);
ch->inter_page = ROOM_PAGE_C;
break;
case 'b':
format_string(buf,ch->inter_editing,10);
sprintf(menu_picture, room_page_b, buf);
ch->inter_page = ROOM_PAGE_B;
break;
case 'a':
default:
format_string(buf,ch->inter_editing,10);
sprintf(menu_picture, room_page_a, buf);
ch->inter_page = ROOM_PAGE_A;
break;
}
offset = get_offset(ch);
/* clear page & home cursor */
write_to_buffer(ch->desc, "50\E[;H\E[2J", strlen("50\E[;H\E[2J"));
/* prints the necessary mob_page */
write_to_buffer(ch->desc, menu_picture, strlen(menu_picture));
/* fill in fields */
fill_in_room_page(ch, idx, page);
return;
}
/*
* Send a control editing screen
*/
void
send_control_page_to_char(CHAR_DATA * ch, char page)
{
int offset;
char menu_picture[60 * 80];
char buf[MAX_STRING_LENGTH];
if (!ch) {
bug("Send_control_page_to_char: NULL *ch", 0);
return;
}
if (!ch->desc) {
bug("Send_control_page_to_char: NULL ch->desc", 0);
return;
}
switch (page) {
case 'h':
format_string(buf,ch->inter_editing,10);
sprintf(menu_picture, control_help_page, buf);
ch->inter_page = CONTROL_HELP_PAGE;
break;
case 'a':
default:
format_string(buf,ch->inter_editing,10);
sprintf(menu_picture, control_page_a, buf);
ch->inter_page = CONTROL_PAGE_A;
break;
}
offset = get_offset(ch);
/* clear page & home cursor */
write_to_buffer(ch->desc, "50\E[;H\E[2J", strlen("50\E[;H\E[2J"));
/* prints the necessary control_page */
write_to_buffer(ch->desc, menu_picture, strlen(menu_picture));
/* fill in fields */
fill_in_control_page(ch, page);
return;
}
void
do_clear(CHAR_DATA * ch, char *argument)
{
char buf[MAX_STRING_LENGTH];
if (!ch->desc) {
bug("No desc in do_clear\n\r", 0);
}
ch->inter_editing = NO_PAGE;
sprintf(buf, "\E[%d;%dr", 1, ch->pagelen);
write_to_buffer(ch->desc, buf, strlen(buf));
write_to_buffer(ch->desc, "50\E[;H\E[2J", strlen("50\E[;H\E[2J"));
return;
}
/*
* Doesn't allocate any memory! Rehack of strip_cr
*/
void
format_string(char output[], char *str, int length)
{
char newstr[MAX_STRING_LENGTH];
int l, i, j, slen;
bool elipsis;
if ((length < 0) || (length > MAX_STRING_LENGTH)) {
bug("format_string: bad length %d\n\r", length);
l = 72;
} else {
l = length;
}
slen = strlen(str);
if (slen < 1) {
sprintf(output, "%-s", "(blank)");
}
if (slen > l) {
l = l - 3;
elipsis = TRUE;
} else {
elipsis = FALSE;
}
for (i = j = 0; str[i] != '\0' && i <= l; i++)
if ((str[i] != '\r') && (str[i] != '\n')) {
newstr[j++] = str[i];
}
if (elipsis) {
newstr[j++] = '.';
newstr[j++] = '.';
newstr[j++] = '.';
}
newstr[j] = '\0';
sprintf(output, "%-s", newstr);
/* return newstr; */
}
/*
* Send an obj editing screen
*/
void
send_obj_page_to_char(CHAR_DATA * ch, OBJ_INDEX_DATA * idx, char page)
{
int offset;
char menu_picture[60 * 80], buf[MAX_STRING_LENGTH]; /* maximum menu size */
if (!ch) {
bug("Send_page_to_char: NULL *ch", 0);
return;
}
if (!ch->desc) {
bug("Send_page_to_char: NULL ch->desc", 0);
return;
}
switch (page) {
case 'h':
format_string(buf,ch->inter_editing,10);
sprintf(menu_picture, obj_help_page, buf);
ch->inter_page = OBJ_HELP_PAGE;
break;
case 'e':
format_string(buf,ch->inter_editing,10);
sprintf(menu_picture, obj_page_e, buf);
ch->inter_page = OBJ_PAGE_E;
break;
case 'd':
format_string(buf,ch->inter_editing,10);
sprintf(menu_picture, obj_page_d, buf);
ch->inter_page = OBJ_PAGE_D;
break;
case 'c':
format_string(buf,ch->inter_editing,10);
sprintf(menu_picture, obj_page_c, buf);
ch->inter_page = OBJ_PAGE_C;
break;
case 'b':
format_string(buf,ch->inter_editing,10);
sprintf(menu_picture, obj_page_b, buf);
ch->inter_page = OBJ_PAGE_B;
break;
case 'a':
default:
format_string(buf,ch->inter_editing,10);
sprintf(menu_picture, obj_page_a, buf);
ch->inter_page = OBJ_PAGE_A;
break;
}
offset = get_offset(ch);
/* clear page & home cursor */
write_to_buffer(ch->desc, "50\E[;H\E[2J", strlen("50\E[;H\E[2J"));
/* prints the necessary mob_page */
write_to_buffer(ch->desc, menu_picture, strlen(menu_picture));
/* fill in fields */
fill_in_obj_page(ch, idx, page);
return;
}
/*
* Send a (mob) editing screen
*/
void
send_page_to_char(CHAR_DATA * ch, MOB_INDEX_DATA * idx, char page)
{
int offset;
char menu_picture[60 * 80], buf[MAX_STRING_LENGTH];
if (!ch) {
bug("Send_page_to_char: NULL *ch", 0);
return;
}
if (!ch->desc) {
bug("Send_page_to_char: NULL ch->desc", 0);
return;
}
switch (page) {
case 'h':
format_string(buf,ch->inter_editing,10);
sprintf(menu_picture, mob_help_page, buf);
ch->inter_page = MOB_HELP_PAGE;
break;
case 'f':
format_string(buf,ch->inter_editing,10);
sprintf(menu_picture, mob_page_f, buf);
ch->inter_page = MOB_PAGE_F;
break;
case 'e':
format_string(buf,ch->inter_editing,10);
sprintf(menu_picture, mob_page_e, buf);
ch->inter_page = MOB_PAGE_E;
break;
case 'd':
format_string(buf,ch->inter_editing,10);
sprintf(menu_picture, mob_page_d, buf);
ch->inter_page = MOB_PAGE_D;
break;
case 'c':
format_string(buf,ch->inter_editing,10);
sprintf(menu_picture, mob_page_c, buf);
ch->inter_page = MOB_PAGE_C;
break;
case 'b':
format_string(buf,ch->inter_editing,10);
sprintf(menu_picture, mob_page_b, buf);
ch->inter_page = MOB_PAGE_B;
break;
case 'a':
default:
format_string(buf,ch->inter_editing,10);
sprintf(menu_picture, mob_page_a, buf);
ch->inter_page = MOB_PAGE_A;
break;
}
offset = get_offset(ch);
/* clear page & home cursor */
write_to_buffer(ch->desc, "50\E[;H\E[2J", strlen("50\E[;H\E[2J"));
/* prints the necessary mob_page */
write_to_buffer(ch->desc, menu_picture, strlen(menu_picture));
/* fill in fields */
fill_in_mob_page(ch, idx, page);
return;
}
void
do_redraw_page(CHAR_DATA * ch, char *argument)
{
char page;
MOB_INDEX_DATA *idx;
OBJ_INDEX_DATA *oidx;
ROOM_INDEX_DATA *ridx;
switch (ch->inter_page) {
case MOB_PAGE_A:
page = 'a';
break;
case MOB_PAGE_B:
page = 'b';
break;
case MOB_PAGE_C:
page = 'c';
break;
case MOB_PAGE_D:
page = 'd';
break;
case MOB_PAGE_E:
page = 'e';
break;
case MOB_PAGE_F:
page = 'f';
break;
case MOB_HELP_PAGE:
page = 'h';
break;
case OBJ_PAGE_A:
page = 'a';
break;
case OBJ_PAGE_B:
page = 'b';
break;
case OBJ_PAGE_C:
page = 'c';
break;
case OBJ_PAGE_D:
page = 'd';
break;
case OBJ_PAGE_E:
page = 'e';
break;
case OBJ_HELP_PAGE:
page = 'h';
break;
case ROOM_PAGE_A:
page = 'a';
break;
case ROOM_PAGE_B:
page = 'b';
break;
case ROOM_PAGE_C:
page = 'c';
break;
case CONTROL_PAGE_A:
page = 'a';
break;
case CONTROL_HELP_PAGE:
page = 'h';
break;
case NO_PAGE:
default:
return;
}
if(ch->inter_type== MOB_TYPE)
{
idx = get_mob_index(ch->inter_editing_vnum);
if (idx == NULL) {
bug("do_redraw_page: Get_mob_index: bad vnum %d.", ch->inter_editing_vnum);
send_to_char(" do_redraw_page: bizarre bug! that vnum evaporated \n\r", ch);
}
send_page_to_char(ch, idx, page);
return;
}
if(ch->inter_type== ROOM_TYPE)
{
ridx = get_room_index(ch->inter_editing_vnum);
if (ridx == NULL) {
bug("do_redraw_page: Get_room_index: bad vnum %d.", ch->inter_editing_vnum);
send_to_char(" do_redraw_page: bizarre bug! that vnum evaporated \n\r", ch);
}
send_room_page_to_char(ch, ridx, page);
return;
}
if(ch->inter_type== OBJ_TYPE)
{
oidx = get_obj_index(ch->inter_editing_vnum);
if (oidx == NULL) {
bug("do_redraw_page: Get_obj_index: bad vnum %d.", ch->inter_editing_vnum);
send_to_char(" do_redraw_page: bizarre bug! that vnum evaporated \n\r", ch);
}
send_obj_page_to_char(ch, oidx, page);
return;
}
if(ch->inter_type== CONTROL_TYPE)
{
send_control_page_to_char(ch, page);
return;
}
bug("do_redraw_page: Bad ch->inter_type: vnum %d.", ch->inter_editing_vnum);
}
void
do_refresh_page(CHAR_DATA * ch, char *argument)
{
refresh_page(ch);
return;
}
void
refresh_page(CHAR_DATA * ch)
{
char page;
void *idx;
switch (ch->inter_type) {
case MOB_TYPE:
switch (ch->inter_page) {
case MOB_PAGE_A:
page = 'a';
break;
case MOB_PAGE_B:
page = 'b';
break;
case MOB_PAGE_C:
page = 'c';
break;
case MOB_PAGE_D:
page = 'd';
break;
case MOB_PAGE_E:
page = 'e';
break;
case MOB_PAGE_F:
page = 'f';
break;
case MOB_HELP_PAGE:
case NO_PAGE:
default:
return;
}
idx = (MOB_INDEX_DATA *) get_mob_index(ch->inter_editing_vnum);
if (idx == NULL) {
bug("refresh_page: Get_mob_index: bad vnum %d.", ch->inter_editing_vnum);
send_to_char(" do_refresh_page: bizarre bug! that vnum evaporated \n\r", ch);
}
fill_in_mob_page(ch, idx, page);
return;
case ROOM_TYPE:
switch (ch->inter_page) {
case ROOM_PAGE_A:
page = 'a';
break;
case ROOM_PAGE_B:
page = 'b';
break;
case ROOM_PAGE_C:
page = 'c';
break;
case ROOM_HELP_PAGE:
case NO_PAGE:
default:
return;
}
idx = (ROOM_INDEX_DATA *) get_room_index(ch->inter_editing_vnum);
if (idx == NULL) {
bug("refresh_page: Get_room_index: bad vnum %d.", ch->inter_editing_vnum);
send_to_char(" do_refresh_page: bizarre bug! that vnum evaporated \n\r", ch);
}
fill_in_room_page(ch, idx, page);
return;
case OBJ_TYPE:
switch (ch->inter_page) {
case OBJ_PAGE_A:
page = 'a';
break;
case OBJ_PAGE_B:
page = 'b';
break;
case OBJ_PAGE_C:
page = 'c';
break;
case OBJ_PAGE_D:
page = 'd';
break;
case OBJ_PAGE_E:
page = 'e';
break;
case OBJ_HELP_PAGE:
case NO_PAGE:
default:
return;
}
idx = (OBJ_INDEX_DATA *) get_obj_index(ch->inter_editing_vnum);
if (idx == NULL) {
bug("refresh_page: Get_obj_index: bad vnum %d.", ch->inter_editing_vnum);
send_to_char(" do_refresh_page: bizarre bug! that vnum evaporated \n\r", ch);
}
fill_in_obj_page(ch, idx, page);
return;
case CONTROL_TYPE:
switch (ch->inter_page) {
case CONTROL_PAGE_A:
page = 'a';
break;
case CONTROL_HELP_PAGE:
page = 'h';
break;
case NO_PAGE:
default:
return;
}
default:
return;
}
}
void
fill_in_control_page(CHAR_DATA * ch, char page)
{
MENU_DATA *m_data;
char buf[MAX_STRING_LENGTH];
int i, offset;
if ((ch->inter_substate < 0) || (ch->inter_substate > 5)) {
send_to_char("Bad interface substate. Can't fill in page.\n\r", ch);
return;
}
switch (page) {
case 'h': return;
default:
case 'a':
m_data = control_page_a_data;
control_page_a_data[0].data = &(sysdata.read_mail_free);
control_page_a_data[1].data = &(sysdata.write_mail_free);
control_page_a_data[2].data = &(sysdata.read_all_mail);
control_page_a_data[3].data = &(sysdata.take_others_mail);
control_page_a_data[4].data = &(sysdata.muse_level);
control_page_a_data[5].data = &(sysdata.think_level);
control_page_a_data[6].data = &(sysdata.log_level);
control_page_a_data[7].data = &(sysdata.build_level);
}
for (i = 0; m_data[i].ptrType != (int)NULL; i++) {
sprintf(buf, "\E[%d;%dH", m_data[i].x, m_data[i].y);
write_to_buffer(ch->desc, buf, strlen(buf));
switch(m_data[i].ptrType)
{
case INT: sprintf(buf, m_data[i].outFormat,*((int *)(m_data[i].data)));
break;
case SH_INT: sprintf(buf, m_data[i].outFormat,*((sh_int *)(m_data[i].data)));
break;
default : sprintf(buf, m_data[i].outFormat, m_data[i].data);
}
#ifdef WRONG_WAY
if (m_data[i].ptrType == INT) {
sprintf(buf, m_data[i].outFormat, *((int *) (m_data[i].data)));
}
if (m_data[i].ptrType == SH_INT) {
sprintf(buf, m_data[i].outFormat, *((sh_int *) (m_data[i].data)));
} else {
sprintf(buf, m_data[i].outFormat, m_data[i].data);
}
#endif
write_to_buffer(ch->desc, buf, strlen(buf));
}
offset = get_offset(ch);
/* restrict scrolling area of screen */
sprintf(buf, "\E[%d;%dr", offset, ch->pagelen);
write_to_buffer(ch->desc, buf, strlen(buf));
/* goes to pglen,1 */
sprintf(buf, "\E[%d;1H", (ch->pagelen));
write_to_buffer(ch->desc, buf, strlen(buf));
send_to_char("\n\r", ch);
}
void
fill_in_room_page(CHAR_DATA * ch, ROOM_INDEX_DATA * idx, char page)
{
MENU_DATA *m_data;
char buf[MAX_STRING_LENGTH];
OBJ_INDEX_DATA *pObjIndex;
EXIT_DATA *xit;
char tmp0[MAX_STRING_LENGTH];
char tmp1[MAX_STRING_LENGTH];
int i, offset;
if ((ch->inter_substate < 0) || (ch->inter_substate > 5)) {
send_to_char("Bad interface substate. Can't fill in page.\n\r", ch);
return;
}
switch (page) {
case 'h': return;
case 'c':
m_data = room_page_c_data;
room_page_c_data[0].data = (ch->inter_substate == SUB_NORTH) ? check : space;
room_page_c_data[1].data = (ch->inter_substate == SUB_UP) ? check : space;
room_page_c_data[2].data = (ch->inter_substate == SUB_EAST) ? check : space;
room_page_c_data[3].data = (ch->inter_substate == SUB_WEST) ? check : space;
room_page_c_data[4].data = (ch->inter_substate == SUB_SOUTH) ? check : space;
room_page_c_data[5].data = (ch->inter_substate == SUB_DOWN) ? check : space;
xit = get_exit(idx, ch->inter_substate);
if (!xit) {
room_page_c_data[6].data = (char *) space;
room_page_c_data[7].data = (char *) space;
room_page_c_data[8].data = (char *) space;
room_page_c_data[9].data = (char *) space;
room_page_c_data[10].data = (char *) space;
room_page_c_data[11].data = (char *) space;
room_page_c_data[12].data = (char *) space;
room_page_c_data[13].data = (char *) "No Exit This Way";
room_page_c_data[14].data = (char *) space;
room_page_c_data[15].data = (char *) space;
room_page_c_data[16].data = (char *) space;
} else {
room_page_c_data[6].data = IS_SET(xit->exit_info, EX_ISDOOR) ? check : space;
/* SIC.!!! */
room_page_c_data[7].data = IS_SET(xit->exit_info, EX_SECRET) ? check : space;
room_page_c_data[8].data = IS_SET(xit->exit_info, EX_CLOSED) ? check : space;
room_page_c_data[9].data = IS_SET(xit->exit_info, EX_PICKPROOF) ? check : space;
room_page_c_data[10].data = IS_SET(xit->exit_info, EX_LOCKED) ? check : space;
room_page_c_data[11].data = IS_SET(xit->exit_info, EX_NOPASSDOOR) ? check : space;
room_page_c_data[12].data = &(xit->vnum);
room_page_c_data[13].data = xit->to_room->name;
room_page_c_data[14].data = &(xit->key);
if ((pObjIndex = get_obj_index(xit->key)) == NULL) {
room_page_c_data[15].data = "No (or Unknown) Key";
} else {
room_page_c_data[15].data = pObjIndex->name;
}
room_page_c_data[16].data = xit->description;
}
break;
case 'b':
m_data = room_page_b_data;
room_page_b_data[0].data = IS_SET(idx->room_flags, ROOM_DARK) ? check : space;
room_page_b_data[1].data = IS_SET(idx->room_flags, ROOM_DEATH) ? check : space;
room_page_b_data[2].data = IS_SET(idx->room_flags, ROOM_NO_MOB) ? check : space;
room_page_b_data[3].data = IS_SET(idx->room_flags, ROOM_INDOORS) ? check : space;
room_page_b_data[4].data = IS_SET(idx->room_flags, ROOM_LAWFUL) ? check : space;
room_page_b_data[5].data = IS_SET(idx->room_flags, ROOM_NO_MAGIC) ? check : space;
room_page_b_data[6].data = IS_SET(idx->room_flags, ROOM_PET_SHOP) ? check : space;
room_page_b_data[7].data = IS_SET(idx->room_flags, ROOM_NEUTRAL) ? check : space;
room_page_b_data[8].data = IS_SET(idx->room_flags, ROOM_NODROP) ? check : space;
room_page_b_data[9].data = IS_SET(idx->room_flags, ROOM_SAFE) ? check : space;
room_page_b_data[10].data = IS_SET(idx->room_flags, ROOM_CHAOTIC) ? check : space;
room_page_b_data[11].data = IS_SET(idx->room_flags, ROOM_NODROPALL) ? check : space;
room_page_b_data[12].data = IS_SET(idx->room_flags, ROOM_TELEPORT) ? check : space;
room_page_b_data[13].data = IS_SET(idx->room_flags, ROOM_DONATION) ? check : space;
room_page_b_data[14].data = IS_SET(idx->room_flags, ROOM_NO_RECALL) ? check : space;
room_page_b_data[15].data = IS_SET(idx->room_flags, ROOM_PRIVATE) ? check : space;
room_page_b_data[16].data = IS_SET(idx->room_flags, ROOM_SOLITARY) ? check : space;
room_page_b_data[17].data = IS_SET(idx->room_flags, ROOM_NO_ASTRAL) ? check : space;
room_page_b_data[18].data = IS_SET(idx->room_flags, ROOM_TUNNEL) ? check : space;
room_page_b_data[19].data = IS_SET(idx->room_flags, ROOM_SILENCE) ? check : space;
room_page_b_data[20].data = IS_SET(idx->room_flags, ROOM_NO_SUMMON) ? check : space;
room_page_b_data[21].data = IS_SET(idx->room_flags, ROOM_CLANSTOREROOM) ? check : space;
room_page_b_data[22].data = IS_SET(idx->room_flags, ROOM_LOGSPEECH) ? check : space;
room_page_b_data[23].data = IS_SET(idx->room_flags, ROOM_NOFLOOR) ? check : space;
room_page_b_data[24].data = (idx->sector_type == SECT_INSIDE) ? check : space;
room_page_b_data[25].data = (idx->sector_type == SECT_FOREST) ? check : space;
room_page_b_data[26].data = (idx->sector_type == SECT_CITY) ? check : space;
room_page_b_data[27].data = (idx->sector_type == SECT_HILLS) ? check : space;
room_page_b_data[28].data = (idx->sector_type == SECT_MOUNTAIN) ? check : space;
room_page_b_data[29].data = (idx->sector_type == SECT_WATER_SWIM) ? check : space;
room_page_b_data[30].data = (idx->sector_type == SECT_AIR) ? check : space;
room_page_b_data[31].data = (idx->sector_type == SECT_DESERT) ? check : space;
room_page_b_data[32].data = (idx->sector_type == SECT_DUNNO) ? check : space;
room_page_b_data[33].data = (idx->sector_type == SECT_WATER_NOSWIM) ? check : space;
room_page_b_data[34].data = (idx->sector_type == SECT_FIELD) ? check : space;
break;
default:
case 'a':
m_data = room_page_a_data;
/*
* room_page_a_data[0].data = idx->name;
* room_page_a_data[1].data = idx->description;
*/
format_string(tmp0, idx->name, 72);
format_string(tmp1, idx->description, 72);
room_page_a_data[0].data = tmp0;
room_page_a_data[1].data = tmp1;
}
for (i = 0; m_data[i].ptrType != (int)NULL; i++) {
sprintf(buf, "\E[%d;%dH", m_data[i].x, m_data[i].y);
write_to_buffer(ch->desc, buf, strlen(buf));
switch(m_data[i].ptrType)
{
case INT: sprintf(buf, m_data[i].outFormat,*((int *)(m_data[i].data)));
break;
case SH_INT: sprintf(buf, m_data[i].outFormat,*((sh_int *)(m_data[i].data)));
break;
default : sprintf(buf, m_data[i].outFormat, m_data[i].data);
}
#ifdef WRONG_WAY
if (m_data[i].ptrType == INT) {
sprintf(buf, m_data[i].outFormat, *((int *) (m_data[i].data)));
}
if (m_data[i].ptrType == SH_INT) {
sprintf(buf, m_data[i].outFormat, *((sh_int *) (m_data[i].data)));
} else {
sprintf(buf, m_data[i].outFormat, m_data[i].data);
}
#endif
write_to_buffer(ch->desc, buf, strlen(buf));
}
offset = get_offset(ch);
/* restrict scrolling area of screen */
sprintf(buf, "\E[%d;%dr", offset, ch->pagelen);
write_to_buffer(ch->desc, buf, strlen(buf));
/* goes to pglen,1 */
sprintf(buf, "\E[%d;1H", (ch->pagelen));
write_to_buffer(ch->desc, buf, strlen(buf));
send_to_char("\n\r", ch);
}
/*****
Comments & notes:
-----------------
To check a normal apply type:
total_modstr = get_affect( obj, APPLY_STR );
To check if it affects by flying:
get_affect( obj, GA_AFFECT | get_bvl(AFF_FLYING) );
To get the RIS for DRAIN:
get_affect( obj, GA_RIS | get_bvl(RIS_DRAIN) );
******/
void
fill_in_obj_page(CHAR_DATA * ch, OBJ_INDEX_DATA * idx, char page)
{
MENU_DATA *m_data;
char buf[MAX_STRING_LENGTH];
int i, offset;
char tmp0[MAX_STRING_LENGTH];
char tmp1[MAX_STRING_LENGTH];
char tmp2[MAX_STRING_LENGTH];
char tmp3[MAX_STRING_LENGTH];
sh_int tmp[27];
switch (page) {
case 'h': return;
case 'e':
m_data = obj_page_e_data;
obj_page_e_data[0].data = IS_SET(idx->extra_flags, ITEM_EVIL) ? check : space;
obj_page_e_data[1].data = IS_SET(idx->extra_flags, ITEM_ANTI_GOOD) ? check : space;
obj_page_e_data[2].data = IS_SET(idx->extra_flags, ITEM_NODROP) ? check : space;
obj_page_e_data[3].data = IS_SET(idx->extra_flags, ITEM_INVIS) ? check : space;
obj_page_e_data[4].data = IS_SET(idx->extra_flags, ITEM_ANTI_EVIL) ? check : space;
obj_page_e_data[5].data = IS_SET(idx->extra_flags, ITEM_NOREMOVE) ? check : space;
obj_page_e_data[6].data = IS_SET(idx->extra_flags, ITEM_HIDDEN) ? check : space;
obj_page_e_data[7].data = IS_SET(idx->extra_flags, ITEM_ANTI_NEUTRAL) ? check : space;
obj_page_e_data[8].data = IS_SET(idx->extra_flags, ITEM_INVENTORY) ? check : space;
obj_page_e_data[9].data = IS_SET(idx->extra_flags, ITEM_GLOW) ? check : space;
obj_page_e_data[10].data = IS_SET(idx->extra_flags, ITEM_BLESS) ? check : space;
obj_page_e_data[11].data = IS_SET(idx->extra_flags, ITEM_ANTI_MAGE) ? check : space;
obj_page_e_data[12].data = IS_SET(idx->extra_flags, ITEM_DONATION) ? check : space;
obj_page_e_data[13].data = IS_SET(idx->extra_flags, ITEM_HUM) ? check : space;
obj_page_e_data[14].data = IS_SET(idx->extra_flags, ITEM_METAL) ? check : space;
obj_page_e_data[15].data = IS_SET(idx->extra_flags, ITEM_ANTI_THIEF) ? check : space;
obj_page_e_data[16].data = IS_SET(idx->extra_flags, ITEM_CLANOBJECT) ? check : space;
obj_page_e_data[17].data = IS_SET(idx->extra_flags, ITEM_DARK) ? check : space;
obj_page_e_data[18].data = IS_SET(idx->extra_flags, ITEM_ORGANIC) ? check : space;
obj_page_e_data[19].data = IS_SET(idx->extra_flags, ITEM_ANTI_WARRIOR) ? check : space;
obj_page_e_data[20].data = IS_SET(idx->extra_flags, ITEM_CLANCORPSE) ? check : space;
obj_page_e_data[21].data = IS_SET(idx->extra_flags, ITEM_MAGIC) ? check : space;
obj_page_e_data[22].data = IS_SET(idx->extra_flags, ITEM_ANTI_CLERIC) ? check : space;
obj_page_e_data[23].data = IS_SET(idx->extra_flags, ITEM_PROTOTYPE) ? check : space;
obj_page_e_data[24].data = IS_SET(idx->extra_flags, ITEM_LOYAL) ? check : space;
obj_page_e_data[25].data = IS_SET(idx->extra_flags, ITEM_ANTI_VAMPIRE) ? check : space;
obj_page_e_data[26].data = IS_SET(idx->extra_flags, ITEM_DEATHROT) ? check : space;
obj_page_e_data[27].data = IS_SET(idx->extra_flags, ITEM_ANTI_DRUID) ? check : space;
obj_page_e_data[28].data = IS_SET(idx->wear_flags, ITEM_TAKE) ? check : space;
obj_page_e_data[29].data = IS_SET(idx->wear_flags, ITEM_WEAR_FINGER) ? check : space;
obj_page_e_data[30].data = IS_SET(idx->wear_flags, ITEM_WEAR_NECK) ? check : space;
obj_page_e_data[31].data = IS_SET(idx->wear_flags, ITEM_WEAR_BODY) ? check : space;
obj_page_e_data[32].data = IS_SET(idx->wear_flags, ITEM_WEAR_HEAD) ? check : space;
obj_page_e_data[33].data = IS_SET(idx->wear_flags, ITEM_WEAR_LEGS) ? check : space;
obj_page_e_data[34].data = IS_SET(idx->wear_flags, ITEM_WEAR_FEET) ? check : space;
obj_page_e_data[35].data = IS_SET(idx->wear_flags, ITEM_WEAR_HANDS) ? check : space;
obj_page_e_data[36].data = IS_SET(idx->wear_flags, ITEM_WEAR_ARMS) ? check : space;
obj_page_e_data[37].data = IS_SET(idx->wear_flags, ITEM_WEAR_SHIELD) ? check : space;
obj_page_e_data[38].data = IS_SET(idx->wear_flags, ITEM_WEAR_ABOUT) ? check : space;
obj_page_e_data[39].data = IS_SET(idx->wear_flags, ITEM_WEAR_WAIST) ? check : space;
obj_page_e_data[40].data = IS_SET(idx->wear_flags, ITEM_WEAR_WRIST) ? check : space;
obj_page_e_data[41].data = IS_SET(idx->wear_flags, ITEM_WIELD) ? check : space;
obj_page_e_data[42].data = IS_SET(idx->wear_flags, ITEM_HOLD) ? check : space;
obj_page_e_data[43].data = IS_SET(idx->wear_flags, ITEM_DUAL_WIELD) ? check : space;
obj_page_e_data[44].data = IS_SET(idx->wear_flags, ITEM_WEAR_EARS) ? check : space;
obj_page_e_data[45].data = IS_SET(idx->wear_flags, ITEM_WEAR_EYES) ? check : space;
break;
case 'd':
m_data = obj_page_d_data;
obj_page_d_data[0].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_BLIND)) ? check : space;
obj_page_d_data[1].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_DETECT_INVIS)) ? check : space;
obj_page_d_data[2].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_DETECT_EVIL)) ? check : space;
obj_page_d_data[3].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_DETECT_MAGIC)) ? check : space;
obj_page_d_data[4].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_DETECT_HIDDEN)) ? check : space;
obj_page_d_data[5].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_HOLD)) ? check : space;
obj_page_d_data[6].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_SANCTUARY)) ? check : space;
obj_page_d_data[7].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_FAERIE_FIRE)) ? check : space;
obj_page_d_data[8].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_INFRARED)) ? check : space;
obj_page_d_data[9].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_CURSE)) ? check : space;
obj_page_d_data[10].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_FLAMING)) ? check : space;
obj_page_d_data[11].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_POISON)) ? check : space;
obj_page_d_data[12].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_PROTECT)) ? check : space;
obj_page_d_data[13].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_PARALYSIS)) ? check : space;
obj_page_d_data[14].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_SLEEP)) ? check : space;
obj_page_d_data[15].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_HIDE)) ? check : space;
obj_page_d_data[16].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_SNEAK)) ? check : space;
obj_page_d_data[17].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_CHARM)) ? check : space;
obj_page_d_data[18].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_FLYING)) ? check : space;
obj_page_d_data[19].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_PASS_DOOR)) ? check : space;
obj_page_d_data[20].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_TRUESIGHT)) ? check : space;
obj_page_d_data[21].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_DETECTTRAPS)) ? check : space;
obj_page_d_data[22].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_SCRYING)) ? check : space;
obj_page_d_data[23].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_FIRESHIELD)) ? check : space;
obj_page_d_data[24].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_SHOCKSHIELD)) ? check : space;
obj_page_d_data[25].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_FLOATING)) ? check : space;
obj_page_d_data[26].data = get_affect(idx, GA_AFFECTED | get_bvl(AFF_INVISIBLE)) ? check : space;
break;
case 'c':
m_data = obj_page_c_data;
obj_page_c_data[0].data = "\\";
tmp[1] = get_affect(idx, APPLY_SAVING_POISON);
tmp[2] = get_affect(idx, APPLY_AGE);
tmp[3] = get_affect(idx, APPLY_STR);
tmp[4] = get_affect(idx, APPLY_SAVING_ROD);
tmp[5] = get_affect(idx, APPLY_CLASS);
tmp[6] = get_affect(idx, APPLY_INT);
tmp[7] = get_affect(idx, APPLY_SAVING_PARA);
tmp[8] = get_affect(idx, APPLY_LEVEL);
tmp[9] = get_affect(idx, APPLY_WIS);
tmp[10] = get_affect(idx, APPLY_SAVING_BREATH);
tmp[11] = get_affect(idx, APPLY_SEX);
tmp[12] = get_affect(idx, APPLY_DEX);
tmp[13] = get_affect(idx, APPLY_SAVING_SPELL);
tmp[14] = get_affect(idx, APPLY_HEIGHT);
tmp[15] = get_affect(idx, APPLY_CON);
tmp[16] = get_affect(idx, APPLY_WEIGHT);
tmp[17] = get_affect(idx, APPLY_CHA);
tmp[18] = get_affect(idx, APPLY_MANA);
tmp[19] = get_affect(idx, APPLY_AC);
tmp[20] = get_affect(idx, APPLY_HIT);
tmp[21] = get_affect(idx, APPLY_HITROLL);
tmp[22] = get_affect(idx, APPLY_GOLD);
tmp[23] = get_affect(idx, APPLY_MOVE);
tmp[24] = get_affect(idx, APPLY_DAMROLL);
tmp[25] = get_affect(idx, APPLY_EXP);
obj_page_c_data[1].data = &(tmp[1]);
obj_page_c_data[2].data = &(tmp[2]);
obj_page_c_data[3].data = &(tmp[3]);
obj_page_c_data[4].data = &(tmp[4]);
obj_page_c_data[5].data = &(tmp[5]);
obj_page_c_data[6].data = &(tmp[6]);
obj_page_c_data[7].data = &(tmp[7]);
obj_page_c_data[8].data = &(tmp[8]);
obj_page_c_data[9].data = &(tmp[9]);
obj_page_c_data[10].data = &(tmp[10]);
obj_page_c_data[11].data = &(tmp[11]);
obj_page_c_data[12].data = &(tmp[12]);
obj_page_c_data[13].data = &(tmp[13]);
obj_page_c_data[14].data = &(tmp[14]);
obj_page_c_data[15].data = &(tmp[15]);
obj_page_c_data[16].data = &(tmp[16]);
obj_page_c_data[17].data = &(tmp[17]);
obj_page_c_data[18].data = &(tmp[18]);
obj_page_c_data[19].data = &(tmp[19]);
obj_page_c_data[20].data = &(tmp[20]);
obj_page_c_data[21].data = &(tmp[21]);
obj_page_c_data[22].data = &(tmp[22]);
obj_page_c_data[23].data = &(tmp[23]);
obj_page_c_data[24].data = &(tmp[24]);
obj_page_c_data[25].data = &(tmp[25]);
obj_page_c_data[26].data = (char *) ris_strings[get_affect(idx, GA_RIS | get_bvl(RIS_FIRE))];
obj_page_c_data[27].data = (char *) ris_strings[get_affect(idx, GA_RIS | get_bvl(RIS_COLD))];
obj_page_c_data[28].data = (char *) ris_strings[get_affect(idx, GA_RIS | get_bvl(RIS_ELECTRICITY))];
obj_page_c_data[29].data = (char *) ris_strings[get_affect(idx, GA_RIS | get_bvl(RIS_ENERGY))];
obj_page_c_data[30].data = (char *) ris_strings[get_affect(idx, GA_RIS | get_bvl(RIS_POISON))];
obj_page_c_data[31].data = (char *) ris_strings[get_affect(idx, GA_RIS | get_bvl(RIS_BLUNT))];
obj_page_c_data[32].data = (char *) ris_strings[get_affect(idx, GA_RIS | get_bvl(RIS_PIERCE))];
obj_page_c_data[33].data = (char *) ris_strings[get_affect(idx, GA_RIS | get_bvl(RIS_SLASH))];
obj_page_c_data[34].data = (char *) ris_strings[get_affect(idx, GA_RIS | get_bvl(RIS_ACID))];
obj_page_c_data[35].data = (char *) ris_strings[get_affect(idx, GA_RIS | get_bvl(RIS_NONMAGIC))];
obj_page_c_data[36].data = (char *) ris_strings[get_affect(idx, GA_RIS | get_bvl(RIS_DRAIN))];
obj_page_c_data[37].data = (char *) ris_strings[get_affect(idx, GA_RIS | get_bvl(RIS_SLEEP))];
obj_page_c_data[38].data = (char *) ris_strings[get_affect(idx, GA_RIS | get_bvl(RIS_CHARM))];
obj_page_c_data[39].data = (char *) ris_strings[get_affect(idx, GA_RIS | get_bvl(RIS_HOLD))];
obj_page_c_data[40].data = (char *) ris_strings[get_affect(idx, GA_RIS | get_bvl(RIS_MAGIC))];
obj_page_c_data[41].data = (char *) ris_strings[get_affect(idx, GA_RIS | get_bvl(RIS_PLUS1))];
obj_page_c_data[42].data = (char *) ris_strings[get_affect(idx, GA_RIS | get_bvl(RIS_PLUS2))];
obj_page_c_data[43].data = (char *) ris_strings[get_affect(idx, GA_RIS | get_bvl(RIS_PLUS3))];
obj_page_c_data[44].data = (char *) ris_strings[get_affect(idx, GA_RIS | get_bvl(RIS_PLUS4))];
obj_page_c_data[45].data = (char *) ris_strings[get_affect(idx, GA_RIS | get_bvl(RIS_PLUS5))];
obj_page_c_data[46].data = (char *) ris_strings[get_affect(idx, GA_RIS | get_bvl(RIS_PLUS6))];
break;
case 'b':
m_data = obj_page_b_data;
obj_page_b_data[0].data = ((idx->item_type == 0) ? check : space);
obj_page_b_data[1].data = ((idx->item_type == ITEM_FOUNTAIN) ? check : space);
obj_page_b_data[2].data = ((idx->item_type == ITEM_FURNITURE) ? check : space);
obj_page_b_data[3].data = ((idx->item_type == ITEM_ARMOR) ? check : space);
obj_page_b_data[4].data = ((idx->item_type == ITEM_FOOD) ? check : space);
obj_page_b_data[5].data = ((idx->item_type == ITEM_MONEY) ? check : space);
obj_page_b_data[6].data = ((idx->item_type == ITEM_POTION) ? check : space);
obj_page_b_data[7].data = ((idx->item_type == ITEM_PULLCHAIN) ? check : space);
obj_page_b_data[8].data = ((idx->item_type == ITEM_WEAPON) ? check : space);
obj_page_b_data[9].data = ((idx->item_type == ITEM_MAP) ? check : space);
obj_page_b_data[10].data = ((idx->item_type == ITEM_LIGHT) ? check : space);
obj_page_b_data[11].data = ((idx->item_type == ITEM_BUTTON) ? check : space);
obj_page_b_data[12].data = ((idx->item_type == ITEM_TREASURE) ? check : space);
obj_page_b_data[13].data = ((idx->item_type == ITEM_HERB) ? check : space);
obj_page_b_data[14].data = ((idx->item_type == ITEM_TRASH) ? check : space);
obj_page_b_data[15].data = ((idx->item_type == ITEM_SWITCH) ? check : space);
obj_page_b_data[16].data = ((idx->item_type == ITEM_CONTAINER) ? check : space);
obj_page_b_data[17].data = ((idx->item_type == ITEM_WAND) ? check : space);
obj_page_b_data[18].data = ((idx->item_type == ITEM_SCROLL) ? check : space);
obj_page_b_data[19].data = ((idx->item_type == ITEM_STAFF) ? check : space);
obj_page_b_data[20].data = ((idx->item_type == ITEM_BLOODSTAIN) ? check : space);
obj_page_b_data[21].data = ((idx->item_type == ITEM_PILL) ? check : space);
obj_page_b_data[22].data = ((idx->item_type == ITEM_BLOOD) ? check : space);
obj_page_b_data[23].data = ((idx->item_type == ITEM_DIAL) ? check : space);
obj_page_b_data[24].data = ((idx->item_type == ITEM_TRAP) ? check : space);
obj_page_b_data[25].data = ((idx->item_type == ITEM_KEY) ? check : space);
obj_page_b_data[26].data = ((idx->item_type == ITEM_INCENSE) ? check : space);
obj_page_b_data[27].data = ((idx->item_type == ITEM_LEVER) ? check : space);
obj_page_b_data[28].data = ((idx->item_type == ITEM_CORPSE_PC) ? check : space);
obj_page_b_data[29].data = ((idx->item_type == ITEM_PIPE) ? check : space);
obj_page_b_data[30].data = ((idx->item_type == ITEM_SCRAPS) ? check : space);
obj_page_b_data[31].data = ((idx->item_type == ITEM_TRAP) ? check : space);
obj_page_b_data[32].data = ((idx->item_type == ITEM_CORPSE_NPC) ? check : space);
obj_page_b_data[33].data = ((idx->item_type == ITEM_BOOK) ? check : space);
obj_page_b_data[34].data = ((idx->item_type == ITEM_MATCH) ? check : space);
obj_page_b_data[35].data = ((idx->item_type == ITEM_DRINK_CON) ? check : space);
obj_page_b_data[36].data = (char *) "\\";
obj_page_b_data[37].data = (char *) "\\";
obj_page_b_data[38].data = ((idx->item_type == ITEM_FIRE) ? check : space);
obj_page_b_data[39].data = ((idx->item_type == ITEM_HERB_CON) ? check : space);
obj_page_b_data[40].data = (char *) "\\";
obj_page_b_data[41].data = ((idx->item_type == ITEM_BOAT) ? check : space);
obj_page_b_data[42].data = ((idx->item_type == ITEM_RUNE) ? check : space);
obj_page_b_data[43].data = ((idx->item_type == ITEM_RUNEPOUCH) ? check : space);
obj_page_b_data[44].data = (char *) "\\";
break;
default:
case 'a':
m_data = obj_page_a_data;
format_string(tmp0, idx->name, 53);
format_string(tmp1, idx->short_descr, 53);
format_string(tmp2, idx->description, 63);
format_string(tmp3, idx->action_desc, 51);
obj_page_a_data[0].data = tmp0;
obj_page_a_data[1].data = tmp1;
obj_page_a_data[2].data = tmp2;
obj_page_a_data[3].data = tmp3;
obj_page_a_data[4].data = &(idx->value[0]);
obj_page_a_data[5].data = get_item_strings(idx->item_type, 1);
obj_page_a_data[6].data = &(idx->value[1]);
obj_page_a_data[7].data = get_item_strings(idx->item_type, 2);
obj_page_a_data[8].data = &(idx->value[2]);
obj_page_a_data[9].data = get_item_strings(idx->item_type, 3);
obj_page_a_data[10].data = &(idx->value[3]);
obj_page_a_data[11].data = get_item_strings(idx->item_type,4);
obj_page_a_data[12].data = &(idx->weight);
obj_page_a_data[13].data = &(idx->cost);
}
for (i = 0; m_data[i].ptrType != (int) NULL; i++) {
sprintf(buf, "\E[%d;%dH", m_data[i].x, m_data[i].y);
write_to_buffer(ch->desc, buf, strlen(buf));
switch(m_data[i].ptrType)
{
case INT: sprintf(buf, m_data[i].outFormat,*((int *)(m_data[i].data)));
break;
case SH_INT: sprintf(buf, m_data[i].outFormat,*((sh_int *)(m_data[i].data)));
break;
default : sprintf(buf, m_data[i].outFormat, m_data[i].data);
}
write_to_buffer(ch->desc, buf, strlen(buf));
}
offset = get_offset(ch);
/* restrict scrolling area of screen */
sprintf(buf, "\E[%d;%dr", offset, ch->pagelen);
write_to_buffer(ch->desc, buf, strlen(buf));
/* goes to pglen,1 */
sprintf(buf, "\E[%d;1H", (ch->pagelen));
write_to_buffer(ch->desc, buf, strlen(buf));
send_to_char("\n\r", ch);
}
void
fill_in_mob_page(CHAR_DATA * ch, MOB_INDEX_DATA * idx, char page)
{
MENU_DATA *m_data;
char buf[MAX_STRING_LENGTH];
char buf1[MAX_STRING_LENGTH];
char buf2[MAX_STRING_LENGTH];
char tmp0[MAX_STRING_LENGTH];
char tmp1[MAX_STRING_LENGTH];
char tmp2[MAX_STRING_LENGTH];
char tmp3[MAX_STRING_LENGTH];
char *spec;
int i, offset;
switch (page) {
case 'h': return;
case 'e':
m_data = mob_page_e_data;
spec = lookup_spec(idx->spec_fun);
/*
* getting a boolean for a special is a royal pain in the
* butt.... would be easier if specs were global, then could
* cmp by addr instead of string
*/
mob_page_e_data[0].data = (!str_cmp(spec, "spec_fido")) ? check : space;
mob_page_e_data[1].data = (!str_cmp(spec, "spec_cast_adept")) ? check : space;
mob_page_e_data[2].data = (!str_cmp(spec, "spec_breath_fire")) ? check : space;
mob_page_e_data[3].data = (!str_cmp(spec, "spec_guard")) ? check : space;
mob_page_e_data[4].data = (!str_cmp(spec, "spec_cast_cleric")) ? check : space;
mob_page_e_data[5].data = (!str_cmp(spec, "spec_breath_frost")) ? check : space;
mob_page_e_data[6].data = (!str_cmp(spec, "spec_janitor")) ? check : space;
mob_page_e_data[7].data = (!str_cmp(spec, "spec_cast_mage")) ? check : space;
mob_page_e_data[8].data = (!str_cmp(spec, "spec_breath_acid")) ? check : space;
mob_page_e_data[9].data = (!str_cmp(spec, "spec_thief")) ? check : space;
mob_page_e_data[10].data = (!str_cmp(spec, "spec_cast_undead")) ? check : space;
mob_page_e_data[11].data = (!str_cmp(spec, "spec_breath_gas")) ? check : space;
mob_page_e_data[12].data = (!str_cmp(spec, "spec_mayor")) ? check : space;
mob_page_e_data[13].data = (!str_cmp(spec, "spec_breath_lightning")) ? check : space;
mob_page_e_data[14].data = (!str_cmp(spec, "spec_poison")) ? check : space;
mob_page_e_data[15].data = (!str_cmp(spec, "spec_executioner")) ? check : space;
mob_page_e_data[16].data = (!str_cmp(spec, "spec_breath_any")) ? check : space;
mob_page_e_data[17].data = (idx->defposition == POS_DEAD) ? check : space;
mob_page_e_data[18].data = (idx->defposition == POS_MORTAL) ? check : space;
mob_page_e_data[19].data = (idx->defposition == POS_INCAP) ? check : space;
mob_page_e_data[20].data = (idx->defposition == POS_STUNNED) ? check : space;
mob_page_e_data[21].data = (idx->defposition == POS_SLEEPING) ? check : space;
mob_page_e_data[22].data = (idx->defposition == POS_RESTING) ? check : space;
mob_page_e_data[23].data = (idx->defposition == POS_SITTING) ? check : space;
mob_page_e_data[24].data = (idx->defposition == POS_FIGHTING) ? check : space;
mob_page_e_data[25].data = (idx->defposition == POS_STANDING) ? check : space;
mob_page_e_data[26].data = (idx->defposition == POS_MOUNTED) ? check : space;
mob_page_e_data[27].data = (char *) get_ris(idx, RIS_FIRE);
mob_page_e_data[28].data = (char *) get_ris(idx, RIS_COLD);
mob_page_e_data[29].data = (char *) get_ris(idx, RIS_ELECTRICITY);
mob_page_e_data[30].data = (char *) get_ris(idx, RIS_ENERGY);
mob_page_e_data[31].data = (char *) get_ris(idx, RIS_POISON);
mob_page_e_data[32].data = (char *) get_ris(idx, RIS_BLUNT);
mob_page_e_data[33].data = (char *) get_ris(idx, RIS_PIERCE);
mob_page_e_data[34].data = (char *) get_ris(idx, RIS_SLASH);
mob_page_e_data[35].data = (char *) get_ris(idx, RIS_ACID);
mob_page_e_data[36].data = (char *) get_ris(idx, RIS_NONMAGIC);
mob_page_e_data[37].data = (char *) get_ris(idx, RIS_DRAIN);
mob_page_e_data[38].data = (char *) get_ris(idx, RIS_SLEEP);
mob_page_e_data[39].data = (char *) get_ris(idx, RIS_CHARM);
mob_page_e_data[40].data = (char *) get_ris(idx, RIS_HOLD);
mob_page_e_data[41].data = (char *) get_ris(idx, RIS_MAGIC);
mob_page_e_data[42].data = (char *) get_ris(idx, RIS_PLUS1);
mob_page_e_data[43].data = (char *) get_ris(idx, RIS_PLUS2);
mob_page_e_data[44].data = (char *) get_ris(idx, RIS_PLUS3);
mob_page_e_data[45].data = (char *) get_ris(idx, RIS_PLUS4);
mob_page_e_data[46].data = (char *) get_ris(idx, RIS_PLUS5);
mob_page_e_data[47].data = (char *) get_ris(idx, RIS_PLUS6);
break;
case 'd':
m_data = mob_page_d_data;
mob_page_d_data[0].data = &(idx->saving_poison_death);
mob_page_d_data[1].data = &(idx->saving_wand);
mob_page_d_data[2].data = &(idx->saving_para_petri);
mob_page_d_data[3].data = &(idx->saving_breath);
mob_page_d_data[4].data = &(idx->saving_spell_staff);
mob_page_d_data[5].data = IS_SET(idx->xflags, PART_FINS) ? check : space;
mob_page_d_data[6].data = IS_SET(idx->xflags, PART_EAR) ? check : space;
mob_page_d_data[7].data = IS_SET(idx->xflags, PART_EYE) ? check : space;
mob_page_d_data[8].data = IS_SET(idx->xflags, PART_LONG_TONGUE) ? check : space;
mob_page_d_data[9].data = IS_SET(idx->xflags, PART_SCALES) ? check : space;
mob_page_d_data[10].data = IS_SET(idx->xflags, PART_TAIL) ? check : space;
mob_page_d_data[11].data = IS_SET(idx->xflags, PART_ARMS) ? check : space;
mob_page_d_data[12].data = IS_SET(idx->xflags, PART_LEGS) ? check : space;
mob_page_d_data[13].data = IS_SET(idx->xflags, PART_TENTACLES) ? check : space;
mob_page_d_data[14].data = IS_SET(idx->xflags, PART_BRAINS) ? check : space;
mob_page_d_data[15].data = IS_SET(idx->xflags, PART_GUTS) ? check : space;
mob_page_d_data[16].data = IS_SET(idx->xflags, PART_HEAD) ? check : space;
mob_page_d_data[17].data = IS_SET(idx->xflags, PART_FEET) ? check : space;
mob_page_d_data[18].data = IS_SET(idx->xflags, PART_EYESTALKS) ? check : space;
mob_page_d_data[19].data = IS_SET(idx->xflags, PART_FINGERS) ? check : space;
mob_page_d_data[20].data = IS_SET(idx->xflags, PART_WINGS) ? check : space;
mob_page_d_data[21].data = IS_SET(idx->xflags, PART_HANDS) ? check : space;
mob_page_d_data[22].data = IS_SET(idx->xflags, PART_HEART) ? check : space;
mob_page_d_data[23].data = IS_SET(idx->xflags, PART_CLAWS) ? check : space;
mob_page_d_data[24].data = IS_SET(idx->xflags, PART_HORNS) ? check : space;
mob_page_d_data[25].data = IS_SET(idx->xflags, PART_TUSKS) ? check : space;
mob_page_d_data[26].data = IS_SET(idx->xflags, PART_TAILATTACK) ? check : space;
mob_page_d_data[27].data = IS_SET(idx->xflags, PART_SHARPSCALES) ? check : space;
mob_page_d_data[28].data = &(idx->numattacks);
sprintf(buf1, "[%5.5hd]D[%5.5hd]+[%5.5hd]", idx->hitnodice,
idx->hitsizedice,
idx->hitplus);
if (mob_page_d_data[29].data != NULL)
DISPOSE(mob_page_d_data[29].data);
mob_page_d_data[29].data = str_dup(buf1);
mob_page_d_data[30].data = &(idx->hitroll);
mob_page_d_data[31].data = &(idx->damroll);
sprintf(buf2, "[%5.5hd]D[%5.5hd]+[%5.5hd]", idx->damnodice,
idx->damsizedice,
idx->damplus);
if (mob_page_d_data[32].data != NULL)
DISPOSE(mob_page_d_data[32].data);
mob_page_d_data[32].data = str_dup(buf2);
break;
case 'c':
m_data = mob_page_c_data;
mob_page_c_data[0].data = IS_SET(idx->attacks, ATCK_BITE) ? check : space;
mob_page_c_data[1].data = IS_SET(idx->attacks, ATCK_CLAWS) ? check : space;
mob_page_c_data[2].data = IS_SET(idx->attacks, ATCK_FIREBREATH) ? check : space;
mob_page_c_data[3].data = IS_SET(idx->attacks, ATCK_BASH) ? check : space;
mob_page_c_data[4].data = IS_SET(idx->attacks, ATCK_STUN) ? check : space;
mob_page_c_data[5].data = IS_SET(idx->attacks, ATCK_ACIDBREATH) ? check : space;
mob_page_c_data[6].data = IS_SET(idx->attacks, ATCK_DRAIN) ? check : space;
mob_page_c_data[7].data = IS_SET(idx->attacks, ATCK_KICK) ? check : space;
mob_page_c_data[8].data = IS_SET(idx->attacks, ATCK_FEED) ? check : space;
mob_page_c_data[9].data = IS_SET(idx->attacks, ATCK_GASBREATH) ? check : space;
mob_page_c_data[10].data = IS_SET(idx->attacks, ATCK_POISON) ? check : space;
mob_page_c_data[11].data = IS_SET(idx->attacks, ATCK_GAZE) ? check : space;
mob_page_c_data[12].data = IS_SET(idx->attacks, ATCK_HARM) ? check : space;
mob_page_c_data[13].data = IS_SET(idx->attacks, ATCK_FROSTBREATH) ? check : space;
mob_page_c_data[14].data = IS_SET(idx->attacks, ATCK_CURSE) ? check : space;
mob_page_c_data[15].data = IS_SET(idx->attacks, ATCK_BACKSTAB) ? check : space;
mob_page_c_data[16].data = IS_SET(idx->attacks, ATCK_PUNCH) ? check : space;
mob_page_c_data[17].data = IS_SET(idx->attacks, ATCK_LIGHTNBREATH) ? check : space;
mob_page_c_data[18].data = IS_SET(idx->attacks, ATCK_WEAKEN) ? check : space;
mob_page_c_data[19].data = IS_SET(idx->attacks, ATCK_TAIL) ? check : space;
mob_page_c_data[20].data = IS_SET(idx->attacks, ATCK_STING) ? check : space;
mob_page_c_data[21].data = IS_SET(idx->attacks, ATCK_CAUSESERIOUS) ? check : space;
mob_page_c_data[22].data = IS_SET(idx->attacks, ATCK_TRIP) ? check : space;
mob_page_c_data[23].data = IS_SET(idx->attacks, ATCK_FIREBALL) ? check : space;
mob_page_c_data[24].data = IS_SET(idx->attacks, ATCK_GOUGE) ? check : space;
mob_page_c_data[25].data = IS_SET(idx->attacks, ATCK_CAUSECRITICAL) ? check : space;
mob_page_c_data[26].data = IS_SET(idx->attacks, ATCK_FLAMESTRIKE) ? check : space;
mob_page_c_data[27].data = IS_SET(idx->attacks, ATCK_EARTHQUAKE) ? check : space;
mob_page_c_data[28].data = IS_SET(idx->attacks, ATCK_COLORSPRAY) ? check : space;
mob_page_c_data[29].data = IS_SET(idx->attacks, ATCK_NASTYPOISON) ? check : space;
mob_page_c_data[30].data = IS_SET(idx->attacks, ATCK_BLINDNESS) ? check : space;
mob_page_c_data[31].data = IS_SET(idx->defenses, DFND_SANCTUARY) ? check : space;
mob_page_c_data[32].data = IS_SET(idx->defenses, DFND_CURELIGHT) ? check : space;
mob_page_c_data[33].data = IS_SET(idx->defenses, DFND_DISPELEVIL) ? check : space;
mob_page_c_data[34].data = IS_SET(idx->defenses, DFND_SHIELD) ? check : space;
mob_page_c_data[35].data = IS_SET(idx->defenses, DFND_CURESERIOUS) ? check : space;
mob_page_c_data[36].data = IS_SET(idx->defenses, DFND_DISPELMAGIC) ? check : space;
mob_page_c_data[37].data = IS_SET(idx->defenses, DFND_DODGE) ? check : space;
mob_page_c_data[38].data = IS_SET(idx->defenses, DFND_FIRESHIELD) ? check : space;
mob_page_c_data[39].data = IS_SET(idx->defenses, DFND_CURECRITICAL) ? check : space;
mob_page_c_data[40].data = IS_SET(idx->defenses, DFND_TELEPORT) ? check : space;
mob_page_c_data[41].data = IS_SET(idx->defenses, DFND_PARRY) ? check : space;
mob_page_c_data[42].data = IS_SET(idx->defenses, DFND_SHOCKSHIELD) ? check : space;
mob_page_c_data[43].data = IS_SET(idx->defenses, DFND_HEAL) ? check : space;
mob_page_c_data[44].data = IS_SET(idx->defenses, DFND_BLESS) ? check : space;
mob_page_c_data[45].data = IS_SET(idx->defenses, DFND_DISARM) ? check : space;
mob_page_c_data[46].data = IS_SET(idx->defenses, DFND_STONESKIN) ? check : space;
mob_page_c_data[47].data = IS_SET(idx->defenses, DFND_MONSUM1) ? check : space;
mob_page_c_data[48].data = IS_SET(idx->defenses, DFND_MONSUM2) ? check : space;
mob_page_c_data[49].data = IS_SET(idx->defenses, DFND_MONSUM3) ? check : space;
mob_page_c_data[50].data = IS_SET(idx->defenses, DFND_MONSUM4) ? check : space;
break;
case 'b':
m_data = mob_page_b_data;
mob_page_b_data[0].data = IS_SET(idx->act, ACT_SENTINEL) ? check : space;
mob_page_b_data[1].data = IS_SET(idx->act, ACT_SCAVENGER) ? check : space;
mob_page_b_data[2].data = IS_SET(idx->act, ACT_AGGRESSIVE) ? check : space;
mob_page_b_data[3].data = IS_SET(idx->act, ACT_STAY_AREA) ? check : space;
mob_page_b_data[4].data = IS_SET(idx->act, ACT_WIMPY) ? check : space;
mob_page_b_data[5].data = IS_SET(idx->act, ACT_PET) ? check : space;
mob_page_b_data[6].data = IS_SET(idx->act, ACT_TRAIN) ? check : space;
mob_page_b_data[7].data = IS_SET(idx->act, ACT_PRACTICE) ? check : space;
mob_page_b_data[8].data = IS_SET(idx->act, ACT_IMMORTAL) ? check : space;
mob_page_b_data[9].data = IS_SET(idx->act, ACT_DEADLY) ? check : space;
mob_page_b_data[10].data = IS_SET(idx->act, ACT_POLYSELF) ? check : space;
mob_page_b_data[11].data = IS_SET(idx->act, ACT_META_AGGR) ? check : space;
mob_page_b_data[12].data = IS_SET(idx->act, ACT_GUARDIAN) ? check : space;
mob_page_b_data[13].data = IS_SET(idx->act, ACT_RUNNING) ? check : space;
mob_page_b_data[14].data = IS_SET(idx->act, ACT_NOWANDER) ? check : space;
mob_page_b_data[15].data = IS_SET(idx->act, ACT_MOUNTABLE) ? check : space;
mob_page_b_data[16].data = IS_SET(idx->act, ACT_MOUNTED) ? check : space;
mob_page_b_data[17].data = IS_SET(idx->affected_by, AFF_BLIND) ? check : space;
mob_page_b_data[18].data = IS_SET(idx->affected_by, AFF_DETECT_INVIS) ? check : space;
mob_page_b_data[19].data = IS_SET(idx->affected_by, AFF_DETECT_EVIL) ? check : space;
mob_page_b_data[20].data = IS_SET(idx->affected_by, AFF_DETECT_MAGIC) ? check : space;
mob_page_b_data[21].data = IS_SET(idx->affected_by, AFF_DETECT_HIDDEN) ? check : space;
mob_page_b_data[22].data = IS_SET(idx->affected_by, AFF_HOLD) ? check : space;
mob_page_b_data[23].data = IS_SET(idx->affected_by, AFF_SANCTUARY) ? check : space;
mob_page_b_data[24].data = IS_SET(idx->affected_by, AFF_FAERIE_FIRE) ? check : space;
mob_page_b_data[25].data = IS_SET(idx->affected_by, AFF_INFRARED) ? check : space;
mob_page_b_data[26].data = IS_SET(idx->affected_by, AFF_CURSE) ? check : space;
mob_page_b_data[27].data = IS_SET(idx->affected_by, AFF_FLAMING) ? check : space;
mob_page_b_data[28].data = IS_SET(idx->affected_by, AFF_POISON) ? check : space;
mob_page_b_data[29].data = IS_SET(idx->affected_by, AFF_PROTECT) ? check : space;
mob_page_b_data[30].data = IS_SET(idx->affected_by, AFF_PARALYSIS) ? check : space;
mob_page_b_data[31].data = IS_SET(idx->affected_by, AFF_SLEEP) ? check : space;
mob_page_b_data[32].data = IS_SET(idx->affected_by, AFF_HIDE) ? check : space;
mob_page_b_data[33].data = IS_SET(idx->affected_by, AFF_SNEAK) ? check : space;
mob_page_b_data[34].data = IS_SET(idx->affected_by, AFF_CHARM) ? check : space;
mob_page_b_data[35].data = IS_SET(idx->affected_by, AFF_PARALYSIS) ? check : space;
mob_page_b_data[36].data = IS_SET(idx->affected_by, AFF_FLYING) ? check : space;
mob_page_b_data[37].data = IS_SET(idx->affected_by, AFF_PASS_DOOR) ? check : space;
mob_page_b_data[38].data = IS_SET(idx->affected_by, AFF_TRUESIGHT) ? check : space;
mob_page_b_data[39].data = IS_SET(idx->affected_by, AFF_DETECTTRAPS) ? check : space;
mob_page_b_data[40].data = IS_SET(idx->affected_by, AFF_SCRYING) ? check : space;
mob_page_b_data[41].data = IS_SET(idx->affected_by, AFF_FIRESHIELD) ? check : space;
mob_page_b_data[42].data = IS_SET(idx->affected_by, AFF_SHOCKSHIELD) ? check : space;
mob_page_b_data[43].data = IS_SET(idx->affected_by, AFF_FLOATING) ? check : space;
mob_page_b_data[44].data = IS_SET(idx->affected_by, AFF_INVISIBLE) ? check : space;
break;
case 'f':
m_data = mob_page_f_data;
mob_page_f_data[0].data = (idx->race == get_npc_race("human")) ? check : space;
mob_page_f_data[1].data = (idx->race ==get_npc_race("neanderthal")) ? check : space;
mob_page_f_data[2].data = (idx->race ==get_npc_race("avis")) ? check : space;
mob_page_f_data[3].data = (idx->race ==get_npc_race("amphibian")) ? check : space;
mob_page_f_data[4].data = (idx->race ==get_npc_race("elf")) ? check : space;
mob_page_f_data[5].data = (idx->race ==get_npc_race("orc")) ? check : space;
mob_page_f_data[6].data = (idx->race ==get_npc_race("bugbear")) ? check : space;
mob_page_f_data[7].data = (idx->race ==get_npc_race("bovine")) ? check : space;
mob_page_f_data[8].data = (idx->race ==get_npc_race("dwarf")) ? check : space;
mob_page_f_data[9].data = (idx->race ==get_npc_race("skeleton")) ? check : space;
mob_page_f_data[10].data = (idx->race ==get_npc_race("dragon")) ? check : space;
mob_page_f_data[11].data = (idx->race ==get_npc_race("canine")) ? check : space;
mob_page_f_data[12].data = (idx->race ==get_npc_race("ant")) ? check : space;
mob_page_f_data[13].data = (idx->race ==get_npc_race("halfling")) ? check : space;
mob_page_f_data[14].data = (idx->race ==get_npc_race("thoul")) ? check : space;
mob_page_f_data[15].data = (idx->race ==get_npc_race("rustmonster")) ? check : space;
mob_page_f_data[16].data = (idx->race ==get_npc_race("crustacean")) ? check : space;
mob_page_f_data[17].data = (idx->race ==get_npc_race("bee")) ? check : space;
mob_page_f_data[18].data = (idx->race ==get_npc_race("pixie")) ? check : space;
mob_page_f_data[19].data = (idx->race ==get_npc_race("undead")) ? check : space;
mob_page_f_data[20].data = (idx->race ==get_npc_race("shadow")) ? check : space;
mob_page_f_data[21].data = (idx->race ==get_npc_race("feline")) ? check : space;
mob_page_f_data[22].data = (idx->race ==get_npc_race("beetle")) ? check : space;
mob_page_f_data[23].data = (idx->race ==get_npc_race("vampire")) ? check : space;
mob_page_f_data[24].data = (idx->race ==get_npc_race("zombie")) ? check : space;
mob_page_f_data[25].data = (idx->race == get_npc_race("shapeshifter")) ? check : space;
mob_page_f_data[26].data = (idx->race == get_npc_race("fish")) ? check : space;
mob_page_f_data[27].data = (idx->race == get_npc_race("fly")) ? check : space;
mob_page_f_data[28].data = (idx->race == get_npc_race("gargoyle")) ? check : space;
/*mob_page_f_data[29].data = (idx->race == get_npc_race("gargoyle")) ? check : space;*/
mob_page_f_data[29].data = (idx->race == get_npc_race("ape")) ? check : space;
mob_page_f_data[30].data = (idx->race == get_npc_race("shrieker")) ? check : space;
mob_page_f_data[31].data = (idx->race == get_npc_race("insect")) ? check : space;
mob_page_f_data[32].data = (idx->race == get_npc_race("locust")) ? check : space;
mob_page_f_data[33].data = (idx->race == get_npc_race("ghoul")) ? check : space;
mob_page_f_data[34].data = (idx->race == get_npc_race("baboon")) ? check : space;
mob_page_f_data[35].data = (idx->race == get_npc_race("stirge")) ? check : space;
mob_page_f_data[36].data = (idx->race == get_npc_race("mammal")) ? check : space;
mob_page_f_data[37].data = (idx->race == get_npc_race("snake")) ? check : space;
mob_page_f_data[38].data = (idx->race == get_npc_race("gnoll")) ? check : space;
mob_page_f_data[39].data = (idx->race == get_npc_race("bat")) ? check : space;
mob_page_f_data[40].data = (idx->race == get_npc_race("wight")) ? check : space;
mob_page_f_data[41].data = (idx->race == get_npc_race("porcine")) ? check : space;
mob_page_f_data[42].data = (idx->race == get_npc_race("spider")) ? check : space;
mob_page_f_data[43].data = (idx->race == get_npc_race("gnome")) ? check : space;
mob_page_f_data[44].data = (idx->race == get_npc_race("bear")) ? check : space;
mob_page_f_data[45].data = (idx->race == get_npc_race("reptile")) ? check : space;
mob_page_f_data[46].data = (idx->race == get_npc_race("worm")) ? check : space;
mob_page_f_data[47].data = (idx->race == get_npc_race("goblin")) ? check : space;
mob_page_f_data[48].data = (idx->race == get_npc_race("boar")) ? check : space;
mob_page_f_data[49].data = (idx->race == get_npc_race("rodent")) ? check : space;
mob_page_f_data[50].data = (idx->race == get_npc_race("golem")) ? check : space;
mob_page_f_data[51].data = (idx->race == get_npc_race("cat")) ? check : space;
mob_page_f_data[52].data = (idx->race == get_npc_race("troglodyte")) ? check : space;
mob_page_f_data[53].data = (idx->race == get_npc_race("gelatin")) ? check : space;
mob_page_f_data[54].data = (idx->race == get_npc_race("gorgon")) ? check : space;
mob_page_f_data[55].data = (idx->race == get_npc_race("dog")) ? check : space;
mob_page_f_data[56].data = (idx->race == get_npc_race("spirit")) ? check : space;
mob_page_f_data[57].data = (idx->race == get_npc_race("mold")) ? check : space;
mob_page_f_data[58].data = (idx->race == get_npc_race("harpy")) ? check : space;
mob_page_f_data[59].data = (idx->race == get_npc_race("ferret")) ? check : space;
mob_page_f_data[60].data = (idx->race == get_npc_race("magical")) ? check : space;
mob_page_f_data[61].data = (idx->race == get_npc_race("ooze")) ? check : space;
mob_page_f_data[62].data = (idx->race == get_npc_race("hobgoblin")) ? check : space;
mob_page_f_data[63].data = (idx->race == get_npc_race("horse")) ? check : space;
mob_page_f_data[64].data = (idx->race == get_npc_race("slime")) ? check : space;
mob_page_f_data[65].data = (idx->race == get_npc_race("kobold")) ? check : space;
mob_page_f_data[66].data = (idx->race == get_npc_race("mule")) ? check : space;
mob_page_f_data[67].data = (idx->race == get_npc_race("lizardman")) ? check : space;
mob_page_f_data[68].data = (idx->race == get_npc_race("rat")) ? check : space;
mob_page_f_data[69].data = (idx->race == get_npc_race("lycanthrope")) ? check : space;
mob_page_f_data[79].data = (idx->race == get_npc_race("shrew")) ? check : space;
mob_page_f_data[71].data = (idx->race == get_npc_race("minotaur")) ? check : space;
mob_page_f_data[72].data = (idx->race == get_npc_race("wolf")) ? check : space;
break;
case 'a':
default:
m_data = mob_page_a_data;
/*
* mob_page_a_data[0].data =
* format_string(idx->player_name,70);
* mob_page_a_data[1].data =
* format_string(idx->short_descr,60);
* mob_page_a_data[2].data =
* format_string(idx->long_descr,60); mob_page_a_data[3].data
* = format_string(idx->description,60);
*/
format_string(tmp0, idx->player_name, 59);
format_string(tmp1, idx->short_descr, 59);
format_string(tmp2, idx->long_descr, 69);
format_string(tmp3, idx->description, 69);
mob_page_a_data[0].data = tmp0;
mob_page_a_data[1].data = tmp1;
mob_page_a_data[2].data = tmp2;
mob_page_a_data[3].data = tmp3;
mob_page_a_data[4].data = &(idx->vnum);
mob_page_a_data[5].data = &(idx->level);
mob_page_a_data[6].data = (char *) "see sect. 4";
mob_page_a_data[7].data = npc_race[idx->race];
mob_page_a_data[8].data = (char *) npc_sex[idx->sex];
mob_page_a_data[9].data = (int *) &(idx->gold);
mob_page_a_data[10].data = &(idx->alignment);
mob_page_a_data[11].data = &(idx->perm_str);
mob_page_a_data[12].data = &(idx->perm_int);
mob_page_a_data[13].data = &(idx->perm_wis);
mob_page_a_data[14].data = &(idx->perm_dex);
mob_page_a_data[15].data = &(idx->perm_con);
mob_page_a_data[16].data = &(idx->perm_cha);
mob_page_a_data[17].data = &(idx->ac);
mob_page_a_data[18].data = (idx->class == 0) ? check : space;
mob_page_a_data[19].data = (idx->class == 1) ? check : space;
mob_page_a_data[20].data = (idx->class == 2) ? check : space;
mob_page_a_data[21].data = (idx->class == 3) ? check : space;
mob_page_a_data[22].data = (idx->class == 4) ? check : space;
mob_page_a_data[23].data = (idx->class == 5) ? check : space;
mob_page_a_data[24].data = (idx->class == 6) ? check : space;
mob_page_a_data[25].data = (idx->class == 20) ? check : space;
mob_page_a_data[26].data = (idx->class == 21) ? check : space;
mob_page_a_data[27].data = (idx->class == 22) ? check : space;
mob_page_a_data[28].data = (idx->class == 23) ? check : space;
mob_page_a_data[29].data = (idx->class == 24) ? check : space;
mob_page_a_data[30].data = (idx->class == 25) ? check : space;
break;
}
for (i = 0; m_data[i].ptrType != (int) NULL; i++) {
sprintf(buf, "\E[%d;%dH", m_data[i].x, m_data[i].y);
write_to_buffer(ch->desc, buf, strlen(buf));
switch(m_data[i].ptrType)
{
case INT: sprintf(buf, m_data[i].outFormat,*((int *)(m_data[i].data)));
break;
case SH_INT: sprintf(buf, m_data[i].outFormat,*((sh_int *)(m_data[i].data)));
break;
default : sprintf(buf, m_data[i].outFormat, m_data[i].data);
}
#ifdef WRONG_WAY
if (m_data[i].ptrType == INT) {
sprintf(buf, m_data[i].outFormat, *((int *) (m_data[i].data)));
}
if (m_data[i].ptrType == SH_INT) {
sprintf(buf, m_data[i].outFormat, *((sh_int *) (m_data[i].data)));
} else {
sprintf(buf, m_data[i].outFormat, m_data[i].data);
}
#endif
write_to_buffer(ch->desc, buf, strlen(buf));
}
offset = get_offset(ch);
/* restrict scrolling area of screen */
sprintf(buf, "\E[%d;%dr", offset, ch->pagelen);
write_to_buffer(ch->desc, buf, strlen(buf));
/* goes to pglen,1 */
sprintf(buf, "\E[%d;1H", (ch->pagelen));
write_to_buffer(ch->desc, buf, strlen(buf));
send_to_char("\n\r", ch);
}
int
get_bvl(int bitvector)
{
int x;
for (x = 0; x < 31; x++)
if (1 << x == bitvector)
return x;
return 0;
}
int
get_affect(OBJ_INDEX_DATA * obj, int type)
{
AFFECT_DATA *aff;
bool bitsearch, ris_search;
int apply, bit, total;
bitsearch = TRUE;
total = 0;
ris_search = FALSE;
if (type < 1000) {
apply = type;
bitsearch = FALSE;
} else if (IS_SET(type, GA_AFFECTED)) {
REMOVE_BIT(type, GA_AFFECTED);
bit = 1 << type;
apply = APPLY_AFFECT;
} else if (IS_SET(type, GA_RIS)) {
REMOVE_BIT(type, GA_RIS);
bit = 1 << type;
apply = -1;
}
for (aff = obj->first_affect; aff; aff = aff->next) {
if (aff->location == apply
|| (bitsearch
&& aff->location >= APPLY_AFFECT
&& aff->location <= APPLY_SUSCEPTIBLE)) {
if (bitsearch) {
if (IS_SET(aff->modifier, bit))
switch (aff->location) {
case APPLY_AFFECT:
total = 1;
break;
case APPLY_RESISTANT:
SET_BIT(total, RIS_R00);
break;
case APPLY_IMMUNE:
SET_BIT(total, RIS_0I0);
break;
case APPLY_SUSCEPTIBLE:
SET_BIT(total, RIS_00S);
break;
}
} else
total += aff->modifier;
}
}
return total;
}
/*
* Constants follow.
*/
const char *npc_sex[3] = {
"Neuter", "Male", "Female"
};
const char *ris_strings[] = {
"...", /* 0 */
"R..", /* 1 */
".I.", /* 2 */
"RI.", /* 3 */
"..S", /* 4 */
"R.S", /* 5 */
".IS", /* 6 */
"RIS"
}; /* 7 */
const char mob_page_a[] = ".----------[mob page a]-----[%10.10s]-------------------------------------.
|[1]TEXT| a]Name : |
|-------' b]Short: |
|c]Long: |
|d]Desc: |
:---------------------+------------------------------------------------------'
|[2]ATTRIBUTES | |[3]STATS | |[4]CLASS | |
|--------------' |---------' |---------' |
| a]Vnum : | a]Str: | a]Mage ( ) b]Cleric ( ) |
| b]Level: | b]Int: | c]Thief ( ) d]Warrior ( ) |
| c]Class: | c]Wis: | e]Vampire( ) f]Druid ( ) |
| d]Race : | d]Dex: | g]Ranger ( ) h]Baker ( ) |
| e]Sex : | e]Con: | i]Butcher( ) j]Blacksmith( ) |
| f]Gold : | f]Cha: | k]Mayor ( ) l]King ( ) |
| g]Align: | g]AC : | m]Queen ( ) |
:---------------------+-------------+----------------------------------'
";
const char mob_page_b[] = ".----------[mob page b]-----[%10.10s]--------------------------.
|[1]ACT FLAGS| a]Sentinel ( ) b]Scavenger ( ) c]Aggressiv( ) |
|------------' d]StayArea ( ) e]Wimpy ( ) f]Pet ( ) |
|g]Train ( ) h]Practice ( ) i]Immortal ( ) j]Deadly ( ) |
|k]PolySlf( ) l]MetaAggres( ) m]Guardian ( ) n]Running ( ) |
|o]NoWandr( ) p]Mountable ( ) q]Mounted ( ) |
:-----------------------------------------------------------------:
|[2]AFF FLAGS| a]Blind ( ) b]DetInvis ( ) c]DetEvil ( ) |
|------------' d]DetMag ( ) e]DetHiddn ( ) f]Hold ( ) |
|g]Sanct ( ) h]Faerie ( ) i]InfraRed ( ) j]Cursed ( ) |
|k]Flaming( ) l]Poison ( ) m]Protect ( ) n]Paralysis( ) |
|o]Sleep ( ) p]Hide ( ) q]Sneak ( ) r]Charm ( ) |
|s]Flying ( ) t]PassDoor ( ) u]TrueSight ( ) v]DetTraps ( ) |
|w]Scrying( ) x]FireShield( ) y]ShockShield( ) z]Floating ( ) |
|A]Invisib( ) |
`-----------------------------------------------------------------'
" ;
const char mob_page_c[] = ".----------.----------[mob page c]-----[%10.10s]-------------------.
|[1]ATTACKS| a]bite ( ) b]claws( ) c]firebreath ( ) |
|----------' d]bash ( ) e]stun ( ) f]acidBreath ( ) |
|g]drain ( ) h]kick ( ) i]feed ( ) j]gasBreath ( ) |
|k]poison( ) l]gaze ( ) m]harm ( ) n]frostBreath ( ) |
|o]curse ( ) p]backstab( ) q]punch( ) r]lightBreath ( ) |
|s]weaken( ) t]tail ( ) u]sting( ) v]causeSerious( ) |
|w]trip ( ) x]fireBall( ) y]gouge( ) z]causeCritica( ) |
| B]flameStrike( ) D]earthQuake ( ) |
| F]colorSpray ( ) G]nastyPoison( ) H]blindness ( ) |
:-----------.---------------------------------------------------------+-.
|[2]DEFENSES| a]sanctuary ( ) b]cureLight ( ) c]dispelEvil ( ) |
|-----------' d]shield ( ) e]cureSerious ( ) f]dispelMagic( ) |
|g]dodge ( ) h]fireShield ( ) i]cureCritical( ) j]teleport ( ) |
|k]parry ( ) l]shockShield( ) m]heal ( ) n]bless ( ) |
|o]disarm( ) p]stoneSkin ( ) q]mobSummon1 ( ) r]mobSummon2 ( ) |
| u]mobSummon3 ( ) v]mobSummon4 ( ) |
:-----------------------------------------------------------------------'
";
const char mob_page_d[] = ".----------------.----------[mob page d]-----[%10.10s]----------.
|[1]SAVING THROWS| a]Poison/Death %% c]Paralysis/Petrify %% |
|----------------' c]Wand %% d]Breath %% |
| e]Spell/Staff %% |
:------------------------------------------------------------------^-----.
|[2]BODY | a]Fins( ) b]Ear ( ) c]Eye ( ) d]LongTongue( ) e]Scales ( )|
| PARTS | f]Tail( ) g]Arms( ) h]Legs( ) i]Tentacles ( ) j]Brains ( )|
|---------' k]Guts( ) l]Head( ) m]Feet( ) n]EyeStalks ( ) o]Fingers( )|
| p]Wings( ) q]Hands( ) r]Heart( ) |
|ATTACKING: u]Claws( ) v]Horns( ) w]Tusks( ) |
| z]TailAttack( ) A]SharpScales( ) |
:---------.--------------------------------------------------------------:
|[3]FIGHT | a]Attacks: [ ] b]HitDice:[ ]D[ ]+[ ] |
| STATS | c]HitRoll:[ ] |
|---------' d]DamRoll:[ ] e]DamDice:[ ]D[ ]+[ ] |
`------------------------------------------------------------------------'
";
const char mob_page_e[] = ".---------.----------[mob page e]-----[%10.10s]----------------------.
|[1]SPEC'L| a]fido ( ) b]castAdept ( ) c]breathFire ( ) |
| FUNCTS| d]guard ( ) e]castCleric( ) f]breathFrost ( ) |
|---------' g]janitor( ) h]castMage ( ) i]breathAcid ( ) |
| j]thief ( ) k]castUndead( ) l]breathGas ( ) |
| m]mayor ( ) o]breathLightning( ) |
| p]poison ( ) q]executionr( ) r]breathAny ( ) |
:-----------.-------------------------------------------------------.---+
|[2]DEFAULT | a]Dead ( ) b]Mortally( ) c]Incapacitated( ) |
| POSITION| d]Stunned( ) e]Sleeping( ) f]Resting ( ) |
|-----------' g]Sitting( ) h]Fighting( ) i]Standing ( ) |
| k]Mounted( ) |
:--------.----------------------------------------------------------^----.
|[3]RIS | a]fire ... b]cold ... c]elect ... d]energ ... e]poison ...|
|PROFILE | f]blunt ... g]pierce... h]slash ... i]acid ... j]nonMag ...|
|--------' k]drain ... l]sleep ... m]charm ... n]hold ... o]magic ...|
|p]plus1 ... q]plus2 ... r]plus3 ... s]plus4 ... t]plus5 ... u]plus6 ...|
:------------------------------------------------------------------------'
";
const char room_page_a[] = ".---------.--[rmenu page a]-------[%10.10s]-----------------------------.
||[1]TEXT| |
|--------' |
|a]Name: |
| |
|b]Description: |
| |
| |
:---------------------+-----------------------------------------------------'
";
const char room_page_b[] = ".---------.--[rmenu page b]-------[%10.10s]----------------.
|[1]ROOM | a]Dark ( ) b]Death ( ) c]NoMobs ( ) |
| FLAGS | d]Indoors ( ) e]Lawful ( ) f]NoMagic ( ) |
|---------' g]PetShop ( ) h]Neutral ( ) i]NoDrop ( ) |
| j]Safe ( ) k]Chaotic ( ) l]NoDropAll( ) |
| m]Teleport ( ) n]Donation ( ) o]NoRecall ( ) |
| p]Private ( ) q]Solitary ( ) r]NoAstral ( ) |
| s]Tunnel ( ) t]Silence ( ) u]NoSummon ( ) |
| v]ClanStorge( ) w]LogSpeech( ) x]NoFloor ( ) |
:-------------------------------------------------------------+--------.
|[2]SECTOR | a]Inside ( ) b]Forest ( ) c]City( ) d]Hills ( ) |
| TYPE | e]Mountain( ) f]Water_Swim ( ) g]Air ( ) h]Desert( ) |
|----------' i]Dunno ( ) j]Water_NoSwim( ) l]Field ( ) |
`----------------------------------------------------------------------'
";
const char room_page_c[] = ".----------.-[rmenu page c]-------[%10.10s]--------------------------.
|[1] EXIT | Section [2] now : n]orth( ) u]p( ) |
|DIRECTION | shows info about : w]est( ) e]ast( ) |
| SUBMENU | the exit to : s]outh( ) d]own( ) |
:-----------------------------------------------------------------------:
|[2] EXIT | a]IsDoor ( ) b]Secret ( ) KeyWords: |
|PROPERTIES| c]Closed ( ) d]PickProof( ) m:[#######################] |
|----------' e]Locked ( ) f]PassProof( ) n:[#######################] |
| o:[#######################] |
|i]To Room: [ ] [ ] p:[#######################] |
|j] Key: [ ] [ ] q:[#######################] |
|k]:ExitDescr: |
| |
`-----------------------------------------------------------------------'
";
const char room_page_d[] = ".---------.--[rmenu page d]-------[%10.10s]---------------------------.
|[1] STD | a]Hut ( ) b]Tent ( ) c]Hovel ( ) d]Campsite( ) |
| ROOMS | e]Shack ( ) f]Cabin ( ) g]Homested( ) h]Keep ( ) |
|---------' i]Fortress ( ) j]Castle ( ) k]GuardHse( ) l]Temple ( ) |
|m]Store ( ) n]Graveyard( ) o]Monastry( ) p]Stable ( ) q]Tavern ( ) |
|r]Basemnt( ) s]Bedroom ( ) t]BnquetRm( ) u]Corridor( ) v]Attic ( ) |
|w]Vault ( ) x]SittingRm( ) y]Study ( ) z]Passage ( ) A]Tower ( ) |
|B]Crypt ( ) C]WorkRoom ( ) D]Lab ( ) E]Hallway ( ) F]Turret ( ) |
|G]StorRm ( ) H]Kitchen ( ) I]Larder ( ) J]Stairway( ) K]Rooftop ( ) |
|L]Closet ( ) M]Office ( ) N]Treasury( ) O]Landing ( ) P]Balcony ( ) |
|Q]Foyer ( ) R]DrawingRm( ) S]Den ( ) T]Ladder ( ) U]Catwalk ( ) |
|V]Entrnce( ) W]Arboretum( ) X]Library ( ) Y]Vent ( ) Z]Shaft ( ) |
|0]Gate ( ) 1]AudiencRm( ) 2]Consrvty( ) 3]DumbWatr( ) 4]Chimney ( ) |
|5]Porch ( ) 6]ClassRoom( ) 7]CloakRm ( ) 8]Lawn ( ) 9]Garden ( ) |
|!]Lake ( ) @]Forest ( ) #]Swamp ( ) $]Well ( ) %%]Street ( ) |
|^]River ( ) &]Canyon ( ) *]Beach ( ) (]Mine ( ) )]Road ( ) |
|-]Stream ( ) _]Clearing( ) +]SnakePit( ) =]Tunnel ( ) |]Path ( ) |
|\\]Rapids ( ) ~]Desert ( ) `]SandStrm( ) {]Rope ( ) []Cliff ( ) |
|}]CaveRiv( ) ]]Jungle ( ) :]Sandbar ( ) \"]RopeBrdg( ) ']Bridge ( ) |
|<]CaveLak( ) ,]Cave ( ) >]None ( ) .]RopeLadr( ) ?]NatlBrdg( ) |
`-------------------------------------------------------------------------'
";
const char mob_page_f[] = ".---------.--[mmenu page f]-------[%10.10s]---------------------------.
|[1] STD | a]Human ( ) b]Neandrtl( ) c]Avis ( ) d]Amphib ( ) |
| ROOMS | e]Elf ( ) f]Orc ( ) g]Bugbear ( ) h]Bovine ( ) |
|---------' i]Dwarf ( ) j]Skeleton( ) k]Dragon ( ) l]Canine ( ) |
|m]Ant ( ) n]Halfling ( ) o]Thoul ( ) p]RustMnst( ) q]Crustacn( ) |
|r]Bee ( ) s]Pixie ( ) t]Undead ( ) u]Shadow ( ) v]Feline ( ) |
|w]Beetle ( ) x]Vampire ( ) y]Zombie ( ) z]ShapShft( ) A]Fish ( ) |
|B]Fly ( ) C]Gargoyle ( ) D]Ape ( ) E]Shrieker( ) F]Insect ( ) |
|G]Locust ( ) H]Ghoul ( ) I]Baboon ( ) J]Stirge ( ) K]Mammal ( ) |
|L]Snake ( ) M]Gnoll ( ) N]Bat ( ) O]Wight ( ) P]Porcine ( ) |
|Q]Spider ( ) R]Gnome ( ) S]Bear ( ) U]Reptile ( ) |
|V]Worm ( ) W]Goblin ( ) X]Boar ( ) Z]Rodent ( ) |
| 1]Golem ( ) 2]Cat ( ) 4]Trogldte( ) |
|5]Gelatin( ) 6]Gorgon ( ) 7]Dog ( ) 9]Spirit ( ) |
|!]Mold ( ) @]Harpy ( ) #]Ferret ( ) %%]Magical ( ) |
|^]Ooze ( ) &]Hobgoblin( ) *]Horse ( ) |
|-]Slime ( ) _]Kobold ( ) +]Mule ( ) |
| ~]Lizardman( ) `]Rat ( ) |
| ]]Lycanthrp( ) :]Shrew ( ) |
| ,]Minotaur ( ) >]Wolf ( ) |
`-------------------------------------------------------------------------'
";
const char obj_page_a[] = ".-------.----[omenu page a]-------[%10.10s]----------------------------.
|[1]TEXT| a]Name : |
|-------' b]Short: |
|c]Long: |
|d]ActionDesc: |
:---------------------------------------------+---------------------------'
|[2]VALUES| Value Meaning |[3]STATS | |
|---------' --------------- |---------' |
| a]Value0:[ ] ( ) | a]Weight:[ ] |
| b]Value1:[ ] ( ) | b]Cost: [ ] |
| c]Value2:[ ] ( ) | |
| d]Value3:[ ] ( ) | |
`---------------------------------------------+-----------------------'
";
const char obj_page_b[] = ".---------.--[omenu page b]-------[%10.10s]----------------------.
|[1]OBJECT| a]none ( ) b]fountain ( ) c]furniture ( ) |
| TYPES | d]armor ( ) e]food ( ) f]money ( ) |
|---------' g]potion ( ) h]pullchain ( ) i]weapon ( ) |
|j]map ( ) k]light ( ) l]button ( ) m]treasure ( ) |
|n]herb( ) o]trash ( ) p]switch ( ) q]container ( ) |
|r]wand( ) s]scroll ( ) t]staff ( ) u]bloodstain ( ) |
|v]pill( ) w]blood ( ) x]dial ( ) y]_oldtrap ( ) |
|z]key ( ) A]incense( ) B]lever ( ) C]corpse_pc ( ) |
|D]pipe( ) E]scraps ( ) F]trap ( ) G]corpse ( ) |
|H]book( ) I]match ( ) J]drinkcon ( ) K]portal ( ) |
|L]_pen( ) M]fire ( ) N]herbcon ( ) O]_fireweapon ( ) |
|P]boat( ) Q]rune ( ) R]runepouch ( ) S]_missile ( ) |
`-------------------------------------------------------------------'
";
const char obj_page_c[] = ".----------.-[omenu page c]-------[%10.10s]--------------------------.
|[1] BASIC | a]none:( ) b]save_poi :[ ]%% c]age :[ ] |
| AFFECTS | d]STR :[ ] e]save_rod :[ ]%% f]class :[ ] |
|----------' g]INT :[ ] h]save_para :[ ]%% i]level :[ ] |
| j]WIS :[ ] k]save_breath:[ ]%% l]sex :[ ] |
| m]DEX :[ ] n]save_spell :[ ]%% o]height:[ ] |
| p]CON :[ ] r]weight:[ ] |
| s]CHA :[ ] |
| v]Mana:[ ] w]AC :[ ] |
| y]HP :[ ] z]HitRoll:[ ] A]Gold:[ ] |
| B]Move:[ ] C]DamRoll:[ ] D]Exp :[ ] |
:--------.---------------------------------------------------------------.
|[2] RIS | a]fire ... b]cold ... c]elect ... d]energ ... e]poison ...|
|AFFECTS | f]blunt ... g]pierce... h]slash ... i]acid ... j]nonMag ...|
|--------' k]drain ... l]sleep ... m]charm ... n]hold ... o]magic ...|
|p]plus1 ... q]plus2 ... r]plus3 ... s]plus4 ... t]plus5 ... u]plus6 ...|
`------------------------------------------------------------------------'
";
const char obj_page_d[] = ".-----------.[omenu page d]-------[%10.10s]--------------------.
:[1]ADVANCED| |
| AFFECTS| a]Blind ( ) b]DetInvis ( ) c]DetEvil ( ) |
|-----------' d]DetMag ( ) e]DetHiddn ( ) f]Hold ( ) |
|g]Sanct ( ) h]Faerie ( ) i]InfraRed ( ) j]Cursed ( ) |
|k]Flaming( ) l]Poison ( ) m]Protection ( ) n]Paralysis( ) |
|o]Sleep ( ) p]Hide ( ) q]Sneak ( ) r]Charm ( ) |
|s]Flying ( ) t]PassDoor ( ) u]TrueSight ( ) v]DetTraps ( ) |
|w]Scrying( ) x]FireShield( ) y]ShockShield( ) z]Floating ( ) |
|A]Invisib( ) |
`-----------------------------------------------------------------'
";
const char obj_page_e[] = ".----------.-[omenu page e]-------[%10.10s]--------------------.
|[1] OBJECT| a]Evil ( ) b]AntiGood ( ) c]NoDrop ( ) |
| FLAGS | d]Invis ( ) e]AntiEvil ( ) f]NoRemove ( ) |
|----------' g]Hidden ( ) h]AntiNeut ( ) i]Inventory ( ) |
|j]Glow ( ) k]Bless ( ) l]AntiMage ( ) m]Donation ( ) |
|n]Hum ( ) o]Metal ( ) p]AntiThief ( ) q]ClanObject( ) |
|r]Dark ( ) s]Organic( ) t]AntiWarrior( ) u]ClanCorpse( ) |
|v]Magic ( ) x]AntiCleric ( ) y]Prototype ( ) |
|z]Loyal ( ) B]AntiVampire( ) C]Deathrot ( ) |
| F]AntiDruid ( ) |
:-----------------------------------------------------------------.
|[2] WEAR | a]Take ( ) b]Finger ( ) c]Neck ( ) d]Body ( ) |
| FLAGS | e]Head ( ) f]Legs ( ) g]Feet ( ) h]Hands( ) |
|----------' i]Arms ( ) j]Shield ( ) k]About ( ) l]Waist( ) |
|m]Wrist ( ) n]Wield( ) o]Hold ( ) p]_dual_( ) q]Ears ( ) |
|r]Eyes ( ) |
`-----------------------------------------------------------------'
";
const char mob_help_page[] = "
.------------[mmenu help pg]------[%10.10s]--------------------.
| Page contents | |
| | MISC COMMANDS. |
| PAGE CONTENTS | -------------- |
|------|-----------------------------------| clear: clear screen |
| a | strings, attrs, stats, class | redraw: redraw menu |
| b | act & affected | refresh:redraw data |
| c | attacks & defenses | pagelen:set page |
| d | saves, bodyparts, and fight stats | length |
| e | specials, position, and RIS | |
| f | race | |
`-----------------------------------------------------------------'
";
const char room_help_page[] = "
.------------[rmenu help pg]------[%10.10s]--------------------.
| Page contents | |
| | MISC COMMANDS. |
| PAGE CONTENTS | -------------- |
|------|-----------------------------------| clear: clear screen |
| a | name & description | redraw: redraw menu |
| b | room flags & sector type | refresh:redraw data |
| c | exit stuff | pagelen:set page |
| (d) | (map codes) | length |
| | | |
| | | |
`-----------------------------------------------------------------'
";
const char obj_help_page[] = "
.------------[omenu help pg]------[%10.10s]--------------------.
| Page contents | |
| | MISC COMMANDS. |
| PAGE CONTENTS | -------------- |
|------|-----------------------------------| clear: clear screen |
| a | strings, values, weight/cost | redraw: redraw menu |
| b | object type | refresh:redraw data |
| c | affects & affect RIS | pagelen:set page |
| d | affect affecteds | length |
| e | oflags & wear flags | |
| | | |
`-----------------------------------------------------------------'
";
const char control_page_a[] = ".--------.---[cmenu page a]-----.[%10.10s]-------------------------------.
||[1]MAIL| ||[2]CHANNELS| |
|--------' |------------' |
|a]Read free: |a]Muse: |
|b]Write free: |b]Think: |
|c]Read all: |c]Log: |
|d]Take all: |d]Build: |
`---------------------------------------------------------------------------'
";
const char control_help_page[] = "
.------------[cmenu help pg]------[%10.10s]--------------------.
| Page contents | |
| | MISC COMMANDS. |
| PAGE CONTENTS | -------------- |
|------|-----------------------------------| clear: clear screen |
| a | main control panel | redraw: redraw menu |
| | | refresh:redraw data |
| | | pagelen:set page |
| | | length |
| | | |
| | | |
`-----------------------------------------------------------------'
";
const char * item_lookup [46] [5] =
{ {"bad type", "bad type", "bad type", "bad type", "bad type"}, /* 0 */
{"light", "unused", "unused", "unused", "unused"}, /* 1 */
{"scroll", "level", "sn1", "sn2", "sn3"}, /* 2 */
{"wand", "level", "max charges", "current charges", "sn"}, /* 3 */
{"staff", "level", "max charges", "current charges", "sn"}, /* 4 */
{"weapon", "unused", "unused", "unused", "hit string"}, /* 5 */
{"undefined", "unused", "unused", "unused", "undefined"}, /* 6 */
{"undefined", "unused", "unused", "unused", "undefined"}, /* 7 */
{"treasure", "type", "condition", "unused", "unused"}, /* 8*/
{"armor", "condition", "original ac", "unused", "unused"}, /* 9*/
{"potion", "level", "sn1", "sn2", "sn3"}, /* 10*/
{"undefined", "unused", "unused", "unused", "undefined"}, /* 11*/
{"furniture", "unused", "unused", "unused", "unused"}, /* 12*/
{"trash", "unused", "unused", "unused", "unused"}, /* 13*/
{"undefined", "unused", "unused", "unused", "undefined"}, /* 14*/
{"container", "max weight", "flags", "key vnum", "condition"}, /* 15*/
{"undefined", "unused", "unused", "unused", "undefined"}, /* 16*/
{"drink con", "capacity", "how full", "liquid number", "is poisoned?"},/* 17*/
{"key", "unused", "unused", "unused", "unused"}, /* 18*/
{"food", "food_hours", "condition", "unused", "is poisoned?"},/* 19*/
{"money", "amt gold", "unused", "unused", "unused"}, /* 20*/
{"undefined", "unused", "unused", "unused", "undefined"}, /* 21*/
{"boat", "unused", "unused", "unused", "unused"}, /* 22*/
{"npc corpse","unused", "unused", "unused", "unused"}, /* 23*/
{"pc corpse", "unused", "unused", "unused", "unused"}, /* 24*/
{"fountain", "unused", "unused", "unused", "unused"}, /* 25*/
{"pill", "level", "sn1", "sn2", "sn3"}, /* 26*/
{"blood", "?", "?", "?", "?"}, /* 26*/
{"bloodstain","?", "?", "?", "?"}, /* 26*/
{"scraps", "?", "?", "?", "?"}, /* 26*/
{"pipe", "?", "?", "?", "?"}, /* 30*/
{"herb con", "?", "?", "?", "?"}, /* 31*/
{"herb", "?", "?", "?", "?"}, /* 32*/
{"incense", "?", "?", "?", "?"}, /* 33*/
{"fire", "?", "?", "?", "?"}, /* 34*/
{"book", "?", "?", "?", "?"}, /* 35*/
{"switch", "?", "?", "?", "?"}, /* 36*/
{"lever", "?", "?", "?", "?"}, /* 37*/
{"pullchain", "?", "?", "?", "?"}, /* 38*/
{"button", "?", "?", "?", "?"}, /* 39*/
{"dial", "?", "?", "?", "?"}, /* 40*/
{"rune", "?", "?", "?", "?"}, /* 41*/
{"runepouch", "?", "?", "?", "?"}, /* 42*/
{"match", "?", "?", "?", "?"}, /* 43*/
{"trap", "charges", "type", "level", "flags"},/*44*/
{"map", "?", "?", "?", "?"} /* 45*/
};
char * get_item_strings( int item_number, int which_string )
{
if( (which_string<0) || (which_string>4))
return("get_item_strings bug");
if( (which_string<0) || (which_string>45))
return("get_item_strings bug");
return ( char *) item_lookup[item_number][which_string];
}