Simulated efuns There is a mechanism to simulate efuns. All simulated efuns have to be defined in a special file (which can be anywhere). The function 'string get_simul_efun()' has to be defined in master.c to return the name of this file, as well as loading it. If this function returns 0 or is non-existing, then no automatic simulation of efuns will take place. When compiling an object and a function call is found that has not been defined locally, then it is either an efun or an undefined function. If this function is defined in the file of simulated efuns, then there will be a call_other set up to this function. That means that the function will behave as if it was an efun. The type result of the call_other does not have to be casted, but will automatically be set by the compiler. This file of simulated efuns are examined by the game driver at startup of the game. All functions and the types of them are stored then to speed up later references. This means that it is possible to modify this file and reload it. But, changing the number of functions or the type definitions of them will not affect the compiler. The idea of these simulated efuns are several. One is that it is now possible to do major changes (and even removals) of efuns, to be replaced by a simulated efun. A function declared as static will never be called automatically.