tmi2_fluffos_v2/
tmi2_fluffos_v2/bin/
tmi2_fluffos_v2/etc/
tmi2_fluffos_v2/fluffos-2.7-ds2.018/
tmi2_fluffos_v2/fluffos-2.7-ds2.018/ChangeLog.old/
tmi2_fluffos_v2/fluffos-2.7-ds2.018/Win32/
tmi2_fluffos_v2/fluffos-2.7-ds2.018/compat/
tmi2_fluffos_v2/fluffos-2.7-ds2.018/compat/simuls/
tmi2_fluffos_v2/fluffos-2.7-ds2.018/include/
tmi2_fluffos_v2/fluffos-2.7-ds2.018/testsuite/
tmi2_fluffos_v2/fluffos-2.7-ds2.018/testsuite/clone/
tmi2_fluffos_v2/fluffos-2.7-ds2.018/testsuite/command/
tmi2_fluffos_v2/fluffos-2.7-ds2.018/testsuite/data/
tmi2_fluffos_v2/fluffos-2.7-ds2.018/testsuite/etc/
tmi2_fluffos_v2/fluffos-2.7-ds2.018/testsuite/include/
tmi2_fluffos_v2/fluffos-2.7-ds2.018/testsuite/inherit/
tmi2_fluffos_v2/fluffos-2.7-ds2.018/testsuite/inherit/master/
tmi2_fluffos_v2/fluffos-2.7-ds2.018/testsuite/log/
tmi2_fluffos_v2/fluffos-2.7-ds2.018/testsuite/single/
tmi2_fluffos_v2/fluffos-2.7-ds2.018/testsuite/single/tests/compiler/
tmi2_fluffos_v2/fluffos-2.7-ds2.018/testsuite/single/tests/efuns/
tmi2_fluffos_v2/fluffos-2.7-ds2.018/testsuite/single/tests/operators/
tmi2_fluffos_v2/fluffos-2.7-ds2.018/testsuite/u/
tmi2_fluffos_v2/fluffos-2.7-ds2.018/tmp/
tmi2_fluffos_v2/fluffos-2.7-ds2.018/windows/
tmi2_fluffos_v2/lib/
tmi2_fluffos_v2/lib/adm/
tmi2_fluffos_v2/lib/adm/daemons/languages/
tmi2_fluffos_v2/lib/adm/daemons/network/I3/
tmi2_fluffos_v2/lib/adm/daemons/virtual/
tmi2_fluffos_v2/lib/adm/daemons/virtual/template/
tmi2_fluffos_v2/lib/adm/news/
tmi2_fluffos_v2/lib/adm/obj/
tmi2_fluffos_v2/lib/adm/obj/master/
tmi2_fluffos_v2/lib/adm/priv/
tmi2_fluffos_v2/lib/adm/shell/
tmi2_fluffos_v2/lib/adm/tmp/
tmi2_fluffos_v2/lib/cmds/
tmi2_fluffos_v2/lib/d/
tmi2_fluffos_v2/lib/d/Conf/
tmi2_fluffos_v2/lib/d/Conf/adm/
tmi2_fluffos_v2/lib/d/Conf/boards/
tmi2_fluffos_v2/lib/d/Conf/cmds/
tmi2_fluffos_v2/lib/d/Conf/data/
tmi2_fluffos_v2/lib/d/Conf/logs/
tmi2_fluffos_v2/lib/d/Conf/obj/
tmi2_fluffos_v2/lib/d/Conf/text/help/
tmi2_fluffos_v2/lib/d/Fooland/adm/
tmi2_fluffos_v2/lib/d/Fooland/data/
tmi2_fluffos_v2/lib/d/Fooland/data/attic/
tmi2_fluffos_v2/lib/d/Fooland/items/
tmi2_fluffos_v2/lib/d/TMI/
tmi2_fluffos_v2/lib/d/TMI/adm/
tmi2_fluffos_v2/lib/d/TMI/boards/
tmi2_fluffos_v2/lib/d/TMI/data/
tmi2_fluffos_v2/lib/d/TMI/rooms/
tmi2_fluffos_v2/lib/d/grid/
tmi2_fluffos_v2/lib/d/grid/adm/
tmi2_fluffos_v2/lib/d/grid/data/
tmi2_fluffos_v2/lib/d/std/
tmi2_fluffos_v2/lib/d/std/adm/
tmi2_fluffos_v2/lib/data/adm/
tmi2_fluffos_v2/lib/data/adm/daemons/
tmi2_fluffos_v2/lib/data/adm/daemons/doc_d/
tmi2_fluffos_v2/lib/data/adm/daemons/emoted/
tmi2_fluffos_v2/lib/data/adm/daemons/network/http/
tmi2_fluffos_v2/lib/data/adm/daemons/network/services/mail_q/
tmi2_fluffos_v2/lib/data/adm/daemons/network/smtp/
tmi2_fluffos_v2/lib/data/adm/daemons/news/archives/
tmi2_fluffos_v2/lib/data/attic/connection/
tmi2_fluffos_v2/lib/data/attic/user/
tmi2_fluffos_v2/lib/data/std/connection/b/
tmi2_fluffos_v2/lib/data/std/connection/l/
tmi2_fluffos_v2/lib/data/std/user/a/
tmi2_fluffos_v2/lib/data/std/user/b/
tmi2_fluffos_v2/lib/data/std/user/d/
tmi2_fluffos_v2/lib/data/std/user/f/
tmi2_fluffos_v2/lib/data/std/user/l/
tmi2_fluffos_v2/lib/data/std/user/x/
tmi2_fluffos_v2/lib/data/u/d/dm/working/doc_d/
tmi2_fluffos_v2/lib/data/u/l/leto/doc_d/
tmi2_fluffos_v2/lib/data/u/l/leto/smtp/
tmi2_fluffos_v2/lib/doc/
tmi2_fluffos_v2/lib/doc/driverdoc/applies/
tmi2_fluffos_v2/lib/doc/driverdoc/applies/interactive/
tmi2_fluffos_v2/lib/doc/driverdoc/concepts/
tmi2_fluffos_v2/lib/doc/driverdoc/driver/
tmi2_fluffos_v2/lib/doc/driverdoc/efuns/arrays/
tmi2_fluffos_v2/lib/doc/driverdoc/efuns/buffers/
tmi2_fluffos_v2/lib/doc/driverdoc/efuns/compile/
tmi2_fluffos_v2/lib/doc/driverdoc/efuns/ed/
tmi2_fluffos_v2/lib/doc/driverdoc/efuns/filesystem/
tmi2_fluffos_v2/lib/doc/driverdoc/efuns/floats/
tmi2_fluffos_v2/lib/doc/driverdoc/efuns/functions/
tmi2_fluffos_v2/lib/doc/driverdoc/efuns/general/
tmi2_fluffos_v2/lib/doc/driverdoc/efuns/mappings/
tmi2_fluffos_v2/lib/doc/driverdoc/efuns/numbers/
tmi2_fluffos_v2/lib/doc/driverdoc/efuns/parsing/
tmi2_fluffos_v2/lib/doc/driverdoc/lpc/constructs/
tmi2_fluffos_v2/lib/doc/driverdoc/lpc/preprocessor/
tmi2_fluffos_v2/lib/doc/driverdoc/lpc/types/
tmi2_fluffos_v2/lib/doc/driverdoc/platforms/
tmi2_fluffos_v2/lib/doc/mudlib/
tmi2_fluffos_v2/lib/ftp/
tmi2_fluffos_v2/lib/include/driver/
tmi2_fluffos_v2/lib/log/
tmi2_fluffos_v2/lib/log/driver/
tmi2_fluffos_v2/lib/obj/net/
tmi2_fluffos_v2/lib/obj/shells/
tmi2_fluffos_v2/lib/obj/tools/
tmi2_fluffos_v2/lib/std/adt/
tmi2_fluffos_v2/lib/std/board/
tmi2_fluffos_v2/lib/std/body/
tmi2_fluffos_v2/lib/std/fun/
tmi2_fluffos_v2/lib/std/living/
tmi2_fluffos_v2/lib/std/object/
tmi2_fluffos_v2/lib/std/shop/
tmi2_fluffos_v2/lib/std/socket/
tmi2_fluffos_v2/lib/std/user/
tmi2_fluffos_v2/lib/std/virtual/
tmi2_fluffos_v2/lib/student/
tmi2_fluffos_v2/lib/student/kalypso/
tmi2_fluffos_v2/lib/student/kalypso/armor/
tmi2_fluffos_v2/lib/student/kalypso/rooms/
tmi2_fluffos_v2/lib/student/kalypso/weapons/
tmi2_fluffos_v2/lib/u/l/leto/
tmi2_fluffos_v2/lib/u/l/leto/cmds/
tmi2_fluffos_v2/lib/www/errors/
tmi2_fluffos_v2/lib/www/gateways/
tmi2_fluffos_v2/lib/www/images/
tmi2_fluffos_v2/old/
tmi2_fluffos_v2/win32/
/*
// File:       memopad.c
// Purpose:    An object to store memorandi in.  An example of hypertext.
// 93-07-25    Written by Douglas Reay (Pallando @ TMI-2)
// 93-09-19    move() added by Pallando on request from Mobydick
*/
#include <move.h>

inherit "/std/hypertext";

string datafile()
{
    return user_path( geteuid( this_object() ) ) + ".memo";
}

void memo_pad_set_up()
{
    data["start"] = ([
        "author" : "Pallando",
        "time"   : 745550000,
        "links"  : ([ "hypertext" : "help.hypertext",
                      "memopad"   : "help.memopad"    ]),
        "type"   : "text",
        "data"   : @EndText
HOME PAGE                     (start)                       HOME PAGE

Welcome to Pallando's hypertext memo pad.

You will always start at this item on entering the memo pad, however
you may use the "e" option to customise it.  For help on the options
just type "h".  For help on {hypertext} or the {memopad} just type
"hypertext" or "memopad".  The curly brackets around the words on
the above line indicate that there are links from this item to other
items which you can go to by typing the bracketed word.

EndText
    ]);
    data["help.hypertext"] = ([
        "author" : "Pallando",
        "time"   : 745550000,
        "links"  : ([ "memopad" : "help.memopad" ]),
        "sknil"  : ([ "help.memopad" : "hypertext",
                      "start"        : "hypertext"  ]),
        "type"   : "text",
        "data"   : @EndText
HELP PAGE                  (help.hypertext)                 HELP PAGE

Hypertext is a way of organising text in a non-linear way. 

This means that instead of a book being divided into items that
are arranged one after another in a fixed order, the items can
chose several other items that are of linked subjects any of
which the user can then chose to go to.

It is up to you how structured to make your links, but done properly
hypertext is a powerful tool for thought organisation and lateral thinking.

See also: {memopad}
EndText
    ]);
    data["help.memopad"] = ([
        "author" : "Pallando",
        "time"   : 745550000,
        "links"  : ([ "hypertext" : "help.hypertext",
                      "man"       : "man.save_object" ]),
        "sknil"  : ([ "help.hypertext" : "memopad",
                      "start"          : "memopad", ]),
        "type"   : "text",
        "data"   : @EndText
HELP PAGE                   (help.memopad)                  HELP PAGE

This object is an example of {hypertext}.  It may eventually become a
full filofax, with a diary linked to the event daemon, but in the
mean time, you can use it for storing miscelaneous text that you 
want to cross reference, such as memorandi.

For example, if you had several bugs you wished to remind yourself
to fix, you could give each bug an item, cross reference the ones
with similarities and link in the relevant {man} pages.

EndText
    ]);
    data["man.save_object"] = ([
        "author" : "Pallando",
        "time"   : 745550000,
        "sknil"  : ([ "help.memopad" : "man" ]),
        "type"   : "file",
        "data"   : "/doc/functions/efuns/save_object.3",
    ]);
}

void create()
{
    if( !directory_exists( user_path( geteuid( this_player() ) ) ) )
    {
        write( "Sorry, you need a user directory.\n" );
        destruct( this_object() );
        return;
    }
    seteuid( geteuid( previous_object() ) );
    ::create();
    if( !data["start"] || ( data["start"]["time"] < 745550000 ) )
        memo_pad_set_up();
    set( "id", ({ "memopad", "memo", "memo pad", "pad" }) );
    set( "name", "memopad" );
    set( "start", "memo" );
    set( "short", this_player()-> query( "cap_name" ) + "'s memo pad" );
    set( "long", @EndText
A large loose-leaf book, bound in soft red leather.
Type "memo" to use.
EndText
    );
}

mixed query_auto_load() { return 1; }

int move( mixed dest )
{
    if( environment( this_object() ) ) return MOVE_NOT_ALLOWED;
    if( stringp( dest ) ) dest = find_object_or_load( dest );
    if( !objectp( dest ) ) return MOVE_NOT_ALLOWED;
    if( !wizardp( dest ) ) return MOVE_NOT_ALLOWED;
    if( present( "memopad", dest ) )
    {
        write( "\nYou already have a memopad.\n" );
        destruct( this_object() );
        return MOVE_NOT_ALLOWED;
    }
    return ::move( dest );
}