ADL Scenario Source Code

    LOOK = Proc()
    {
        If (GOVERB & !GO) {
    	cg();
        }
        GOVERB = FALSE;
        GO = FALSE;
        If (IncFlag) {
    	$incturn();
        }
        IncFlag = TRUE;
    }

    PROMPT = Proc()
    {
        $spec(HEADER, $sdesc($loc($ME))(1), SCORE, $turns());
        "> ";
    }

    GrowX = Proc(obj)
    {
        If (obj.SHRNK) {
    	obj.SHRNK = FALSE;
    	If ($cont(obj)) {
    	    GrowX($cont(obj));
    	}
    	If ($link(obj)) {
    	    GrowX($link(obj));
    	}
        }
    }

    Grow = Proc()
    {
        If ($ME.SHRNK) {
    	$ME.SHRNK = FALSE;
    	If ($cont($ME)) {
    	    GrowX($cont($ME));
    	}
        }
    }

    ShrnX = Proc(obj)
    {
        If (!obj.SHRNK) {
    	obj.SHRNK = TRUE;
    	If ($cont(obj)) {
    	    ShrnX($cont(obj));
    	}
    	If ($link(obj)) {
    	    ShrnX($link(obj));
    	}
        }
        Else {
    	"You hear a tiny POP as the " $name(obj) " vanishes completely!\n";
    	If ($link(obj)) {
    	    ShrnX($link(obj));
    	}
    	$move(obj, $ALL);
        }
    }

    Shrink = Proc()
    {
        If (!$ME.SHRNK) {
    	$ME.SHRNK = TRUE;
    	If ($cont($ME)) {
    	    ShrnX($cont($ME));
    	}
        }
    }

    WzTgl = Proc() // Toggle the Wizard flag
    {
        Wizrd = !Wizrd;
        If (Wizrd) {
            "You hear a low rumble of thunder, shaking the very ground on "
            "which you stand.  Suddenly, there is a blazing flash of light!! "
            "You are unharmed, but feal great power flowing in your body.\n";
        }
        Else {
    	"Your wizardly powers unceremoniously fade away.\n";
        }
    }

    TakeAct = Proc()
    {
        If (Dobj.WEIGH == CAPAC) {
    	"You can't move ";
    	$sdesc(Dobj)();
    	".\n";
    	$exit(1);
        }
        Else If ($ME.SHRNK & !Dobj.SHRNK) {
    	"Right now, the " $name(Dobj) " is too big for you to deal with.\n";
    	$exit(1);
        }
        Else If (($ME.HAS + Dobj.WEIGH) > $ME.HOLDS) {
    	"You can't carry that much more!\n";
    	$exit(1);
        }
        Else {
    	$ME.HAS = $ME.HAS + Dobj.WEIGH;
        }
    }

    DropAct = Proc()
    {
        $ME.HAS = $ME.HAS - Dobj.WEIGH;
        If ($loc($ME) == cel13) {
    	If (!cel13.HOLED) {
    	    If (Dobj.WEIGH > 75) {
    		"The " $name(Dobj) " breaks through the ice and sinks!\n";
    		cel13.HOLED = TRUE;
    		$move(hole, cel13);
    		$move(Dobj, $ALL);
    		Skip = TRUE;
                }
    	    Else {
    		"The ice chips a bit, but does not break.\n";
    	    }
    	}
        }
        Else If ($loc($ME) == cel19) {
    	If (!goblet.FREED) {
    	    If (Dobj.WEIGH > 75) {
    	    	"The " $name(Dobj)
                            " cracks the ice, and the goblet is freed!\n";
    	   	goblet.FREED = TRUE;
                }
    	    Else {
    		"The ice chips a bit, but does not break.\n";
    	    }
    	}
        }
    }