ds2.10/bin/
ds2.10/extra/
ds2.10/extra/crat/
ds2.10/extra/creremote/
ds2.10/extra/mingw/
ds2.10/extra/wolfpaw/
ds2.10/fluffos-2.16-ds05/
ds2.10/fluffos-2.16-ds05/Win32/
ds2.10/fluffos-2.16-ds05/compat/
ds2.10/fluffos-2.16-ds05/compat/simuls/
ds2.10/fluffos-2.16-ds05/include/
ds2.10/fluffos-2.16-ds05/testsuite/
ds2.10/fluffos-2.16-ds05/testsuite/clone/
ds2.10/fluffos-2.16-ds05/testsuite/command/
ds2.10/fluffos-2.16-ds05/testsuite/data/
ds2.10/fluffos-2.16-ds05/testsuite/etc/
ds2.10/fluffos-2.16-ds05/testsuite/include/
ds2.10/fluffos-2.16-ds05/testsuite/inherit/
ds2.10/fluffos-2.16-ds05/testsuite/inherit/master/
ds2.10/fluffos-2.16-ds05/testsuite/log/
ds2.10/fluffos-2.16-ds05/testsuite/single/
ds2.10/fluffos-2.16-ds05/testsuite/single/tests/compiler/
ds2.10/fluffos-2.16-ds05/testsuite/single/tests/efuns/
ds2.10/fluffos-2.16-ds05/testsuite/single/tests/operators/
ds2.10/fluffos-2.16-ds05/testsuite/u/
ds2.10/lib/cmds/admins/
ds2.10/lib/cmds/common/
ds2.10/lib/cmds/creators/include/
ds2.10/lib/daemon/services/
ds2.10/lib/daemon/tmp/
ds2.10/lib/doc/
ds2.10/lib/doc/bguide/
ds2.10/lib/doc/efun/all/
ds2.10/lib/doc/efun/arrays/
ds2.10/lib/doc/efun/buffers/
ds2.10/lib/doc/efun/compile/
ds2.10/lib/doc/efun/floats/
ds2.10/lib/doc/efun/functions/
ds2.10/lib/doc/efun/general/
ds2.10/lib/doc/efun/mixed/
ds2.10/lib/doc/efun/numbers/
ds2.10/lib/doc/efun/parsing/
ds2.10/lib/doc/help/classes/
ds2.10/lib/doc/help/races/
ds2.10/lib/doc/lfun/
ds2.10/lib/doc/lfun/all/
ds2.10/lib/doc/lfun/lib/abilities/
ds2.10/lib/doc/lfun/lib/armor/
ds2.10/lib/doc/lfun/lib/bank/
ds2.10/lib/doc/lfun/lib/bot/
ds2.10/lib/doc/lfun/lib/clay/
ds2.10/lib/doc/lfun/lib/clean/
ds2.10/lib/doc/lfun/lib/clerk/
ds2.10/lib/doc/lfun/lib/client/
ds2.10/lib/doc/lfun/lib/combat/
ds2.10/lib/doc/lfun/lib/connect/
ds2.10/lib/doc/lfun/lib/container/
ds2.10/lib/doc/lfun/lib/corpse/
ds2.10/lib/doc/lfun/lib/creator/
ds2.10/lib/doc/lfun/lib/daemon/
ds2.10/lib/doc/lfun/lib/damage/
ds2.10/lib/doc/lfun/lib/deterioration/
ds2.10/lib/doc/lfun/lib/donate/
ds2.10/lib/doc/lfun/lib/door/
ds2.10/lib/doc/lfun/lib/equip/
ds2.10/lib/doc/lfun/lib/file/
ds2.10/lib/doc/lfun/lib/fish/
ds2.10/lib/doc/lfun/lib/fishing/
ds2.10/lib/doc/lfun/lib/flashlight/
ds2.10/lib/doc/lfun/lib/follow/
ds2.10/lib/doc/lfun/lib/ftp_client/
ds2.10/lib/doc/lfun/lib/ftp_data_connection/
ds2.10/lib/doc/lfun/lib/fuel/
ds2.10/lib/doc/lfun/lib/furnace/
ds2.10/lib/doc/lfun/lib/genetics/
ds2.10/lib/doc/lfun/lib/holder/
ds2.10/lib/doc/lfun/lib/id/
ds2.10/lib/doc/lfun/lib/interactive/
ds2.10/lib/doc/lfun/lib/lamp/
ds2.10/lib/doc/lfun/lib/leader/
ds2.10/lib/doc/lfun/lib/light/
ds2.10/lib/doc/lfun/lib/limb/
ds2.10/lib/doc/lfun/lib/living/
ds2.10/lib/doc/lfun/lib/load/
ds2.10/lib/doc/lfun/lib/look/
ds2.10/lib/doc/lfun/lib/manipulate/
ds2.10/lib/doc/lfun/lib/meal/
ds2.10/lib/doc/lfun/lib/messages/
ds2.10/lib/doc/lfun/lib/player/
ds2.10/lib/doc/lfun/lib/poison/
ds2.10/lib/doc/lfun/lib/position/
ds2.10/lib/doc/lfun/lib/post_office/
ds2.10/lib/doc/lfun/lib/potion/
ds2.10/lib/doc/lfun/lib/room/
ds2.10/lib/doc/lfun/lib/server/
ds2.10/lib/doc/lfun/lib/spell/
ds2.10/lib/doc/lfun/lib/torch/
ds2.10/lib/doc/lfun/lib/vendor/
ds2.10/lib/doc/lfun/lib/virt_sky/
ds2.10/lib/doc/lfun/lib/weapon/
ds2.10/lib/doc/lfun/lib/worn_storage/
ds2.10/lib/doc/lpc/constructs/
ds2.10/lib/doc/lpc/etc/
ds2.10/lib/doc/lpc/intermediate/
ds2.10/lib/doc/lpc/types/
ds2.10/lib/doc/misc/
ds2.10/lib/doc/old/
ds2.10/lib/doc/phints/
ds2.10/lib/domains/
ds2.10/lib/domains/Praxis/adm/
ds2.10/lib/domains/Praxis/attic/
ds2.10/lib/domains/Praxis/cemetery/mon/
ds2.10/lib/domains/Praxis/data/
ds2.10/lib/domains/Praxis/death/
ds2.10/lib/domains/Praxis/mountains/
ds2.10/lib/domains/Praxis/obj/armour/
ds2.10/lib/domains/Praxis/obj/magic/
ds2.10/lib/domains/Praxis/obj/weapon/
ds2.10/lib/domains/Praxis/orc_valley/
ds2.10/lib/domains/Ylsrim/
ds2.10/lib/domains/Ylsrim/adm/
ds2.10/lib/domains/Ylsrim/armor/
ds2.10/lib/domains/Ylsrim/broken/
ds2.10/lib/domains/Ylsrim/fish/
ds2.10/lib/domains/Ylsrim/meal/
ds2.10/lib/domains/Ylsrim/npc/
ds2.10/lib/domains/Ylsrim/obj/
ds2.10/lib/domains/Ylsrim/virtual/
ds2.10/lib/domains/Ylsrim/weapon/
ds2.10/lib/domains/alpha/room/
ds2.10/lib/domains/alpha/virtual/
ds2.10/lib/domains/campus/adm/
ds2.10/lib/domains/campus/etc/
ds2.10/lib/domains/campus/meals/
ds2.10/lib/domains/campus/txt/ai/charles/
ds2.10/lib/domains/campus/txt/ai/charles/bak2/
ds2.10/lib/domains/campus/txt/ai/charles/bak2/bak1/
ds2.10/lib/domains/campus/txt/ai/charly/
ds2.10/lib/domains/campus/txt/ai/charly/bak/
ds2.10/lib/domains/campus/txt/jenny/
ds2.10/lib/domains/cave/doors/
ds2.10/lib/domains/cave/etc/
ds2.10/lib/domains/cave/meals/
ds2.10/lib/domains/cave/weap/
ds2.10/lib/domains/default/chamber/
ds2.10/lib/domains/default/creator/
ds2.10/lib/domains/default/doors/
ds2.10/lib/domains/default/etc/
ds2.10/lib/domains/default/vehicle/
ds2.10/lib/domains/default/virtual/
ds2.10/lib/domains/town/save/
ds2.10/lib/domains/town/txt/shame/
ds2.10/lib/domains/town/virtual/
ds2.10/lib/domains/town/virtual/bottom/
ds2.10/lib/domains/town/virtual/space/
ds2.10/lib/estates/
ds2.10/lib/ftp/
ds2.10/lib/lib/comp/
ds2.10/lib/lib/daemons/
ds2.10/lib/lib/daemons/include/
ds2.10/lib/lib/lvs/
ds2.10/lib/lib/user/
ds2.10/lib/lib/virtual/
ds2.10/lib/log/
ds2.10/lib/log/adm/
ds2.10/lib/log/archive/
ds2.10/lib/log/chan/
ds2.10/lib/log/errors/
ds2.10/lib/log/law/adm/
ds2.10/lib/log/law/email/
ds2.10/lib/log/law/names/
ds2.10/lib/log/law/sites-misc/
ds2.10/lib/log/law/sites-register/
ds2.10/lib/log/law/sites-tempban/
ds2.10/lib/log/law/sites-watch/
ds2.10/lib/log/open/
ds2.10/lib/log/reports/
ds2.10/lib/log/router/
ds2.10/lib/log/secure/
ds2.10/lib/log/watch/
ds2.10/lib/obj/book_source/
ds2.10/lib/obj/include/
ds2.10/lib/powers/prayers/
ds2.10/lib/powers/spells/
ds2.10/lib/realms/template/
ds2.10/lib/realms/template/adm/
ds2.10/lib/realms/template/area/
ds2.10/lib/realms/template/area/armor/
ds2.10/lib/realms/template/area/npc/
ds2.10/lib/realms/template/area/obj/
ds2.10/lib/realms/template/area/room/
ds2.10/lib/realms/template/area/weap/
ds2.10/lib/realms/template/bak/
ds2.10/lib/realms/template/cmds/
ds2.10/lib/save/kills/o/
ds2.10/lib/secure/cfg/classes/
ds2.10/lib/secure/cmds/builders/
ds2.10/lib/secure/cmds/creators/include/
ds2.10/lib/secure/cmds/players/include/
ds2.10/lib/secure/daemon/imc2server/
ds2.10/lib/secure/daemon/include/
ds2.10/lib/secure/lib/
ds2.10/lib/secure/lib/include/
ds2.10/lib/secure/lib/net/include/
ds2.10/lib/secure/lib/std/
ds2.10/lib/secure/log/adm/
ds2.10/lib/secure/log/bak/
ds2.10/lib/secure/log/intermud/
ds2.10/lib/secure/log/network/
ds2.10/lib/secure/modules/
ds2.10/lib/secure/npc/
ds2.10/lib/secure/obj/include/
ds2.10/lib/secure/room/
ds2.10/lib/secure/save/
ds2.10/lib/secure/save/backup/
ds2.10/lib/secure/save/boards/
ds2.10/lib/secure/save/players/g/
ds2.10/lib/secure/tmp/
ds2.10/lib/secure/upgrades/files/
ds2.10/lib/secure/verbs/creators/
ds2.10/lib/std/board/
ds2.10/lib/std/lib/
ds2.10/lib/verbs/admins/include/
ds2.10/lib/verbs/builders/
ds2.10/lib/verbs/common/
ds2.10/lib/verbs/common/include/
ds2.10/lib/verbs/creators/
ds2.10/lib/verbs/creators/include/
ds2.10/lib/verbs/rooms/
ds2.10/lib/verbs/rooms/include/
ds2.10/lib/www/client/
ds2.10/lib/www/errors/
ds2.10/lib/www/images/
ds2.10/win32/
#include <lib.h>
#include <daemons.h>
#include <message_class.h>
#include <vision.h>
#include <medium.h>
#include <position.h>

private static mixed globaltmp, tmp;
private static string desc, smell, sound, touch;
private static int i, maxi;

void eventDescribeEnvironment(int brief){
    object env, transport;
    string *shorts;
    string altern_obvious = "";

    if(!(env = environment(this_object()))){
        this_object()->eventPrint("You are nowhere.", MSG_ROOMDESC);
        return;
    }

    if(env->GetMount() || base_name(env) == LIB_CORPSE){ 
        env = environment(environment(this_player()));
        if(!env){
            this_object()->eventPrint("You are in serious trouble. Ask an admin for help.");
            return;
        }
        i = this_object()->GetEffectiveVision(env); 
    }

    else i =  this_object()->GetEffectiveVision();
    switch( i ){
        case VISION_BLIND:
            this_object()->eventPrint("You are blind and can see nothing.");
            break;
        case VISION_TOO_DARK:
            this_object()->eventPrint("It is much too dark to see.");
            break;
        case VISION_DARK:
            this_object()->eventPrint("It is too dark to see.");
            break;
        case VISION_TOO_BRIGHT:
            this_object()->eventPrint("It is much too %^YELLOW%^bright%^RESET%^ to see.");
            break;
        case VISION_BRIGHT:
            this_object()->eventPrint("It is too %^YELLOW%^bright%^RESET%^ to see.");
            break;
    }
    if( !brief ){
        if( i == VISION_CLEAR ){
            desc = (string)env->GetObviousExits() || "";
            if(desc && desc != "")
                desc = capitalize((string)env->GetShort() || "")
                    + " [" + desc + "]\n";
            else desc = capitalize((string)env->GetShort()+"\n" || "\n");
            if(!NM_STYLE_EXITS){
                desc = capitalize((string)env->GetShort()+"\n" || "\n");
                altern_obvious = "Obvious exit$Q: "+(string)env->GetObviousExits() || "none";
            }
        }
        else desc = "\n";
        if( i == VISION_CLEAR || i == VISION_LIGHT || i == VISION_DIM ){
#ifdef MINIMAP
            if(this_object()->GetProperty("minimapping")){ 
                desc += simple_map(env)+"\n"; 
            }
#endif
#if (WIZMAP && GRID)
            if(MASTER_D->GetPerfOK() && 
                    this_object()->GetProperty("wizmapping")){ 
                desc += MAP_D->GetMap(environment(this_object()),6)+"\n"; 
            }
#endif
            desc += (string)env->GetLong();
        }
        if(functionp(tmp = (mixed)env->GetSmell("default")))
            tmp = (string)(*tmp)("default");
        smell = tmp;
        if(functionp(tmp = (mixed)env->GetListen("default")))
            tmp = (string)(*tmp)("default");
        sound = tmp;
        if( functionp(tmp = (mixed)env->GetTouch("default")) )
            tmp = evaluate(tmp, "default");
        touch = tmp;
    }
    else {
        if(i == VISION_CLEAR || i == VISION_LIGHT || i == VISION_DIM){
            desc = (string)env->GetShort();
            if(this_object()->GetProperty("minimapping")) desc += simple_map(env)+"\n";
            if(NM_STYLE_EXITS){
                if( (tmp = (string)env->GetObviousExits()) && tmp != "" )
                    desc += " [" + tmp + "]";
                else desc += "\n";
            }
            else altern_obvious = "Obvious exits: "+(string)env->GetObviousExits() || "none";
        }
        else desc = "\n";
    }
    if( desc ) this_object()->eventPrint(desc, MSG_ROOMDESC);
    if(sizeof(altern_obvious)){
        int quant = sizeof(env->GetExits()) + sizeof(env->GetEnters());
        if(quant > 1) altern_obvious = replace_string(altern_obvious,"$Q","s");
        else altern_obvious = replace_string(altern_obvious,"$Q","");
        this_object()->eventPrint(altern_obvious,MSG_ROOMDESC);
    }
    if( smell ) this_object()->eventPrint("%^GREEN%^" + smell, MSG_ROOMDESC);
    if( sound ) this_object()->eventPrint("%^CYAN%^" + sound, MSG_ROOMDESC);
    if( touch ) this_object()->eventPrint("%^YELLOW%^" + touch, MSG_ROOMDESC);
    desc = "";
    if( i == VISION_CLEAR ){
        mapping lying = ([]);
        shorts = map(filter(all_inventory(env),
                    function(object ob){
                    if( living(ob) ) return 0;
                    if( (int)ob->GetInvis(this_object()) && !ob->GetDoor() )
                    return 0;
                    if(ob->GetDoor() && load_object(ob->GetDoor())->GetHiddenDoor()) return 0;
                    if( (int)ob->isFreshCorpse() ) return 0;
                    return 1;
                    }), (: (string)$1->GetShort() :));
        foreach(string s in shorts){
            if( s ){
                lying[s]++;
            }
        }
        for(i=0, desc = 0, maxi = sizeof(shorts = keys(lying)); i<maxi; i++){
            string key = replace_string(shorts[i],"%^RESET%^",
                    "%^RESET%^MAGENTA%^");
            int val = lying[shorts[i]];

            if( val < 2 ){
                if( !desc ) desc = "%^MAGENTA%^" +
                    capitalize(key) + "%^RESET%^MAGENTA%^";
                else desc += key + "%^RESET%^MAGENTA%^";
            }
            else {
                if( !desc ) desc = "%^MAGENTA%^" +
                    capitalize(consolidate(val, key)) +
                        "%^RESET%^MAGENTA%^";
                else desc += consolidate(val, key) +
                    "%^RESET%^MAGENTA%^";
            }
            if( i == maxi - 1 ){
                if( maxi > 1 || val >1 )
                    desc += " are here.%^RESET%^\n";
                else desc += " is here.%^RESET%^\n";
            }
            else if( i == maxi - 2 ){
                if( maxi == 2 ){
                    desc += " and ";
                }
                else {
                    desc += ", and ";
                }
            }
            else desc += ", ";
        }
    }
    i = this_object()->GetEffectiveVision(env);
    if( i == VISION_CLEAR || i == VISION_LIGHT || i == VISION_DIM ){
        mapping lying = ([]), sitting = ([]), standing = ([]), flying = ([]);
        mapping floating = ([]), kneeling = ([]), swimming = ([]);
        mapping furniture = ([]), null = ([]);
        object mount;
        object *obs;
        string key;
        int val;
        if(this_player()) mount = this_player()->GetProperty("mount");

        obs = filter(all_inventory(env), function(object ob){
                if( (int)ob->GetInvis(this_object()) &&
                    !this_object()->GetWizVision() ) return 0;
                if( living(ob) ) return 1;
                if( (int)ob->isFreshCorpse() )
                return 1;
                }) - ({ this_object(), mount });
        maxi = sizeof(shorts = map(obs, (: 
                        ($1->GetInvis() ? "(invisible) " : "") + 
                        (string)$1->GetHealthShort() :)));
        foreach(object liv in obs){
            int envtype = environment(liv)->GetMedium();
            string s = (string)liv->GetHealthShort();
            int pos = (int)liv->GetPosition();
            if( !s ) continue;
            if(liv->GetInvis() && this_object()->GetWizVision()){
                s = "(invis) " + s;
            }
            if(liv->GetProperty("furniture")){
                s += "BEGIN"+random(999999)+"END";
            }
            if(liv->GetProperty("furniture")){ 
                furniture[s] = liv->GetProperty("furniture");
            }
            else if(!furniture[s]) furniture[s] = 0;

            if( pos == POSITION_STANDING) standing[s]++;
            else if( pos == POSITION_LYING || 
                    ((int)liv->isFreshCorpse() && envtype == MEDIUM_LAND) )
                lying[s]++;
            else if( pos == POSITION_SITTING ) sitting[s]++;
            else if( pos == POSITION_FLYING ) flying[s]++;
            else if( pos == POSITION_FLOATING ||
                    ((int)liv->isFreshCorpse() && envtype != MEDIUM_LAND) )
                floating[s]++;
            else if( pos == POSITION_SWIMMING ) swimming[s]++;
            else if( pos == POSITION_KNEELING ) kneeling[s]++;
            else if( pos == POSITION_NULL ) null[s]++;
            else lying[s]++;
        }
        if( !desc ){
            tmp = "";
        }
        else {
            tmp = desc;
        }
        desc = "";
        foreach(key, val in lying){
            globaltmp = key;
            if(grepp(key,"BEGIN")){
                sscanf(key,"%sBEGIN%*s",key);
            }

            if(lying[globaltmp]>1 && !furniture[globaltmp]){
                desc += capitalize(consolidate(val, globaltmp)) +
                    "%^RESET%^ are lying down.";
            }
            else if(lying[globaltmp]<2 && !furniture[globaltmp]){
                desc += capitalize(key) + "%^RESET%^ is lying down.";
            }
            else if(furniture[globaltmp]){
                desc += capitalize(key) + "%^RESET%^ is lying down"+
                    ((furniture[globaltmp]) ? furniture[globaltmp] : "") +".";
            }
            else if(furniture[key]){
                desc += capitalize(key) + "%^RESET%^ is lying down"+
                    ((furniture[key]) ? furniture[key] : "") +".";
            }


            else {
                desc += "wtf. i am "+key+", furniture["+globaltmp+"] is: "+furniture[globaltmp]+"\n"+
                    "  furniture["+key+"] is: "+furniture[key]+", and val is: "+val;
            }

            desc += "\n";
        }
        foreach(key, val in sitting){
            globaltmp = key;
            if(grepp(key,"BEGIN")){
                sscanf(key,"%sBEGIN%*s",key);
            }

            if(sitting[globaltmp]>1 && !furniture[globaltmp]){
                desc += capitalize(consolidate(val, globaltmp)) +
                    "%^RESET%^ are sitting down.";
            }
            else if(sitting[globaltmp]<2 && !furniture[globaltmp]){
                desc += capitalize(key) + "%^RESET%^ is sitting down.";
            }
            else if(furniture[globaltmp]){
                desc += capitalize(key) + "%^RESET%^ is sitting down"+
                    ((furniture[globaltmp]) ? furniture[globaltmp] : "") +".";
            }
            else if(furniture[key]){
                desc += capitalize(key) + "%^RESET%^ is sitting down"+
                    ((furniture[key]) ? furniture[key] : "") +".";
            }


            else {
                desc += "wtf. i am "+key+", furniture["+globaltmp+"] is: "+furniture[globaltmp]+"\n"+
                    "  furniture["+key+"] is: "+furniture[key]+", and val is: "+val;
            }
            desc += "\n";
        }
        foreach(key, val in standing){
            if(grepp(key,"BEGIN")){
                sscanf(key,"%sBEGIN%*s",key);
            }
            if( val<2 )
                desc += capitalize(key) + "%^RESET%^ is standing here.";
            else desc += capitalize(consolidate(val, key)) +
                "%^RESET%^ are standing here.";
            desc += "\n";
        }
        foreach(key, val in flying){
            if( val<2 )
                desc += capitalize(key) + "%^RESET%^ is hovering here.";
            else desc += capitalize(consolidate(val, key)) +
                "%^RESET%^ are hovering here.";
            desc += "\n";
        }
        foreach(key, val in floating){
            if( val<2 )
                desc += capitalize(key) + "%^RESET%^ is floating here.";
            else desc += capitalize(consolidate(val, key)) +
                "%^RESET%^ are floating here.";
            desc += "\n";
        }
        foreach(key, val in swimming){
            if( val<2 )
                desc += capitalize(key) + "%^RESET%^ is swimming here.";
            else desc += capitalize(consolidate(val, key)) +
                "%^RESET%^ are swimming here.";
            desc += "\n";
        }
        foreach(key, val in kneeling){
            if( val<2 )
                desc += capitalize(key) + "%^RESET%^ is kneeling here.";
            else desc += capitalize(consolidate(val, key)) +
                "%^RESET%^ are kneeling here.";
            desc += "\n";
        }
        foreach(key, val in null){
            if( val<2 )
                desc += capitalize(key) + "%^RESET%^ is here.";
            else desc += capitalize(consolidate(val, key)) +
                "%^RESET%^ are here.";
            desc += "\n";
        }
    }
    if( tmp ){
        desc = tmp + desc;
    }
    if(this_player() && transport = this_player()->GetProperty("mount")){
        string mount_inv = "Nothing";
        string *mount_stuffs = ({});
        object *mount_obs = filter( all_inventory(transport),
                (: ( (($1->GetInvis()) && this_object()->GetWizVision() )
                     || !($1->GetInvis()) ) 
                 && !($1 == this_player()) :));
        if(sizeof(mount_obs)){
            foreach(object element in mount_obs){
                mount_stuffs += ({ element->GetShort() });
            }
            mount_inv = conjunction(mount_stuffs);
        }
        if(!sizeof(desc)) desc = "";
        if(inherits(LIB_VEHICLE,transport)){
            string tmpdesc = transport->GetVehicleInterior();
            if(!tmpdesc || !sizeof(tmpdesc)){ 
                desc += "\nYou are riding in "+
                    transport->GetPlainShort()+".";
            }
            else desc += "\n"+tmpdesc;
            desc += "\nHere you see: "+mount_inv+".";
        }
        else {
            desc += "\nYou are riding on "+
                transport->GetPlainShort()+".";
            desc += "\nOn "+transport->GetPlainShort()+
                " you see: "+mount_inv+".";
        }
    }
    if( sizeof(desc) ){
        if(check_string_length(desc)) this_object()->eventPrint(desc + "\n", MSG_ROOMDESC);
        else print_long_string(this_player(), desc);
    }
}