#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;
}