ADL Scenario Source Code

    /*** FUNNY TRANSITION ROUTINES ***/

    exitg = Proc()
    {
        "Oh dear, you seem to have gotten yourself killed.\n";
        skore();
        ratng();
        ratnx();
        If (!$ME.debug) {
    	Die();
        }
    }

    em3 = Proc()
    {
        If (!paper.signed) {
    	cg();
    	Return 0;
        }
        $move($ME, irm1);
    }

    ei8 = Proc()
    {
        If ($loc(spices) == $ME) {
            "The savory blend of spices and human wakes up the sleeping "
            "crocodiles who decide to have you for breakfast.\n";
    	exitg();
        }
        Else If ($loc(rupees) == $ME) {
            "The weight of the coins pulls you underwater and you eventually "
            "drown.\n";
    	exitg();
        }
        Else {
            "You manage to get across the river, just as the crocodiles "
            "begin to stir.\n";
    	$move($ME, irm9);
        }
    }

    wi12 = Proc()
    {
        If (!statue.tlakst) {
    	cg();
    	Return 0;
        }
        $move($ME, irm14);
    }

    ui16 = Proc()
    {
        If (!rope.ropstf) {
    	cg();
    	Return 0;
        }
        "You scramble up the rope and get to the ledge.\n";
        $move($ME, irm17);
    }

    ui17 = Proc()
    {
        "Are you a rock climber? \n";
        If (!$yorn()) {
    	"Then you better not try it.\n";
    	Return 0;
        }
        "That climb is rated 5.11. Do you still want to try it?\n";
        If (!$yorn()) {
    	"Wise move.\n";
    	Return 0;
        }
        "Half way up, you fall off a 1/32 inch wide ledge and "
        "plummet to your death.\n";
        exitg();
    }

    di19 = Proc()
    {
        "You magically get transported to the corner of Westwood and Broxton, "
        "where you are forced to spend the rest of eternity surrounded by "
        "Hari-Krishna freaks. (That'll teach you not to believe legends.)\n";
        $spec(QUIT);
    }

    ei20 = Proc()
    {
        If (!monkey.fedmky) {
    	cg();
    	Return 0;
        }
        $move($ME, irm21);
    }

    wi21 = Proc()
    {
        If ($loc(peel) == irm20) {
            "As you leave the temple, you slip on a banana peel and break "
            "your neck.\n";
    	exitg();
        }
        $move($ME, irm20);
    }

    di22 = Proc()
    {
        If ($loc(cobra) == irm22) {
    "The cobra takes a bite at your unprotected leg and injects an
    unhealthy dose of neurotoxin.  You start to lose your senses, your
    cognitive abilities, an yer rekcogiskdfsdk.\n"
    	exitg();
        }
        $move($ME, irm23);
    }

    sm5 = Proc()
    {
        If (!paper.signed) {
    	"You bumped into the grate.\n";
    	Return 0;
        }
        $move($ME, prm1);
    }

    dp2 = Proc()
    {
        If (rope.rtied == 0) {
    	"It is too dangerous to climb down without a rope.\n";
    	Return 0;
        }
        If (($loc(lamp) == $ME) & lamp.LIGHT) {
            "Half-way down the rope, the carbide lamp burns through the "
            "rope above you and you plummet to your death.\n";
    	exitg();
        }
        "You climb down the rope without any problems.\n";
        $move($ME, prm3);
    }

    ep5 = Proc()
    {
        If ($loc(spear) == $ME) {
    	"You can't fit the spear you are carrying through that crack.\n";
    	$exit(1);
        }
        $move($ME, prm6);
    }

    ep8 = Proc()
    {
        "You fall off the cliff and plummet several hundred feet to your "
        "death.\n";
        exitg();
    }

    dp6 = Proc()
    {
        If (!smilo.stond) {
            "As soon as you reach the bottom of the pit, the sabre-tooth "
            "tiger tears you to shreads.\n";
    	exitg();
        }
        $move($ME, prm7);
    }

    ep10 = Proc()
    {
        "You fall into the lake, which actually turns out to be a tar-pit "
        "covered with a thin layer of rain water.  You eventually sink and "
        "get fossilized.\n";
        exitg();
    }

    ep11 = Proc()
    {
        If (!feet.wiped) {
    	$move($ME, prm10);
    	$exit(1);
        }
        "As you walk down the slab, your feet slip and you tumble off the slab.\n";
        ep10();
    }

    sp12 = Proc()
    {
        "You find your feet to be quite slippery as you walk.\n";
        feet.wiped = 1;
        $move($ME, prm11);
    }

    sp14 = Proc()
    {
        If (!mammoth.blokd) {
    	"The mammoth keeps you from going that way.\n";
    	$exit(1);
        }
        $move($ME, prm15);
    }

    np17 = Proc()
    {
        If ((spear.tooky == 1) & (spear.abrad == 0)) {
    	"The rubble keeps you from going in that direction.\n";
    	$exit(1);
        }
        $move($ME, prm18);
    }

    np19 = Proc()
    {
        If (!bear.hitbr) {
    	"The bear keeps you from going that direction.\n";
    	$exit(1);
        }
        $move($ME, prm20);
    }

    wp22 = Proc()
    {
        If ($loc(spear) == $ME) {
            "The spear that you were carrying lodges in the Tyrannosaurus's "
            "mouth.\n";
    	$move(spear, prm23);
    	$move($ME, prm23);
        }
        If ($loc(spear) == prm23) {
    	$move($ME, prm23);
        }
        If (($loc(spear) != $ME) & ($loc(spear) != prm23)) {
    	"The Tyrannosaurus crushes you in his jaws then swallows you.\n";
    	exitg();
        }
    }

    dp23 = Proc()
    {
        "You slide down the gullet of the Tyrannosaurus and get "
        "digested alive.\n";
        exitg();
    }

    dm6 = Proc()
    {
        "After wandering around in the forest for a while, you eventually "
        "find your way out.\n";
        $move($ME, mrm1);
    }

    darkq = Proc()
    {
        If (!Lit($loc($ME))) {
    	If ($arg(0)) {
    	    Return 1;
    	}
    	"It is too dark to see anything in here.\n";
    	$exit(0);
        }
        Return 0;
    }

    darkt = Proc()
    {
        If (!Lit($loc($ME))) {
    	If ($pct(50)) {
                "While stumbling around in the darkness, you trip and impale "
                "yourself on a stalagmite.\n";
    	    exitg();
    	}
        }
    }

    onlmp = Proc()
    {
        If ($loc(lamp) != $ME) {
    	"You don't have the lamp with you.\n";
    	$exit(1);
        }
        If (!lamp.LIGHT) {
    	"A blue flame now flickers out of the lantern.\n";
    	lamp.LIGHT = 1;
    	$exit(1);
        }
    }

    /*** TRANSITIONS ***/

    mrm1(ACTION) = Proc()
    {
        $hit($ME, mrm6, mrm2, mrm6, mrm6, 0, 0, mrm2, 0, 0, 0);
        $miss( 0, 0, 0, 0, cg, cg, 0, dumdir, 0, 0);
    }

    mrm2(ACTION) = Proc()
    {
        $hit($ME, mrm1, mrm4, mrm3, mrm4, 0, mrm5, 0, 0, 0, 0);
        $miss( 0, 0, 0, 0, cg, 0, dumdir, dumdir, 0, 0);
    }

    mrm3(ACTION) = Proc()
    {
        $hit($ME, 0, 0, 0, mrm2, 0, 0, 0, 0, 0, 0);
        $miss( cg, cg, em3, 0, cg, cg, dumdir, dumdir, 0, 0);
    }

    mrm4(ACTION) = Proc()
    {
        $hit($ME, mrm2, 0, 0, 0, 0, 0, 0, mrm2, 0, 0);
        $miss( 0, cg, cg, cg, cg, cg, cg, 0, 0, 0);
    }

    mrm5(ACTION) = Proc()
    {
        $hit($ME, 0, 0, 0, 0, mrm2, 0, 0, 0, 0, 0);
        $miss( cg, sm5, cg, cg, 0, cg, dumdir, dumdir, 0, 0);
    }

    mrm6(ACTION) = Proc()
    {
        $hit($ME, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
        $miss( dm6, dm6, dm6, dm6, cg, cg, dumdir, dm6, 0, 0);
    }

    irm1(ACTION) = Proc()
    {
        $hit($ME, 0, 0, 0, mrm3, 0, irm2, 0, 0, 0, 0);
        $miss( cg, cg, cg, 0, cg, 0, dumdir, dumdir, 0, 0);
    }

    irm2(ACTION) = Proc()
    {
        $hit($ME, 0, 0, irm10, irm3, irm1, 0, 0, 0, 0, 0);
        $miss( cg, cg, 0, 0, 0, cg, dumdir, dumdir, 0, 0);
    }

    irm3(ACTION) = Proc()
    {
        $hit($ME, irm4, 0, irm2, 0, 0, 0, 0, 0, 0, 0);
        $miss( 0, cg, 0, cg, cg, cg, dumdir, dumdir, 0, 0);
    }

    irm4(ACTION) = Proc()
    {
        $hit($ME, 0, irm3, 0, 0, 0, irm5, 0, irm3, 0, 0);
        $miss( cg, 0, cg, cg, cg, 0, dumdir, 0, 0, 0);
    }

    irm5(ACTION) = Proc()
    {
        $hit($ME, irm6, irm7, irm8, 0, 0, 0, 0, 0, 0, 0);
        $miss( 0, 0, 0, cg, tohigh, cg, dumdir, dumdir, 0, 0);
    }

    irm6(ACTION) = Proc()
    {
        $hit($ME, 0, irm5, 0, irm7, 0, 0, 0, 0, 0, 0);
        $miss( tosml, 0, cg, 0, cg, cg, dumdir, dumdir, 0, 0);
    }

    irm7(ACTION) = Proc()
    {
        $hit($ME, irm5, 0, irm6, 0, 0, 0, 0, 0, 0, 0);
        $miss( 0, cg, 0, cg, cg, cg, dumdir, dumdir, 0, 0);
    }

    irm8(ACTION) = Proc()
    {
        $hit($ME, 0, 0, 0, irm5, 0, 0, 0, irm5, 0, 0);
        $miss( cg, cg, ei8, 0, cg, cg, dumdir, 0, 0, 0);
    }

    irm9(ACTION) = Proc()
    {
        $hit($ME, 0, 0, 0, irm8, irm10, 0, 0, irm10, 0, 0);
        $miss( cg, cg, cg, 0, 0, cg, dumdir, 0, 0, 0);
    }

    irm10(ACTION) = Proc()
    {
        $hit($ME, 0, irm11, irm22, irm2, 0, irm9, 0, 0, 0, 0);
        $miss( cg, 0, 0, 0, cg, 0, dumdir, dumdir, 0, 0);
    }

    irm11(ACTION) = Proc()
    {
        $hit($ME, irm10, irm12, 0, irm13, 0, 0, 0, 0, 0, 0);
        $miss( 0, 0, cg, 0, cg, cg, cg, cg, 0, 0);
    }

    irm12(ACTION) = Proc()
    {
        $hit($ME, irm11, 0, irm15, 0, 0, 0, 0, 0, 0, 0);
        $miss( 0, cg, 0, wi12, cg, cg, dumdir, dumdir, 0, 0);
    }

    irm13(ACTION) = Proc()
    {
        $hit($ME, 0, irm15, irm11, 0, 0, 0, 0, 0, 0, 0);
        $miss( cg, 0, 0, cg, cg, cg, dumdir, dumdir, 0, 0);
    }

    irm14(ACTION) = Proc()
    {
        $hit($ME, 0, 0, irm12, 0, 0, 0, 0, irm12, 0, 0);
        $miss(cg, cg, 0, cg, cg, cg, dumdir, 0, 0, 0);
    }

    irm15(ACTION) = Proc()
    {
        $hit($ME, irm13, 0, irm16, irm12, 0, 0, 0, 0, 0, 0);
        $miss(0, cg, 0, 0, cg, cg, dumdir, dumdir, 0, 0);
    }

    irm16(ACTION) = Proc()
    {
        $hit($ME, irm22, 0, irm18, irm15, 0, 0, 0, 0, 0, 0);
        $miss(0, cg, 0, 0, ui16, cg, dumdir, dumdir, 0, 0);
    }

    irm17(ACTION) = Proc()
    {
        $hit($ME, 0, 0, 0, 0, 0, irm16, 0, 0, 0, 0);
        $miss(cg, cg, cg, cg, ui17, 0, dumdir, dumdir, 0, 0);
    }

    irm18(ACTION) = Proc()
    {
        $hit($ME, 0, irm19, irm20, irm16, 0, 0, 0, 0, 0, 0);
        $miss(cg, 0, 0, 0, cg, cg, dumdir, dumdir, 0, 0);
    }

    irm19(ACTION) = Proc()
    {
        $hit($ME, irm18, 0, 0, 0, 0, 0, 0, irm18, 0, 0);
        $miss(0, cg, cg, tosml, cg, di19, dumdir, 0, 0, 0);
    }

    irm20(ACTION) = Proc()
    {
        $hit($ME, 0, 0, 0, irm18, 0, 0, 0, 0, 0, 0);
        $miss(cg, cg, ei20, 0, cg, cg, dumdir, dumdir, 0, 0);
    }

    irm21(ACTION) = Proc()
    {
        $miss(cg, cg, cg, wi21, cg, cg, dumdir, wi21, 0, 0);
    }

    irm22(ACTION) = Proc()
    {
        $hit($ME, 0, irm16, 0, irm10, 0, 0, 0, 0, 0, 0);
        $miss(cg, 0, cg, 0, cg, di22, di22, cg, 0, 0);
    }

    irm23(ACTION) = Proc()
    {
        $hit($ME, 0, 0, 0, 0, irm22, 0, 0, irm22, 0, 0);
        $miss(cg, cg, cg, cg, 0, cg, dumdir, 0, 0, 0);
    }

    prm1(ACTION) = Proc()
    {
        darkt();
        $hit($ME, mrm5, prm2, 0, 0, 0, 0, 0, 0, 0, 0);
        $miss(0, 0, cg, cg, cg, cg, dumdir, dumdir, 0, 0);
    }

    prm2(ACTION) = Proc()
    {
        $hit($ME, prm1, 0, 0, 0, 0, 0, 0, 0, 0, 0);
        $miss(0, cg, cg, cg, cg, dp2, dumdir, dumdir, 0, 0);
    }

    prm3(ACTION) = Proc()
    {
        $hit($ME, 0, 0, 0, prm4, prm2, 0, 0, 0, 0, 0);
        $miss(cg, cg, cg, 0, 0, cg, dumdir, dumdir, 0, 0);
    }

    prm4(ACTION) = Proc()
    {
        $hit($ME, 0, prm5, prm3, prm9, 0, 0, prm5, 0, 0, 0);
        $miss(cg, 0, 0, 0, cg, cg, 0, dumdir, 0, 0);
    }

    prm5(ACTION) = Proc()
    {
        darkt();
        $hit($ME, prm4, 0, 0, 0, 0, 0, 0, prm4, 0, 0);
        $miss(0, cg, ep5, cg, cg, cg, dumdir, 0, 0, 0);
    }

    prm6(ACTION) = Proc()
    {
        darkt();
        $hit($ME, 0, 0, 0, prm5, 0, 0, 0, 0, 0, 0);
        $miss(cg, cg, cg, 0, cg, dp6, dumdir, dumdir, 0, 0);
    }

    prm7(ACTION) = Proc()
    {
        darkt();
        $hit($ME, 0, prm8, 0, 0, prm6, 0, 0, 0, 0, 0);
        $miss(cg, 0, cg, cg, 0, cg, dumdir, dumdir, 0, 0);
    }

    prm8(ACTION) = Proc()
    {
        darkt();
        $hit($ME, prm7, 0, 0, 0, 0, 0, 0, 0, 0, 0);
        $miss(0, cg, ep8, cg, cg, cg, dumdir, dumdir, 0, 0);
    }

    prm9(ACTION) = Proc()
    {
        $hit($ME, prm10, 0, prm4, prm13, 0, 0, 0, 0, 0, 0);
        $miss(0, cg, 0, 0, cg, cg, dumdir, dumdir, 0, 0);
    }

    prm10(ACTION) = Proc()
    {
        $hit($ME, 0, prm9, 0, prm11, prm11, 0, 0, 0, 0, 0);
        $miss(cg, 0, ep10, 0, 0, cg, dumdir, dumdir, 0, 0);
    }

    prm11(ACTION) = Proc()
    {
        $hit($ME, prm12, 0, 0, 0, 0, 0, 0, 0, 0, 0);
        $miss(0, cg, ep11, cg, cg, ep11, dumdir, dumdir, 0, 0);
    }

    prm12(ACTION) = Proc()
    {
        $miss(cg, sp12, cg, cg, cg, cg, dumdir, dumdir, 0, 0);
    }

    prm13(ACTION) = Proc()
    {
        $hit($ME, 0, prm14, prm9, prm16, 0, 0, 0, 0, 0, 0);
        $miss(cg, 0, 0, 0, cg, cg, dumdir, dumdir, 0, 0);
    }

    prm14(ACTION) = Proc()
    {
        $hit($ME, prm13, 0, 0, 0, 0, 0, 0, 0, 0, 0);
        $miss(0, sp14, tosml, cg, cg, cg, dumdir, dumdir, 0, 0);
    }

    prm15(ACTION) = Proc()
    {
        $hit($ME, prm14, 0, 0, 0, 0, 0, 0, 0, 0, 0);
        $miss(0, cg, cg, cg, cg, cg, dumdir, dumdir, 0, 0);
    }

    prm16(ACTION) = Proc()
    {
        $hit($ME, prm17, 0, prm13, 0, 0, prm21, 0, 0, 0, 0);
        $miss(0, cg, 0, cg, cg, 0, dumdir, dumdir, 0, 0);
    }

    prm17(ACTION) = Proc()
    {
        $hit($ME, 0, prm16, 0, 0, 0, 0, 0, 0, 0, 0);
        $miss(np17, 0, cg, cg, cg, cg, dumdir, dumdir, 0, 0);
    }

    prm18(ACTION) = Proc()
    {
        $hit($ME, prm19, prm17, 0, 0, 0, 0, 0, 0, 0, 0);
        $miss(0, 0, cg, cg, cg, cg, dumdir, dumdir, 0, 0);
    }

    prm19(ACTION) = Proc()
    {
        $hit($ME, 0, prm18, 0, 0, 0, 0, 0, 0, 0, 0);
        $miss(np19, 0, cg, cg, cg, cg, dumdir, dumdir, 0, 0);
    }

    prm20(ACTION) = Proc()
    {
        $hit($ME, 0, prm19, 0, 0, 0, 0, 0, prm19, 0, 0);
        $miss(cg, 0, cg, cg, cg, cg, dumdir, 0, 0, 0);
    }

    prm21(ACTION) = Proc()
    {
        $hit($ME, 0, 0, 0, 0, prm16, prm22, 0, 0, 0, 0);
        $miss(cg, cg, cg, cg, 0, 0, dumdir, dumdir, 0, 0);
    }

    prm22(ACTION) = Proc()
    {
        $hit($ME, 0, 0, 0, 0, prm21, 0, 0, 0, 0, 0);
        $miss(cg, cg, cg, wp22, 0, cg, dumdir, dumdir, 0, 0);
    }

    prm23(ACTION) = Proc()
    {
        $hit($ME, 0, 0, prm22, 0, 0, 0, 0, prm22, 0, 0);
        $miss(cg, cg, 0, cg, cg, dp23, dumdir, 0, 0, 0);
    }