============================================================================

%^CYAN%^%^BOLD%^-----< The static variable qualifier >-----

Static variables must be global variables. Global variables are variables 
defined outside of any function in the file. These variables are visible and 
usable in all functions defined later in the file than they are, so their 
scope is object-wide rather than limited to one function. 

It is possible to save the global variables of an object with a function 
called save_object and restore them with restore_object. If a global variable 
is declared as static, it is not saved or restored along with the others. 
LPC doesn't particularly recommend using save_object anyway -- it's better 
to use statedumps or some other form of structured storage in most cases. 

static string   TempName;  /* An example of a non-saved global variable. */
    
%^CYAN%^%^BOLD%^-----< The static function qualifier >-----

A function that is declared static can not be called using external 
calls (call_other), only internal. This makes the function invisible 
and inaccessable to other objects. Child classes of the object may call 
the object's static functions, so be sure to take that into account. 
Functions that check the caller with previous_program() may be better 
for security purposes. You can also combine the two approaches. 
Since you can't call a static function with call_other() from another 
object, you also can't call it with object->func() syntax, since that's 
equivalent to call_other(). If the static function is later masked 
(see the 'nomask' function modifier for details on masking), the call 
won't be redirected as usual. 

===============================================================================

Ironman
