/* Do not remove the headers from this file! see /USAGE for more info. */

#define need(x) badness += x + " is required for LIMA libs.\n"

#define FOOTER "**********************************************************\n"
#define IMPOSSIBLE_TO_MISS_HEADER \
               FOOTER \
               "* You have incorrectly compiled the MudOS driver.  This  *\n" \
               "* driver is not compatible with the LIMA mudlib.  Please *\n" \
               "* make the following changes to 'options.h' (or          *\n" \
               "* 'local_options' if it exists) in the driver source,    *\n" \
               "* and recompile.                                         *\n" \
               FOOTER

protected
void create() {
    string badness = "";
    string version = __VERSION__;

    switch (version[0..8]) {
    case "MudOS 0.9":
    case "MudOS v20":
    case "MudOS v21":
        badness += "This MudOS driver is too old to run the Lima mudlib.  Using the driver packaged with the lib, or a more recent one, is suggested.\n";
    }

    if ( mud_name() == "Your Mud's name here" )
	badness += "You must change your mud's name in config.lima\n";

#ifndef __SANE_EXPLODE_STRING__
    need("#define SANE_EXPLODE_STRING");
#endif
#ifdef __CAST_CALL_OTHERS__
    need("#undef CAST_CALL_OTHERS");
#endif
#ifndef __NO_LIGHT__
    need("#define NO_LIGHT");
#endif
#ifndef __NO_ADD_ACTION__
    need("#define NO_ADD_ACTION");
#endif
#ifdef __NO_ENVIRONMENT__
    need("#undef NO_ENVIRONMENT");
#endif
#ifndef __NO_WIZARDS__
    need("#define NO_WIZARDS");
#endif
#ifdef __OLD_RANGE_BEHAVIOR__
    need("#undef OLD_RANGE_BEHAVIOR");
#endif
#ifdef __OLD_ED__
    need("#undef OLD_ED");
#endif
#ifndef __MUDLIB_ERROR_HANDLER__
    need("#define MUDLIB_ERROR_HANDLER");
#endif
#ifndef __ARRAY_RESERVED_WORD__
    need("#define ARRAY_RESERVED_WORD");
#endif
#ifndef __PACKAGE_CONTRIB__
    need("#define PACKAGE_CONTRIB");
#endif
#ifndef __PACKAGE_PARSER__
    need("#define PACKAGE_PARSER");
#endif
#ifdef __PACKAGE_UIDS__
    need("#undef PACKAGE_UIDS");
#endif

    if (strlen(badness))
	error("Bad driver configuration:\n" + IMPOSSIBLE_TO_MISS_HEADER + badness + FOOTER);
}
