DESOLATION

Help manual · Coding

Input handling

INPUT HANDLING

Written by Deathblade, 4-Sep-94.

[ note: I’m still working on this, but this should serve as a

 quick description of input handling until I can get this completed. ]

GUElib uses an input system that is quite a bit different from most other mudlibs. There are two main changes: the parser and the modal input system. The input system is discussed here, see /doc/std/parser for more information on the GUElib parser.

The objective of the input system is to deal with nested input modes. A classic example is performing a “more” from within another. On many muds, this will fail due to the non-reentrant usage of input_to() and non-reentrancy in whatever is performing the “more” functionality (it is quite common to have the player object perform this function and it is usually done with non-reentrant code).

The new input system centers around three functions on the player object:

 void modal_push(string func, int secure)
 void modal_pop()
 void modal_func(string func, int secure)

The first function sets up the calling object as a modal input handler. All input will then be passed to the given function until a modal_pop() is sent. The function receiving the input may be changed with the modal_func() function. Both modal_push() and modal_func() take a second parameter indicating whether the input should be hidden (as in a password).

    1. need more here. discuss MORE_OB and EDIT_OB as helpful pieces
    2. of code.
    1. Beek: This *really* needs a few examples of how to do simple

things so we don’t have to pile through tons of docs just to do the equivalent of input_to :)

-Beek

Category:Coding