#include <lib.h> #include <daemons.h> #include <dirs.h> inherit LIB_ROOM; void init() { ::init(); add_action("help", "help"); add_action("read", "read"); } void create() { ::create(); SetSmell( "default", "The musty smell of old books fills the room."); SetProperties((["light":2, "no castle" : 1, "indoors" :1 ]) ); SetShort( "Praxis Library"); SetLong( "Welcome to the Praxis Library of higher learning!\n" "The library is filled with shelves and shelves full of books, " "reaching up towards the ceiling. The leather bound books are " "waiting to be read. East Road is west of the library. " "The command <read books> will show you what books are available and " "type <read [title]> to read a particular book."); SetItems( (["library" : "The laws of reality are explained in here.", "shelf" : "It has books on it.", "shelves" : "Books fill them.", "book" : "One of many.", "books" : "They are everywhere on the shelves."]) ); SetExits( (["west" : "/domains/Praxis/east_road1"]) ); } int read(string str) { string *dir; string *tmp; string tmp_str; int i,j,k; if(!str) { notify_fail("Read what?\n"); return 0; } if(str == "volume" || str == "book") { notify_fail("Which "+str+"?\n"); return 0; } if(str == "volumes" || str == "books") { message("info", "The books available for reading are:",this_player()); dir = get_dir(DIR_LIBRARY + "/"); for(i=0; i<sizeof(dir); i++) dir[i] = replace_string(dir[i], "_", " "); message("info", replace_string(format_page(dir, 3), "\n", " "), this_player()); message("info", "Type <read [book name]> to read a particular book.", this_player()); } else { str = replace_string(str, " ", "_"); if(file_size(DIR_LIBRARY + "/"+str) == -1) { notify_fail("There is no book here by that title.\n"); return 0; } this_player()->more(DIR_LIBRARY + "/"+str); } return 1; } int help(string str) { if(!str) return 0; if(str != "library") { notify_fail("You help "+str+".\n"); return 0; } write("You can read what is in the library.\nType <read books>.\n"); return 1; }