/** * This inherit allows people to complain in unhappy times. It does the * interfacing with the complaints handler and all the other gubbins. * * @see /std/room/inherit/complaints_room.c * @see /obj/handlers/complaints_handlers.c * @author Arienne * @started Wed Apr 4 14:11:50 BST 2001 **/ #include <complaints_handler.h> #include <board.h> /** * @ignore **/ void init() { add_command( "complain", "" ); } /* init() */ /** * This prints a set message to the player who wants to complain. It also * enforces who cannot complain (eg. guest characters cannot complain). * * @return Should always return 1. **/ int do_complain() { // guest characters cannot complain if ( this_player()->query_property( "guest" ) ) return add_failed_mess( "Guest characters cannot lodge " "complaints.\n" ); // A simple message about nature of complaints before you begin tell_object( this_player(), "You are lodging an official complaint about " "something or someone.\n" "Do not take this action lightly.\n" "Complaints should be about serious Disc-related matters. " "Please note that this complaint is submitted anonymously. " "If you wish to receive a reply, make sure you place your " "character name in the complaint so we know who to respond " "to.\n" "Feedback for the general populous also often appears on " "various bulletin boards.\n" ); this_player()->do_edit( 0, "finish_complaint", this_object() ); return 1; } /* do_complain() */ /** * Check to see whether the complaint was cancelled. If not, submit it to the * complaints handler. Print a message on success or failure. **/ void finish_complaint( string str ) { if ( !str ) { tell_object( this_player(), "Complaint aborted.\n" ); } else { // you have finished a complaint, so submit it to the handler if ( COMPLAINTS_HANDLER->do_submit_complaint( str ) ) { tell_object( this_player(), "Complaint posted. Thank you for " "your complaint. If you submitted your name in " "your complaint, you should receive a response in " "the near future. Please be patient, as there may " "be in-depth discussions as a result of your " "complaint.\n" ); } else { tell_object( this_player(), "There has been a problem posting " "your complaint. As a result it has NOT been " "submitted. You should contact a liaison or other " "creator to get this rectified immediately.\n" ); } } } /* finish_complaint() */ /** * @ignore **/ int board_access_check( int type, string, object previous, string name ) { tell_creator("arienne",file_name(previous)+"\n"); switch ( type ) { case B_ACCESS_READ: return ( "/secure/master"->query_lord( name ) ); case B_ACCESS_WRITE: return ( ( previous == this_object() ) || ( "/secure/master"->query_lord( name ) ) ); case B_ACCESS_DELETE : // Players can always delete their own notes, do not need to code // for that. return 0; } } /* board_access_check() */