void main()
{
    // * this script used for both the lower and the upper door
    string sDest = "bb2tobb1";
    if (GetTag(OBJECT_SELF) == "1_1")
    {
        sDest = "bb1tobb2";
    }
    object oClicker = GetClickingObject();
    object oLoc = GetObjectByTag(sDest);
    FadeToBlack(oClicker, FADE_SPEED_FAST);
    AssignCommand(oClicker, DelayCommand(1.0, JumpToObject(oLoc)));

        object oAnimal = GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION, oClicker);
        object oDominated = GetAssociate(ASSOCIATE_TYPE_DOMINATED, oClicker);
        object oFamiliar = GetAssociate(ASSOCIATE_TYPE_FAMILIAR, oClicker);
        object oSummoned = GetAssociate(ASSOCIATE_TYPE_SUMMONED, oClicker);
        if(oAnimal != OBJECT_INVALID)
        {
            AssignCommand(oAnimal, ClearAllActions(TRUE));
            AssignCommand(oAnimal, JumpToObject(oLoc));
        }
        if(oDominated != OBJECT_INVALID)
        {
            AssignCommand(oDominated, ClearAllActions(TRUE));
            AssignCommand(oDominated, JumpToObject(oLoc));
        }
        if(oFamiliar != OBJECT_INVALID)
        {
            AssignCommand(oFamiliar, ClearAllActions(TRUE));
            AssignCommand(oFamiliar, JumpToObject(oLoc));
        }
        if(oSummoned != OBJECT_INVALID)
        {
            AssignCommand(oSummoned, ClearAllActions(TRUE));
            AssignCommand(oSummoned, JumpToObject(oLoc));
        }


        int i = 1;
        object oHenchman = GetHenchman(oClicker, i);
        while(oHenchman != OBJECT_INVALID)
        {
            AssignCommand(oHenchman, ClearAllActions(TRUE));
            AssignCommand(oHenchman, JumpToObject(oLoc));
            i++;
            oHenchman = GetHenchman(oClicker, i);
        }

    DelayCommand(1.0, FadeFromBlack(oClicker, FADE_SPEED_MEDIUM));
}