ldmud-3.2.9/doc/
ldmud-3.2.9/doc/efun/
ldmud-3.2.9/mud/
ldmud-3.2.9/mud/heaven7/
ldmud-3.2.9/mud/heaven7/lib/
ldmud-3.2.9/mud/lp-245/
ldmud-3.2.9/mud/lp-245/banish/
ldmud-3.2.9/mud/lp-245/doc/
ldmud-3.2.9/mud/lp-245/doc/examples/
ldmud-3.2.9/mud/lp-245/doc/sefun/
ldmud-3.2.9/mud/lp-245/log/
ldmud-3.2.9/mud/lp-245/obj/Go/
ldmud-3.2.9/mud/lp-245/players/lars/
ldmud-3.2.9/mud/lp-245/room/death/
ldmud-3.2.9/mud/lp-245/room/maze1/
ldmud-3.2.9/mud/lp-245/room/sub/
ldmud-3.2.9/mud/lp-245/secure/
ldmud-3.2.9/mud/morgengrauen/
ldmud-3.2.9/mud/morgengrauen/lib/
ldmud-3.2.9/mud/sticklib/
ldmud-3.2.9/mud/sticklib/src/
ldmud-3.2.9/mudlib/uni-crasher/
ldmud-3.2.9/pkg/
ldmud-3.2.9/pkg/debugger/
ldmud-3.2.9/pkg/diff/
ldmud-3.2.9/pkg/misc/
ldmud-3.2.9/src/autoconf/
ldmud-3.2.9/src/bugs/
ldmud-3.2.9/src/bugs/MudCompress/
ldmud-3.2.9/src/bugs/b-020916-files/
ldmud-3.2.9/src/bugs/doomdark/
ldmud-3.2.9/src/bugs/ferrycode/ferry/
ldmud-3.2.9/src/bugs/ferrycode/obj/
ldmud-3.2.9/src/bugs/psql/
ldmud-3.2.9/src/done/
ldmud-3.2.9/src/done/order_alist/
ldmud-3.2.9/src/done/order_alist/obj/
ldmud-3.2.9/src/done/order_alist/room/
ldmud-3.2.9/src/gcc/
ldmud-3.2.9/src/gcc/2.7.0/
ldmud-3.2.9/src/gcc/2.7.1/
ldmud-3.2.9/src/hosts/
ldmud-3.2.9/src/hosts/GnuWin32/
ldmud-3.2.9/src/hosts/amiga/NetIncl/
ldmud-3.2.9/src/hosts/amiga/NetIncl/netinet/
ldmud-3.2.9/src/hosts/amiga/NetIncl/sys/
ldmud-3.2.9/src/hosts/i386/
ldmud-3.2.9/src/hosts/msdos/byacc/
ldmud-3.2.9/src/hosts/msdos/doc/
ldmud-3.2.9/src/hosts/os2/
ldmud-3.2.9/src/hosts/win32/
ldmud-3.2.9/src/util/
ldmud-3.2.9/src/util/erq/
ldmud-3.2.9/src/util/indent/hosts/next/
ldmud-3.2.9/src/util/xerq/
ldmud-3.2.9/src/util/xerq/lpc/
ldmud-3.2.9/src/util/xerq/lpc/www/
Date:    28.09.99 07:07
From:    sark@oberon.krans.com
To:      lars@bearnip.com
Short: Various bugs
Type: Rejected.
State: New

These are bugs/features which exists in the LPmud Amylaar driver 03.02@316
and 03.02.1@130 running in COMPAT MODE.

--------------------------------<10>---------------------------------------
This is not a bug, but it is probably worth noting that if you try and
overload an efun, in module which inherits another module, then inherited
module will not use the overloaded function unless you declare a prototype
for the function in it.

For example, if you have 2 modules A and B:

    // Module A
    // File: /obj/modules/a

    wake_cmd(str) {
    object ob;

        if (!str || !(ob=find_living(str)))
            return notify_fail("Usage: wake <player>\n");

        tell_object(ob, "BEEP! BEEP!\n");
        write("Ok.\n");
        return 1;
    }

    // Module B
    // File: /obj/modules/b

    inherit "obj/modules/a";

    notify_fail(string msg) {
        write(msg);
    }

    echo_cmd(str) {
        if (!str)
            return notify_fail("Usage: echo <message>\n");

        say(str);
        write("Ok.\n");
        return 1;
    }

    init() {
        add_action("wake_cmd", "wake");
        add_action("echo_cmd", "echo");
    }

Now if you clone module B, and you use the WAKE command, without any
arguments, you will get the error message:

     Usage: wake <player>

However when you use the ECHO command, without any arguments, you will
get the error message:

     Usage: echo <message>

follow by a 'What?'

In order to use the overloaded efun consistently in both modules, you
should declare at the top of module A

     void notify_fail();

If notify_fail() was not an efun, however, you would not need to do this,
and the commands, in both modules, would behave in the same way