SYNOPSIS
        void reset()

DESCRIPTION
        The H_RESET hook defines the function or closure to be called
        when the driver needs to reset an object. In older drivers
        this was hardwired to the lfun reset(), and a lot of hook
        implementations still follow this tradition.

        reset() will be called only in objects that have been used
        since the last call to reset(), i.e. a function in them was
        called (other than reset() or clean_up()), or it was moved
        around.

        This function can be used to reset the state of the object or
        do some checks or what ever. The game wouldn't be fun if no
        challenges remained.

HISTORY
        LDMud 3.2.1 allowed any other lfun to be called.
        LDMud 3.6.5 removed the argument given.

SEE ALSO
        clean_up(A), heart_beat(A), call_out(E), create(A), __INIT(A),
        reset(H), hooks(C), initialisation(M), native(C)
