/*
* DESCRIPTION STRUCTURE
*/
class Extra_Data : public Visible_Data
{
public:
char* keyword;
char* text;
Extra_Data( ) {
record_new( sizeof( extra_data ), MEM_EXTRA );
}
~Extra_Data( ) {
record_delete( sizeof( extra_data ), MEM_EXTRA );
free_string( keyword, MEM_EXTRA );
free_string( text, MEM_EXTRA );
}
int Type ( ) { return EXTRA_DATA; }
void Look_At ( char_data* );
const char* Keywords ( char_data* );
};
bool obj_descr ( char_data*, thing_array&, char* );
bool room_descr ( char_data*, extra_data*, char* );
void show_extras ( char_data*, extra_array& );
void edit_extra ( extra_array&, wizard_data*, int, char*, char* );
void read_extra ( FILE*, extra_array& );
void write_extras ( FILE*, extra_array& );
/*
* LOOK ROUTINES
*/
void glance ( char_data*, char_data* );
void look_in ( char_data*, obj_data* );
void look_at ( char_data*, obj_data* );
void show_room ( char_data*, room_data*, bool, bool );
/*
* NOISE
*/
inline bool can_hear( char_data* ch )
{
if( ch->position <= POS_SLEEPING )
return FALSE;
return TRUE;
}
/*
* WHO ROUTINES
*/
inline bool can_see_who( char_data* ch, char_data* victim )
{
wizard_data* imm;
if( ( imm = wizard( victim ) ) != NULL
&& is_set( victim->pcdata->pfile->flags, PLR_WIZINVIS )
&& get_trust( ch ) < imm->wizinvis )
return FALSE;
return TRUE;
}
inline const char* who_name( char_data* ch, char_data* victim )
{
return can_see_who( ch, victim ) ? victim->Seen_Name( ch ) : "someone";
}