/****************************************************************************
* [S]imulated [M]edieval [A]dventure multi[U]ser [G]ame | \\._.// *
* -----------------------------------------------------------| (0...0) *
* SMAUG 1.4 (C) 1994, 1995, 1996, 1998 by Derek Snider | ).:.( *
* -----------------------------------------------------------| {o o} *
* SMAUG code team: Thoric, Altrag, Blodkai, Narn, Haus, | / ' ' \ *
* Scryn, Rennard, Swordbearer, Gorog, Grishnakh, Nivek, |~'~.VxvxV.~'~*
* Tricops and Fireblade | *
* ------------------------------------------------------------------------ *
* 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", "r", 7, 60, "%1.1s", NULL, STRING, 1, "redit flags astralshield"},
{
"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 speed %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 = 48;
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\x1B[;H\x1B[2J", strlen( "50\x1B[;H\x1B[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\x1B[;H\x1B[2J", strlen( "50\x1B[;H\x1B[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, "\x1B[%d;%dr", 1, ch->pagelen );
write_to_buffer( ch->desc, buf, strlen( buf ) );
write_to_buffer( ch->desc, "50\x1B[;H\x1B[2J", strlen( "50\x1B[;H\x1B[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\x1B[;H\x1B[2J", strlen( "50\x1B[;H\x1B[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\x1B[;H\x1B[2J", strlen( "50\x1B[;H\x1B[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, "\x1B[%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, "\x1B[%d;%dr", offset, ch->pagelen );
write_to_buffer( ch->desc, buf, strlen( buf ) );
/*
* goes to pglen,1
*/
sprintf( buf, "\x1B[%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 = xIS_SET( idx->room_flags, ROOM_DARK ) ? check : space;
room_page_b_data[1].data = xIS_SET( idx->room_flags, ROOM_DEATH ) ? check : space;
room_page_b_data[2].data = xIS_SET( idx->room_flags, ROOM_NO_MOB ) ? check : space;
room_page_b_data[3].data = xIS_SET( idx->room_flags, ROOM_INDOORS ) ? check : space;
room_page_b_data[4].data = xIS_SET( idx->room_flags, ROOM_LAWFUL ) ? check : space;
room_page_b_data[5].data = xIS_SET( idx->room_flags, ROOM_NO_MAGIC ) ? check : space;
room_page_b_data[6].data = xIS_SET( idx->room_flags, ROOM_PET_SHOP ) ? check : space;
room_page_b_data[7].data = xIS_SET( idx->room_flags, ROOM_NEUTRAL ) ? check : space;
room_page_b_data[8].data = xIS_SET( idx->room_flags, ROOM_NODROP ) ? check : space;
room_page_b_data[9].data = xIS_SET( idx->room_flags, ROOM_SAFE ) ? check : space;
room_page_b_data[10].data = xIS_SET( idx->room_flags, ROOM_CHAOTIC ) ? check : space;
room_page_b_data[11].data = xIS_SET( idx->room_flags, ROOM_NODROPALL ) ? check : space;
room_page_b_data[12].data = xIS_SET( idx->room_flags, ROOM_TELEPORT ) ? check : space;
room_page_b_data[13].data = xIS_SET( idx->room_flags, ROOM_DONATION ) ? check : space;
room_page_b_data[14].data = xIS_SET( idx->room_flags, ROOM_NO_RECALL ) ? check : space;
room_page_b_data[15].data = xIS_SET( idx->room_flags, ROOM_PRIVATE ) ? check : space;
room_page_b_data[16].data = xIS_SET( idx->room_flags, ROOM_SOLITARY ) ? check : space;
room_page_b_data[17].data = xIS_SET( idx->room_flags, ROOM_NO_ASTRAL ) ? check : space;
room_page_b_data[17].data = xIS_SET( idx->room_flags, ROOM_ASTRALSHIELD ) ? check : space;
room_page_b_data[18].data = xIS_SET( idx->room_flags, ROOM_TUNNEL ) ? check : space;
room_page_b_data[19].data = xIS_SET( idx->room_flags, ROOM_SILENCE ) ? check : space;
room_page_b_data[20].data = xIS_SET( idx->room_flags, ROOM_NO_SUMMON ) ? check : space;
room_page_b_data[21].data = xIS_SET( idx->room_flags, ROOM_CLANSTOREROOM ) ? check : space;
room_page_b_data[22].data = xIS_SET( idx->room_flags, ROOM_LOGSPEECH ) ? check : space;
room_page_b_data[23].data = xIS_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;
room_page_b_data[34].data = ( idx->sector_type == SECT_SPACE ) ? 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, "\x1B[%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, "\x1B[%d;%dr", offset, ch->pagelen );
write_to_buffer( ch->desc, buf, strlen( buf ) );
/*
* goes to pglen,1
*/
sprintf( buf, "\x1B[%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_OBJ_STAT( idx, ITEM_EVIL ) ? check : space;
obj_page_e_data[1].data = IS_OBJ_STAT( idx, ITEM_ANTI_GOOD ) ? check : space;
obj_page_e_data[2].data = IS_OBJ_STAT( idx, ITEM_NODROP ) ? check : space;
obj_page_e_data[3].data = IS_OBJ_STAT( idx, ITEM_INVIS ) ? check : space;
obj_page_e_data[4].data = IS_OBJ_STAT( idx, ITEM_ANTI_EVIL ) ? check : space;
obj_page_e_data[5].data = IS_OBJ_STAT( idx, ITEM_NOREMOVE ) ? check : space;
obj_page_e_data[6].data = IS_OBJ_STAT( idx, ITEM_HIDDEN ) ? check : space;
obj_page_e_data[7].data = IS_OBJ_STAT( idx, ITEM_ANTI_NEUTRAL ) ? check : space;
obj_page_e_data[8].data = IS_OBJ_STAT( idx, ITEM_INVENTORY ) ? check : space;
obj_page_e_data[9].data = IS_OBJ_STAT( idx, ITEM_GLOW ) ? check : space;
obj_page_e_data[10].data = IS_OBJ_STAT( idx, ITEM_BLESS ) ? check : space;
obj_page_e_data[11].data = IS_OBJ_STAT( idx, ITEM_ANTI_SAIYAN ) ? check : space;
obj_page_e_data[12].data = IS_OBJ_STAT( idx, ITEM_DONATION ) ? check : space;
obj_page_e_data[13].data = IS_OBJ_STAT( idx, ITEM_HUM ) ? check : space;
obj_page_e_data[14].data = IS_OBJ_STAT( idx, ITEM_METAL ) ? check : space;
obj_page_e_data[15].data = IS_OBJ_STAT( idx, ITEM_ANTI_HUMAN ) ? check : space;
obj_page_e_data[16].data = IS_OBJ_STAT( idx, ITEM_CLANOBJECT ) ? check : space;
obj_page_e_data[17].data = IS_OBJ_STAT( idx, ITEM_DARK ) ? check : space;
obj_page_e_data[18].data = IS_OBJ_STAT( idx, ITEM_ORGANIC ) ? check : space;
obj_page_e_data[19].data = IS_OBJ_STAT( idx, ITEM_ANTI_HALFBREED ) ? check : space;
obj_page_e_data[20].data = IS_OBJ_STAT( idx, ITEM_CLANCORPSE ) ? check : space;
obj_page_e_data[21].data = IS_OBJ_STAT( idx, ITEM_MAGIC ) ? check : space;
obj_page_e_data[22].data = IS_OBJ_STAT( idx, ITEM_ANTI_NAMEK ) ? check : space;
obj_page_e_data[23].data = IS_OBJ_STAT( idx, ITEM_PROTOTYPE ) ? check : space;
obj_page_e_data[24].data = IS_OBJ_STAT( idx, ITEM_LOYAL ) ? check : space;
obj_page_e_data[25].data = IS_OBJ_STAT( idx, ITEM_ANTI_ANDROID ) ? check : space;
obj_page_e_data[26].data = IS_OBJ_STAT( idx, ITEM_DEATHROT ) ? check : space;
obj_page_e_data[27].data = IS_OBJ_STAT( idx, ITEM_ANTI_ICER ) ? check : space;
obj_page_e_data[27].data = IS_OBJ_STAT( idx, ITEM_ANTI_BIO_ANDROID ) ? check : space;
obj_page_e_data[27].data = IS_OBJ_STAT( idx, ITEM_NOAUCTION ) ? 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[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[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, "\x1B[%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, "\x1B[%d;%dr", offset, ch->pagelen );
write_to_buffer( ch->desc, buf, strlen( buf ) );
/*
* goes to pglen,1
*/
sprintf( buf, "\x1B[%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 = xIS_SET( idx->attacks, ATCK_BITE ) ? check : space;
mob_page_c_data[1].data = xIS_SET( idx->attacks, ATCK_CLAWS ) ? check : space;
mob_page_c_data[2].data = xIS_SET( idx->attacks, ATCK_FIREBREATH ) ? check : space;
mob_page_c_data[3].data = xIS_SET( idx->attacks, ATCK_BASH ) ? check : space;
mob_page_c_data[4].data = xIS_SET( idx->attacks, ATCK_STUN ) ? check : space;
mob_page_c_data[5].data = xIS_SET( idx->attacks, ATCK_ACIDBREATH ) ? check : space;
mob_page_c_data[6].data = xIS_SET( idx->attacks, ATCK_DRAIN ) ? check : space;
mob_page_c_data[7].data = xIS_SET( idx->attacks, ATCK_KICK ) ? check : space;
mob_page_c_data[8].data = xIS_SET( idx->attacks, ATCK_FEED ) ? check : space;
mob_page_c_data[9].data = xIS_SET( idx->attacks, ATCK_GASBREATH ) ? check : space;
mob_page_c_data[10].data = xIS_SET( idx->attacks, ATCK_POISON ) ? check : space;
mob_page_c_data[11].data = xIS_SET( idx->attacks, ATCK_GAZE ) ? check : space;
mob_page_c_data[12].data = xIS_SET( idx->attacks, ATCK_HARM ) ? check : space;
mob_page_c_data[13].data = xIS_SET( idx->attacks, ATCK_FROSTBREATH ) ? check : space;
mob_page_c_data[14].data = xIS_SET( idx->attacks, ATCK_CURSE ) ? check : space;
mob_page_c_data[15].data = xIS_SET( idx->attacks, ATCK_BACKSTAB ) ? check : space;
mob_page_c_data[16].data = xIS_SET( idx->attacks, ATCK_PUNCH ) ? check : space;
mob_page_c_data[17].data = xIS_SET( idx->attacks, ATCK_LIGHTNBREATH ) ? check : space;
mob_page_c_data[18].data = xIS_SET( idx->attacks, ATCK_WEAKEN ) ? check : space;
mob_page_c_data[19].data = xIS_SET( idx->attacks, ATCK_TAIL ) ? check : space;
mob_page_c_data[20].data = xIS_SET( idx->attacks, ATCK_STING ) ? check : space;
mob_page_c_data[21].data = xIS_SET( idx->attacks, ATCK_CAUSESERIOUS ) ? check : space;
mob_page_c_data[22].data = xIS_SET( idx->attacks, ATCK_TRIP ) ? check : space;
mob_page_c_data[23].data = xIS_SET( idx->attacks, ATCK_FIREBALL ) ? check : space;
mob_page_c_data[24].data = xIS_SET( idx->attacks, ATCK_GOUGE ) ? check : space;
mob_page_c_data[25].data = xIS_SET( idx->attacks, ATCK_CAUSECRITICAL ) ? check : space;
mob_page_c_data[26].data = xIS_SET( idx->attacks, ATCK_FLAMESTRIKE ) ? check : space;
mob_page_c_data[27].data = xIS_SET( idx->attacks, ATCK_EARTHQUAKE ) ? check : space;
mob_page_c_data[28].data = xIS_SET( idx->attacks, ATCK_COLORSPRAY ) ? check : space;
mob_page_c_data[29].data = xIS_SET( idx->attacks, ATCK_NASTYPOISON ) ? check : space;
mob_page_c_data[30].data = xIS_SET( idx->attacks, ATCK_BLINDNESS ) ? check : space;
mob_page_c_data[31].data = xIS_SET( idx->defenses, DFND_SANCTUARY ) ? check : space;
mob_page_c_data[32].data = xIS_SET( idx->defenses, DFND_CURELIGHT ) ? check : space;
mob_page_c_data[33].data = xIS_SET( idx->defenses, DFND_DISPELEVIL ) ? check : space;
mob_page_c_data[34].data = xIS_SET( idx->defenses, DFND_SHIELD ) ? check : space;
mob_page_c_data[35].data = xIS_SET( idx->defenses, DFND_CURESERIOUS ) ? check : space;
mob_page_c_data[36].data = xIS_SET( idx->defenses, DFND_DISPELMAGIC ) ? check : space;
mob_page_c_data[37].data = xIS_SET( idx->defenses, DFND_DODGE ) ? check : space;
mob_page_c_data[38].data = xIS_SET( idx->defenses, DFND_FIRESHIELD ) ? check : space;
mob_page_c_data[39].data = xIS_SET( idx->defenses, DFND_CURECRITICAL ) ? check : space;
mob_page_c_data[40].data = xIS_SET( idx->defenses, DFND_TELEPORT ) ? check : space;
mob_page_c_data[41].data = xIS_SET( idx->defenses, DFND_PARRY ) ? check : space;
mob_page_c_data[42].data = xIS_SET( idx->defenses, DFND_SHOCKSHIELD ) ? check : space;
mob_page_c_data[43].data = xIS_SET( idx->defenses, DFND_HEAL ) ? check : space;
mob_page_c_data[44].data = xIS_SET( idx->defenses, DFND_BLESS ) ? check : space;
mob_page_c_data[45].data = xIS_SET( idx->defenses, DFND_DISARM ) ? check : space;
mob_page_c_data[46].data = xIS_SET( idx->defenses, DFND_STONESKIN ) ? check : space;
mob_page_c_data[47].data = xIS_SET( idx->defenses, DFND_MONSUM1 ) ? check : space;
mob_page_c_data[48].data = xIS_SET( idx->defenses, DFND_MONSUM2 ) ? check : space;
mob_page_c_data[49].data = xIS_SET( idx->defenses, DFND_MONSUM3 ) ? check : space;
mob_page_c_data[50].data = xIS_SET( idx->defenses, DFND_MONSUM4 ) ? check : space;
break;
case 'b':
m_data = mob_page_b_data;
mob_page_b_data[0].data = xIS_SET( idx->act, ACT_SENTINEL ) ? check : space;
mob_page_b_data[1].data = xIS_SET( idx->act, ACT_SCAVENGER ) ? check : space;
mob_page_b_data[2].data = xIS_SET( idx->act, ACT_AGGRESSIVE ) ? check : space;
mob_page_b_data[3].data = xIS_SET( idx->act, ACT_STAY_AREA ) ? check : space;
mob_page_b_data[4].data = xIS_SET( idx->act, ACT_WIMPY ) ? check : space;
mob_page_b_data[5].data = xIS_SET( idx->act, ACT_PET ) ? check : space;
mob_page_b_data[6].data = xIS_SET( idx->act, ACT_TRAIN ) ? check : space;
mob_page_b_data[7].data = xIS_SET( idx->act, ACT_PRACTICE ) ? check : space;
mob_page_b_data[8].data = xIS_SET( idx->act, ACT_IMMORTAL ) ? check : space;
mob_page_b_data[9].data = xIS_SET( idx->act, ACT_DEADLY ) ? check : space;
mob_page_b_data[10].data = xIS_SET( idx->act, ACT_POLYSELF ) ? check : space;
mob_page_b_data[11].data = xIS_SET( idx->act, ACT_META_AGGR ) ? check : space;
mob_page_b_data[12].data = xIS_SET( idx->act, ACT_GUARDIAN ) ? check : space;
mob_page_b_data[13].data = xIS_SET( idx->act, ACT_RUNNING ) ? check : space;
mob_page_b_data[14].data = xIS_SET( idx->act, ACT_NOWANDER ) ? check : space;
mob_page_b_data[15].data = xIS_SET( idx->act, ACT_MOUNTABLE ) ? check : space;
mob_page_b_data[16].data = xIS_SET( idx->act, ACT_MOUNTED ) ? check : space;
mob_page_b_data[17].data = IS_AFFECTED( idx, AFF_BLIND ) ? check : space;
mob_page_b_data[18].data = IS_AFFECTED( idx, AFF_DETECT_INVIS ) ? check : space;
mob_page_b_data[19].data = IS_AFFECTED( idx, AFF_DETECT_EVIL ) ? check : space;
mob_page_b_data[20].data = IS_AFFECTED( idx, AFF_DETECT_MAGIC ) ? check : space;
mob_page_b_data[21].data = IS_AFFECTED( idx, AFF_DETECT_HIDDEN ) ? check : space;
mob_page_b_data[22].data = IS_AFFECTED( idx, AFF_HOLD ) ? check : space;
mob_page_b_data[23].data = IS_AFFECTED( idx, AFF_SANCTUARY ) ? check : space;
mob_page_b_data[24].data = IS_AFFECTED( idx, AFF_FAERIE_FIRE ) ? check : space;
mob_page_b_data[25].data = IS_AFFECTED( idx, AFF_INFRARED ) ? check : space;
mob_page_b_data[26].data = IS_AFFECTED( idx, AFF_CURSE ) ? check : space;
mob_page_b_data[27].data = IS_AFFECTED( idx, AFF_FLAMING ) ? check : space;
mob_page_b_data[28].data = IS_AFFECTED( idx, AFF_POISON ) ? check : space;
mob_page_b_data[29].data = IS_AFFECTED( idx, AFF_PROTECT ) ? check : space;
mob_page_b_data[30].data = IS_AFFECTED( idx, AFF_PARALYSIS ) ? check : space;
mob_page_b_data[31].data = IS_AFFECTED( idx, AFF_SLEEP ) ? check : space;
mob_page_b_data[32].data = IS_AFFECTED( idx, AFF_HIDE ) ? check : space;
mob_page_b_data[33].data = IS_AFFECTED( idx, AFF_SNEAK ) ? check : space;
mob_page_b_data[34].data = IS_AFFECTED( idx, AFF_CHARM ) ? check : space;
mob_page_b_data[35].data = IS_AFFECTED( idx, AFF_PARALYSIS ) ? check : space;
mob_page_b_data[36].data = IS_AFFECTED( idx, AFF_FLYING ) ? check : space;
mob_page_b_data[37].data = IS_AFFECTED( idx, AFF_PASS_DOOR ) ? check : space;
mob_page_b_data[38].data = IS_AFFECTED( idx, AFF_TRUESIGHT ) ? check : space;
mob_page_b_data[39].data = IS_AFFECTED( idx, AFF_DETECTTRAPS ) ? check : space;
mob_page_b_data[40].data = IS_AFFECTED( idx, AFF_SCRYING ) ? check : space;
mob_page_b_data[41].data = IS_AFFECTED( idx, AFF_FIRESHIELD ) ? check : space;
mob_page_b_data[42].data = IS_AFFECTED( idx, AFF_SHOCKSHIELD ) ? check : space;
mob_page_b_data[43].data = IS_AFFECTED( idx, AFF_FLOATING ) ? check : space;
mob_page_b_data[44].data = IS_AFFECTED( idx, 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[14].data = &( idx->perm_dex );
mob_page_a_data[15].data = &( idx->perm_con );
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, "\x1B[%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, "\x1B[%d;%dr", offset, ch->pagelen );
write_to_buffer( ch->desc, buf, strlen( buf ) );
/*
* goes to pglen,1
*/
sprintf( buf, "\x1B[%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 = 0, bit = 0, 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]-------------------------------------.\r\n"
"|[1]TEXT| a]Name : |\r\n"
"|-------' b]Short: |\r\n"
"|c]Long: |\r\n"
"|d]Desc: |\r\n"
":---------------------+------------------------------------------------------'\r\n"
"|[2]ATTRIBUTES | |[3]STATS | |[4]CLASS | |\r\n"
"|--------------' |---------' |---------' |\r\n"
"| a]Vnum : | a]Str: | a]Mage ( ) b]Cleric ( ) |\r\n"
"| b]Level: | b]Int: | c]Thief ( ) d]Warrior ( ) |\r\n"
"| c]Class: | c]Wis: | e]Vampire( ) f]Druid ( ) |\r\n"
"| d]Race : | d]Dex: | g]Ranger ( ) h]Baker ( ) |\r\n"
"| e]Sex : | e]Con: | i]Butcher( ) j]Blacksmith( ) |\r\n"
"| f]Gold : | f]Cha: | k]Mayor ( ) l]King ( ) |\r\n"
"| g]Align: | g]AC : | m]Queen ( ) |\r\n"
":---------------------+-------------+----------------------------------'\r\n";
const char mob_page_b[] = ".----------[mob page b]-----[%10.10s]--------------------------.\r\n"
"|[1]ACT FLAGS| a]Sentinel ( ) b]Scavenger ( ) c]Aggressiv( ) |\r\n"
"|------------' d]StayArea ( ) e]Wimpy ( ) f]Pet ( ) |\r\n"
"|g]Train ( ) h]Practice ( ) i]Immortal ( ) j]Deadly ( ) |\r\n"
"|k]PolySlf( ) l]MetaAggres( ) m]Guardian ( ) n]Running ( ) |\r\n"
"|o]NoWandr( ) p]Mountable ( ) q]Mounted ( ) |\r\n"
":-----------------------------------------------------------------:\r\n"
"|[2]AFF FLAGS| a]Blind ( ) b]DetInvis ( ) c]DetEvil ( ) |\r\n"
"|------------' d]DetMag ( ) e]DetHiddn ( ) f]Hold ( ) |\r\n"
"|g]Sanct ( ) h]Faerie ( ) i]InfraRed ( ) j]Cursed ( ) |\r\n"
"|k]Flaming( ) l]Poison ( ) m]Protect ( ) n]Paralysis( ) |\r\n"
"|o]Sleep ( ) p]Hide ( ) q]Sneak ( ) r]Charm ( ) |\r\n"
"|s]Flying ( ) t]PassDoor ( ) u]TrueSight ( ) v]DetTraps ( ) |\r\n"
"|w]Scrying( ) x]FireShield( ) y]ShockShield( ) z]Floating ( ) |\r\n"
"|A]Invisib( ) |\r\n"
"`-----------------------------------------------------------------'\r\n";
const char mob_page_c[] = ".----------.----------[mob page c]-----[%10.10s]-------------------.\r\n"
"|[1]ATTACKS| a]bite ( ) b]claws( ) c]firebreath ( ) |\r\n"
"|----------' d]bash ( ) e]stun ( ) f]acidBreath ( ) |\r\n"
"|g]drain ( ) h]kick ( ) i]feed ( ) j]gasBreath ( ) |\r\n"
"|k]poison( ) l]gaze ( ) m]harm ( ) n]frostBreath ( ) |\r\n"
"|o]curse ( ) p]backstab( ) q]punch( ) r]lightBreath ( ) |\r\n"
"|s]weaken( ) t]tail ( ) u]sting( ) v]causeSerious( ) |\r\n"
"|w]trip ( ) x]fireBall( ) y]gouge( ) z]causeCritica( ) |\r\n"
"| B]flameStrike( ) D]earthQuake ( ) |\r\n"
"| F]colorSpray ( ) G]nastyPoison( ) H]blindness ( ) |\r\n"
":-----------.---------------------------------------------------------+-.\r\n"
"|[2]DEFENSES| a]sanctuary ( ) b]cureLight ( ) c]dispelEvil ( ) |\r\n"
"|-----------' d]shield ( ) e]cureSerious ( ) f]dispelMagic( ) |\r\n"
"|g]dodge ( ) h]fireShield ( ) i]cureCritical( ) j]teleport ( ) |\r\n"
"|k]parry ( ) l]shockShield( ) m]heal ( ) n]bless ( ) |\r\n"
"|o]disarm( ) p]stoneSkin ( ) q]mobSummon1 ( ) r]mobSummon2 ( ) |\r\n"
"| u]mobSummon3 ( ) v]mobSummon4 ( ) |\r\n"
":-----------------------------------------------------------------------'\r\n";
const char mob_page_d[] = ".----------------.----------[mob page d]-----[%10.10s]----------.\r\n"
"|[1]SAVING THROWS| a]Poison/Death %% c]Paralysis/Petrify %% |\r\n"
"|----------------' c]Wand %% d]Breath %% |\r\n"
"| e]Spell/Staff %% |\r\n"
":------------------------------------------------------------------^-----.\r\n"
"|[2]BODY | a]Fins( ) b]Ear ( ) c]Eye ( ) d]LongTongue( ) e]Scales ( )|\r\n"
"| PARTS | f]Tail( ) g]Arms( ) h]Legs( ) i]Tentacles ( ) j]Brains ( )|\r\n"
"|---------' k]Guts( ) l]Head( ) m]Feet( ) n]EyeStalks ( ) o]Fingers( )|\r\n"
"| p]Wings( ) q]Hands( ) r]Heart( ) |\r\n"
"|ATTACKING: u]Claws( ) v]Horns( ) w]Tusks( ) |\r\n"
"| z]TailAttack( ) A]SharpScales( ) |\r\n"
":---------.--------------------------------------------------------------:\r\n"
"|[3]FIGHT | a]Attacks: [ ] b]HitDice:[ ]D[ ]+[ ] |\r\n"
"| STATS | c]HitRoll:[ ] |\r\n"
"|---------' d]DamRoll:[ ] e]DamDice:[ ]D[ ]+[ ] |\r\n"
"`------------------------------------------------------------------------'\r\n";
const char mob_page_e[] = ".---------.----------[mob page e]-----[%10.10s]----------------------.\r\n"
"|[1]SPEC'L| a]fido ( ) b]castAdept ( ) c]breathFire ( ) |\r\n"
"| FUNCTS| d]guard ( ) e]castCleric( ) f]breathFrost ( ) |\r\n"
"|---------' g]janitor( ) h]castMage ( ) i]breathAcid ( ) |\r\n"
"| j]thief ( ) k]castUndead( ) l]breathGas ( ) |\r\n"
"| m]mayor ( ) o]breathLightning( ) |\r\n"
"| p]poison ( ) q]executionr( ) r]breathAny ( ) |\r\n"
":-----------.-------------------------------------------------------.---+\r\n"
"|[2]DEFAULT | a]Dead ( ) b]Mortally( ) c]Incapacitated( ) |\r\n"
"| POSITION| d]Stunned( ) e]Sleeping( ) f]Resting ( ) |\r\n"
"|-----------' g]Sitting( ) h]Fighting( ) i]Standing ( ) |\r\n"
"| k]Mounted( ) |\r\n"
":--------.----------------------------------------------------------^----.\r\n"
"|[3]RIS | a]fire ... b]cold ... c]elect ... d]energ ... e]poison ...|\r\n"
"|PROFILE | f]blunt ... g]pierce... h]slash ... i]acid ... j]nonMag ...|\r\n"
"|--------' k]drain ... l]sleep ... m]charm ... n]hold ... o]magic ...|\r\n"
"|p]plus1 ... q]plus2 ... r]plus3 ... s]plus4 ... t]plus5 ... u]plus6 ...|\r\n"
":------------------------------------------------------------------------'\r\n";
const char room_page_a[] = ".---------.--[rmenu page a]-------[%10.10s]-----------------------------.\r\n"
"||[1]TEXT| |\r\n"
"|--------' |\r\n"
"|a]Name: |\r\n"
"| |\r\n"
"|b]Description: |\r\n"
"| |\r\n"
"| |\r\n"
":---------------------+-----------------------------------------------------'\r\n";
const char room_page_b[] = ".---------.--[rmenu page b]-------[%10.10s]----------------.\r\n"
"|[1]ROOM | a]Dark ( ) b]Death ( ) c]NoMobs ( ) |\r\n"
"| FLAGS | d]Indoors ( ) e]Lawful ( ) f]NoMagic ( ) |\r\n"
"|---------' g]PetShop ( ) h]Neutral ( ) i]NoDrop ( ) |\r\n"
"| j]Safe ( ) k]Chaotic ( ) l]NoDropAll( ) |\r\n"
"| m]Teleport ( ) n]Donation ( ) o]NoRecall ( ) |\r\n"
"| p]Private ( ) q]Solitary ( ) r]NoAstral ( ) |\r\n"
"| s]Tunnel ( ) t]Silence ( ) u]NoSummon ( ) |\r\n"
"| v]ClanStorge( ) w]LogSpeech( ) x]NoFloor ( ) |\r\n"
":-------------------------------------------------------------+--------.\r\n"
"|[2]SECTOR | a]Inside ( ) b]Forest ( ) c]City( ) d]Hills ( ) |\r\n"
"| TYPE | e]Mountain( ) f]Water_Swim ( ) g]Air ( ) h]Desert( ) |\r\n"
"|----------' i]Dunno ( ) j]Water_NoSwim( ) l]Field ( ) |\r\n"
"`----------------------------------------------------------------------'\r\n";
const char room_page_c[] = ".----------.-[rmenu page c]-------[%10.10s]--------------------------.\r\n"
"|[1] EXIT | Section [2] now : n]orth( ) u]p( ) |\r\n"
"|DIRECTION | shows info about : w]est( ) e]ast( ) |\r\n"
"| SUBMENU | the exit to : s]outh( ) d]own( ) |\r\n"
":-----------------------------------------------------------------------:\r\n"
"|[2] EXIT | a]IsDoor ( ) b]Secret ( ) KeyWords: |\r\n"
"|PROPERTIES| c]Closed ( ) d]PickProof( ) m:[#######################] |\r\n"
"|----------' e]Locked ( ) f]PassProof( ) n:[#######################] |\r\n"
"| o:[#######################] |\r\n"
"|i]To Room: [ ] [ ] p:[#######################] |\r\n"
"|j] Key: [ ] [ ] q:[#######################] |\r\n"
"|k]:ExitDescr: |\r\n"
"| |\r\n"
"`-----------------------------------------------------------------------'\r\n";
const char room_page_d[] = ".---------.--[rmenu page d]-------[%10.10s]---------------------------.\r\n"
"|[1] STD | a]Hut ( ) b]Tent ( ) c]Hovel ( ) d]Campsite( ) |\r\n"
"| ROOMS | e]Shack ( ) f]Cabin ( ) g]Homested( ) h]Keep ( ) |\r\n"
"|---------' i]Fortress ( ) j]Castle ( ) k]GuardHse( ) l]Temple ( ) |\r\n"
"|m]Store ( ) n]Graveyard( ) o]Monastry( ) p]Stable ( ) q]Tavern ( ) |\r\n"
"|r]Basemnt( ) s]Bedroom ( ) t]BnquetRm( ) u]Corridor( ) v]Attic ( ) |\r\n"
"|w]Vault ( ) x]SittingRm( ) y]Study ( ) z]Passage ( ) A]Tower ( ) |\r\n"
"|B]Crypt ( ) C]WorkRoom ( ) D]Lab ( ) E]Hallway ( ) F]Turret ( ) |\r\n"
"|G]StorRm ( ) H]Kitchen ( ) I]Larder ( ) J]Stairway( ) K]Rooftop ( ) |\r\n"
"|L]Closet ( ) M]Office ( ) N]Treasury( ) O]Landing ( ) P]Balcony ( ) |\r\n"
"|Q]Foyer ( ) R]DrawingRm( ) S]Den ( ) T]Ladder ( ) U]Catwalk ( ) |\r\n"
"|V]Entrnce( ) W]Arboretum( ) X]Library ( ) Y]Vent ( ) Z]Shaft ( ) |\r\n"
"|0]Gate ( ) 1]AudiencRm( ) 2]Consrvty( ) 3]DumbWatr( ) 4]Chimney ( ) |\r\n"
"|5]Porch ( ) 6]ClassRoom( ) 7]CloakRm ( ) 8]Lawn ( ) 9]Garden ( ) |\r\n"
"|!]Lake ( ) @]Forest ( ) #]Swamp ( ) $]Well ( ) %%]Street ( ) |\r\n"
"|^]River ( ) &]Canyon ( ) *]Beach ( ) (]Mine ( ) )]Road ( ) |\r\n"
"|-]Stream ( ) _]Clearing( ) +]SnakePit( ) =]Tunnel ( ) |]Path ( ) |\r\n"
"|\\]Rapids ( ) ~]Desert ( ) `]SandStrm( ) {]Rope ( ) []Cliff ( ) |\r\n"
"|}]CaveRiv( ) ]]Jungle ( ) :]Sandbar ( ) \"]RopeBrdg( ) ']Bridge ( ) |\r\n"
"|<]CaveLak( ) ,]Cave ( ) >]None ( ) .]RopeLadr( ) ?]NatlBrdg( ) |\r\n"
"`-------------------------------------------------------------------------'\r\n";
const char mob_page_f[] = ".---------.--[mmenu page f]-------[%10.10s]---------------------------.\r\n"
"|[1] STD | a]Human ( ) b]Neandrtl( ) c]Avis ( ) d]Amphib ( ) |\r\n"
"| ROOMS | e]Elf ( ) f]Orc ( ) g]Bugbear ( ) h]Bovine ( ) |\r\n"
"|---------' i]Dwarf ( ) j]Skeleton( ) k]Dragon ( ) l]Canine ( ) |\r\n"
"|m]Ant ( ) n]Halfling ( ) o]Thoul ( ) p]RustMnst( ) q]Crustacn( ) |\r\n"
"|r]Bee ( ) s]Pixie ( ) t]Undead ( ) u]Shadow ( ) v]Feline ( ) |\r\n"
"|w]Beetle ( ) x]Vampire ( ) y]Zombie ( ) z]ShapShft( ) A]Fish ( ) |\r\n"
"|B]Fly ( ) C]Gargoyle ( ) D]Ape ( ) E]Shrieker( ) F]Insect ( ) |\r\n"
"|G]Locust ( ) H]Ghoul ( ) I]Baboon ( ) J]Stirge ( ) K]Mammal ( ) |\r\n"
"|L]Snake ( ) M]Gnoll ( ) N]Bat ( ) O]Wight ( ) P]Porcine ( ) |\r\n"
"|Q]Spider ( ) R]Gnome ( ) S]Bear ( ) U]Reptile ( ) |\r\n"
"|V]Worm ( ) W]Goblin ( ) X]Boar ( ) Z]Rodent ( ) |\r\n"
"| 1]Golem ( ) 2]Cat ( ) 4]Trogldte( ) |\r\n"
"|5]Gelatin( ) 6]Gorgon ( ) 7]Dog ( ) 9]Spirit ( ) |\r\n"
"|!]Mold ( ) @]Harpy ( ) #]Ferret ( ) %%]Magical ( ) |\r\n"
"|^]Ooze ( ) &]Hobgoblin( ) *]Horse ( ) |\r\n"
"|-]Slime ( ) _]Kobold ( ) +]Mule ( ) |\r\n"
"| ~]Lizardman( ) `]Rat ( ) |\r\n"
"| ]]Lycanthrp( ) :]Shrew ( ) |\r\n"
"| ,]Minotaur ( ) >]Wolf ( ) |\r\n"
"`-------------------------------------------------------------------------'\r\n";
const char obj_page_a[] = ".-------.----[omenu page a]-------[%10.10s]----------------------------.\r\n"
"|[1]TEXT| a]Name : |\r\n"
"|-------' b]Short: |\r\n"
"|c]Long: |\r\n"
"|d]ActionDesc: | \r\n"
":---------------------------------------------+---------------------------'\r\n"
"|[2]VALUES| Value Meaning |[3]STATS | |\r\n"
"|---------' --------------- |---------' |\r\n"
"| a]Value0:[ ] ( ) | a]Weight:[ ] |\r\n"
"| b]Value1:[ ] ( ) | b]Cost: [ ] |\r\n"
"| c]Value2:[ ] ( ) | |\r\n"
"| d]Value3:[ ] ( ) | |\r\n"
"`---------------------------------------------+-----------------------'\r\n";
const char obj_page_b[] = ".---------.--[omenu page b]-------[%10.10s]----------------------.\r\n"
"|[1]OBJECT| a]none ( ) b]fountain ( ) c]furniture ( ) |\r\n"
"| TYPES | d]armor ( ) e]food ( ) f]money ( ) |\r\n"
"|---------' g]potion ( ) h]pullchain ( ) i]weapon ( ) |\r\n"
"|j]map ( ) k]light ( ) l]button ( ) m]treasure ( ) |\r\n"
"|n]herb( ) o]trash ( ) p]switch ( ) q]container ( ) |\r\n"
"|r]wand( ) s]scroll ( ) t]staff ( ) u]bloodstain ( ) |\r\n"
"|v]pill( ) w]blood ( ) x]dial ( ) y]_oldtrap ( ) |\r\n"
"|z]key ( ) A]incense( ) B]lever ( ) C]corpse_pc ( ) |\r\n"
"|D]pipe( ) E]scraps ( ) F]trap ( ) G]corpse ( ) |\r\n"
"|H]book( ) I]match ( ) J]drinkcon ( ) K]portal ( ) |\r\n"
"|L]_pen( ) M]fire ( ) N]herbcon ( ) O]_fireweapon ( ) |\r\n"
"|P]boat( ) Q]rune ( ) R]runepouch ( ) S]_missile ( ) |\r\n"
"`-------------------------------------------------------------------'\r\n";
const char obj_page_c[] = ".----------.-[omenu page c]-------[%10.10s]--------------------------.\r\n"
"|[1] BASIC | a]none:( ) b]save_poi :[ ]%% c]age :[ ] |\r\n"
"| AFFECTS | d]STR :[ ] e]save_rod :[ ]%% f]class :[ ] |\r\n"
"|----------' g]INT :[ ] h]save_para :[ ]%% i]level :[ ] |\r\n"
"| j]WIS :[ ] k]save_breath:[ ]%% l]sex :[ ] | \r\n"
"| m]DEX :[ ] n]save_spell :[ ]%% o]height:[ ] |\r\n"
"| p]CON :[ ] r]weight:[ ] |\r\n"
"| s]CHA :[ ] |\r\n"
"| v]Mana:[ ] w]AC :[ ] |\r\n"
"| y]HP :[ ] z]HitRoll:[ ] A]Gold:[ ] |\r\n"
"| B]Move:[ ] C]DamRoll:[ ] D]Exp :[ ] |\r\n"
":--------.---------------------------------------------------------------.\r\n"
"|[2] RIS | a]fire ... b]cold ... c]elect ... d]energ ... e]poison ...|\r\n"
"|AFFECTS | f]blunt ... g]pierce... h]slash ... i]acid ... j]nonMag ...|\r\n"
"|--------' k]drain ... l]sleep ... m]charm ... n]hold ... o]magic ...|\r\n"
"|p]plus1 ... q]plus2 ... r]plus3 ... s]plus4 ... t]plus5 ... u]plus6 ...|\r\n"
"`------------------------------------------------------------------------'\r\n";
const char obj_page_d[] = ".-----------.[omenu page d]-------[%10.10s]--------------------.\r\n"
":[1]ADVANCED| |\r\n"
"| AFFECTS| a]Blind ( ) b]DetInvis ( ) c]DetEvil ( ) |\r\n"
"|-----------' d]DetMag ( ) e]DetHiddn ( ) f]Hold ( ) |\r\n"
"|g]Sanct ( ) h]Faerie ( ) i]InfraRed ( ) j]Cursed ( ) |\r\n"
"|k]Flaming( ) l]Poison ( ) m]Protection ( ) n]Paralysis( ) |\r\n"
"|o]Sleep ( ) p]Hide ( ) q]Sneak ( ) r]Charm ( ) |\r\n"
"|s]Flying ( ) t]PassDoor ( ) u]TrueSight ( ) v]DetTraps ( ) |\r\n"
"|w]Scrying( ) x]FireShield( ) y]ShockShield( ) z]Floating ( ) |\r\n"
"|A]Invisib( ) |\r\n"
"`-----------------------------------------------------------------'\r\n";
const char obj_page_e[] = ".----------.-[omenu page e]-------[%10.10s]--------------------.\r\n"
"|[1] OBJECT| a]Evil ( ) b]AntiGood ( ) c]NoDrop ( ) |\r\n"
"| FLAGS | d]Invis ( ) e]AntiEvil ( ) f]NoRemove ( ) |\r\n"
"|----------' g]Hidden ( ) h]AntiNeut ( ) i]Inventory ( ) |\r\n"
"|j]Glow ( ) k]Bless ( ) l]AntiMage ( ) m]Donation ( ) |\r\n"
"|n]Hum ( ) o]Metal ( ) p]AntiThief ( ) q]ClanObject( ) |\r\n"
"|r]Dark ( ) s]Organic( ) t]AntiWarrior( ) u]ClanCorpse( ) |\r\n"
"|v]Magic ( ) x]AntiCleric ( ) y]Prototype ( ) |\r\n"
"|z]Loyal ( ) B]AntiVampire( ) C]Deathrot ( ) |\r\n"
"| F]AntiDruid ( ) |\r\n"
":-----------------------------------------------------------------.\r\n"
"|[2] WEAR | a]Take ( ) b]Finger ( ) c]Neck ( ) d]Body ( ) |\r\n"
"| FLAGS | e]Head ( ) f]Legs ( ) g]Feet ( ) h]Hands( ) |\r\n"
"|----------' i]Arms ( ) j]Shield ( ) k]About ( ) l]Waist( ) |\r\n"
"|m]Wrist ( ) n]Wield( ) o]Hold ( ) p]_dual_( ) q]Ears ( ) |\r\n"
"|r]Eyes ( ) |\r\n"
"`-----------------------------------------------------------------'\r\n";
const char mob_help_page[] = "\r\n"
".------------[mmenu help pg]------[%10.10s]--------------------.\r\n"
"| Page contents | |\r\n"
"| | MISC COMMANDS. |\r\n"
"| PAGE CONTENTS | -------------- |\r\n"
"|------|-----------------------------------| clear: clear screen |\r\n"
"| a | strings, attrs, stats, class | redraw: redraw menu |\r\n"
"| b | act & affected | refresh:redraw data |\r\n"
"| c | attacks & defenses | pagelen:set page |\r\n"
"| d | saves, bodyparts, and fight stats | length |\r\n"
"| e | specials, position, and RIS | |\r\n"
"| f | race | |\r\n"
"`-----------------------------------------------------------------'\r\n";
const char room_help_page[] = "\r\n"
".------------[rmenu help pg]------[%10.10s]--------------------.\r\n"
"| Page contents | |\r\n"
"| | MISC COMMANDS. |\r\n"
"| PAGE CONTENTS | -------------- |\r\n"
"|------|-----------------------------------| clear: clear screen |\r\n"
"| a | name & description | redraw: redraw menu |\r\n"
"| b | room flags & sector type | refresh:redraw data |\r\n"
"| c | exit stuff | pagelen:set page |\r\n"
"| (d) | (map codes) | length |\r\n"
"| | | |\r\n"
"| | | |\r\n"
"`-----------------------------------------------------------------'\r\n";
const char obj_help_page[] = "\r\n"
".------------[omenu help pg]------[%10.10s]--------------------.\r\n"
"| Page contents | |\r\n"
"| | MISC COMMANDS. |\r\n"
"| PAGE CONTENTS | -------------- |\r\n"
"|------|-----------------------------------| clear: clear screen |\r\n"
"| a | strings, values, weight/cost | redraw: redraw menu |\r\n"
"| b | object type | refresh:redraw data |\r\n"
"| c | affects & affect RIS | pagelen:set page |\r\n"
"| d | affect affecteds | length |\r\n"
"| e | oflags & wear flags | |\r\n"
"| | | |\r\n"
"`-----------------------------------------------------------------'\r\n";
const char control_page_a[] = ".--------.---[cmenu page a]-----.[%10.10s]-------------------------------.\r\n"
"||[1]MAIL| ||[2]CHANNELS| |\r\n"
"|--------' |------------' |\r\n"
"|a]Read free: |a]Muse: |\r\n"
"|b]Write free: |b]Think: |\r\n"
"|c]Read all: |c]Log: |\r\n"
"|d]Take all: |d]Build: |\r\n"
"`---------------------------------------------------------------------------'\r\n";
const char control_help_page[] = "\r\n"
".------------[cmenu help pg]------[%10.10s]--------------------.\r\n"
"| Page contents | |\r\n"
"| | MISC COMMANDS. |\r\n"
"| PAGE CONTENTS | -------------- |\r\n"
"|------|-----------------------------------| clear: clear screen |\r\n"
"| a | main control panel | redraw: redraw menu |\r\n"
"| | | refresh:redraw data |\r\n"
"| | | pagelen:set page |\r\n"
"| | | length |\r\n"
"| | | |\r\n"
"| | | |\r\n"
"`-----------------------------------------------------------------'\r\n";
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];
}