Index: secretroom.scc
===================================================================
--- secretroom.scc	(revision 339)
+++ secretroom.scc	(working copy)
@@ -96,31 +96,32 @@
             return;
         case Use:
             if( terminalActivated ) {
+            	cutscene(2) {
                 try {
-                animateActor(VAR_EGO, 24);
-                delay(25);
-                animateActor(VAR_EGO, 28);
-                delay(25);
-                animateActor(cubeActor, 24);
-                delay(50);
-                egoSay("Looks like I broke the encryption.");
-                waitForMessage();
-                putActorAt(commanderZif,60,85,SecretRoom);
-                actorFace(commanderZif,VAR_EGO);
-                actorSay(commanderZif,"Well done, ensign.");
-                waitForMessage();
-                actorSay(commanderZif,"Now retrieve the relic!");
-                waitForMessage();
-                egoSay("Small problem, sir.");
-                waitForMessage();
-                actorSay(commanderZif,"What's that?");
-                waitForMessage();
-                egoSay("It is still held in place.");
-                waitForMessage();
-                actorSay(commanderZif,"Then find a way to bring it down.");
-                waitForMessage();
-                egoSay("Aye, sir!");
-                waitForMessage();
+                    animateActor(VAR_EGO, 24);
+                    delay(25);
+                    animateActor(VAR_EGO, 28);
+                    delay(25);
+                    animateActor(cubeActor, 24);
+                    delay(50);
+                    egoSay("Looks like I broke the encryption.");
+                    waitForMessage();
+                    putActorAt(commanderZif,60,85,SecretRoom);
+                    actorFace(commanderZif,VAR_EGO);
+                    actorSay(commanderZif,"Well done, ensign.");
+                    waitForMessage();
+                    actorSay(commanderZif,"Now retrieve the relic!");
+                    waitForMessage();
+                    egoSay("Small problem, sir.");
+                    waitForMessage();
+                    actorSay(commanderZif,"What's that?");
+                    waitForMessage();
+                    egoSay("It is still held in place.");
+                    waitForMessage();
+                    actorSay(commanderZif,"Then find a way to bring it down.");
+                    waitForMessage();
+                    egoSay("Aye, sir!");
+                    waitForMessage();
                 }
                 override {
                     if(VAR_OVERRIDE) {
@@ -132,6 +133,7 @@
                 actorObject[commanderZif] = commanderZifObj;
                 putActorAt(cubeActor,0,0,InventoryItems);
                 cubeDisappeared = 1;
+            	}
             }
             else
                 egoSay("The terminal is offline.");
@@ -156,13 +158,15 @@
             return;
         case Use:
             if(objB == InventoryItems::card) {
-                egoSay("I think this should activate the terminal.");
-                waitForMessage();
-                animateActor(VAR_EGO, 24);
-                delay(25);
-                animateActor(VAR_EGO, 28);
-                terminalActivated = 1;
-                setObjectOwner( InventoryItems::card, 0 );
+            	cutscene(0) {
+                    egoSay("I think this should activate the terminal.");
+                    waitForMessage();
+                    animateActor(VAR_EGO, 24);
+                    delay(25);
+                    animateActor(VAR_EGO, 28);
+                    terminalActivated = 1;
+                    setObjectOwner( InventoryItems::card, 0 );
+            	}
             }
             return;
         }
@@ -193,11 +197,13 @@
                     egoSay("The suspension cage prevents a clear shot at the node.");
                     return;
                 }
-                hasShotAtNode = 1;
-                animateActor(VAR_EGO,40);
-                delay(120);
-                egoSay("Missed!");
-                waitForMessage();
+                cutscene(2) {
+                    hasShotAtNode = 1;
+                    animateActor(VAR_EGO,40);
+                    delay(120);
+                    egoSay("Missed!");
+                    waitForMessage();
+                }
                 egoSay("I am not familiar with the aiming reticule.");
                 return;
             }
Index: skyline.scc
===================================================================
--- skyline.scc	(revision 339)
+++ skyline.scc	(working copy)
@@ -34,29 +34,39 @@
     cost ufoCost = "ufo.cost";
     
     local script entry() {
-        setCurrentActor(ufoActor);
-        initActor();
-        setActorCostume(ufoCost);
-        setActorTalkPos(-60,-70);
-        setActorName("Ufo");
-        setActorWalkSpeed(2,1);
-        setActorTalkColor(ZIF_COLOR);
-        setActorWidth(20);
-        setActorIgnoreBoxes();
-        setActorAnimSpeed(4);
+        Verbs::setupVerbs();
         
-        putActorAt(ufoActor,-50,80,Skyline);
-        walkActorTo(ufoActor, 140, 80);
-        waitForActor( ufoActor );
-        actorSay(ufoActor, "These are the coordinates.");
-        waitForMessage();
-        actorSay(ufoActor, "Ensign, bring the teleportation device online.");
-        waitForMessage();
+        cutscene(0) {
+        try {
+            setCurrentActor(ufoActor);
+            initActor();
+            setActorCostume(ufoCost);
+            setActorTalkPos(-60,-70);
+            setActorName("Ufo");
+            setActorWalkSpeed(2,1);
+            setActorTalkColor(ZIF_COLOR);
+            setActorWidth(20);
+            setActorIgnoreBoxes();
+            setActorAnimSpeed(4);
         
-        delay(100);
+            putActorAt(ufoActor,-50,80,Skyline);
+            walkActorTo(ufoActor, 140, 80);
+            waitForActor( ufoActor );
+            actorSay(ufoActor, "These are the coordinates.");
+            waitForMessage();
+            actorSay(ufoActor, "Ensign, bring the teleportation device online.");
+            waitForMessage();
         
-        Verbs::setupVerbs();
-        Verbs::showVerbs(1);
+            delay(100);
+        }
+        override {
+            if(VAR_OVERRIDE) {
+                stopTalking();
+            }
+        }
+        }
+        
+        //Verbs::showVerbs(1);
         Actors::setupActors();
         Actors::officeIntro();
         startRoom(OfficeRoom);
Index: common.scc
===================================================================
--- common.scc	(revision 339)
+++ common.scc	(working copy)
@@ -238,12 +238,12 @@
 
        case Give:
            if(objB && objA <= 0xF) {
-               egoSay("I'll give it to him.");
-               setObjectOwner(objB,objA);
+               egoSay("I don't think i should be giving this away.");
+               //setObjectOwner(objB,objA);
                break;
            }
            else
-               egoSay("Can't give things to non-persons.");
+               egoSay("I can't do that !");
            break;
 
         case LookAt:
Index: officeroom.scc
===================================================================
--- officeroom.scc	(revision 339)
+++ officeroom.scc	(working copy)
@@ -66,21 +66,23 @@
         case PickUp:
         case LookAt:
             if(getObjectState(objA)==1 && VAR_EGO!=getObjectOwner(InventoryItems::gun)) {
-                egoSay("I'll look in here I think.");
-                waitForMessage();
-                animateActor(VAR_EGO, 24);
-                delay(20);
-                animateActor(VAR_EGO, 28);
-                delay(20);
-                egoSay("There appears to be a small sidearm in this container.");
-                pickupObject( InventoryItems::gun, InventoryItems );
-                waitForMessage();
-                animateActor(VAR_EGO, 24);
-                delay(20);
-                animateActor(VAR_EGO, 28);
-                delay(20);
-                egoSay("And a plastic card containing some kind of circuitry.");
-                pickupObject( InventoryItems::card, InventoryItems );
+                cutscene(0) {
+                    egoSay("I'll look in here I think.");
+                    waitForMessage();
+                    animateActor(VAR_EGO, 24);
+                    delay(20);
+                    animateActor(VAR_EGO, 28);
+                    delay(20);
+                    egoSay("There appears to be a small sidearm in this container.");
+                    pickupObject( InventoryItems::gun, InventoryItems );
+                    waitForMessage();
+                    animateActor(VAR_EGO, 24);
+                    delay(20);
+                    animateActor(VAR_EGO, 28);
+                    delay(20);
+                    egoSay("And a plastic card containing some kind of circuitry.");
+                    pickupObject( InventoryItems::card, InventoryItems );
+                }
             }
             else
                 egoSay("Some kind of containing vessel for multiple instances of parchment.");
@@ -121,32 +123,36 @@
                 return;
             }
             if( ! hasTalkedAboutPlant ) {
-                animateActor(VAR_EGO, 24);
-                delay(20);
-                actorSay( carol, "Hey, I haven't cleaned there yet." );
-                hasTriedToMovePlant = 1;
-                waitForMessage();
-                animateActor(VAR_EGO, 28);
-                delay(30);
+                cutscene(0) {
+                    animateActor(VAR_EGO, 24);
+                    delay(20);
+                    actorSay( carol, "Hey, I haven't cleaned there yet." );
+                    hasTriedToMovePlant = 1;
+                    waitForMessage();
+                    animateActor(VAR_EGO, 28);
+                    delay(30);
+                }
                 return;
             }
             if( getObjectState( plant ) == 1 ) {
-                animateActor(VAR_EGO, 24);
-                delay(20);
-                setObjectState( plant, 2 );
-                // initialize bulletsActor
-                setCurrentActor(bulletsActor);
-                initActor();
-                setActorCostume(bulletsCost);
-                setActorName("ammunition");
-                actorObject[bulletsActor] = bullets;
-                setActorWidth(10);
-                setActorIgnoreBoxes();
-                putActorAt(bulletsActor,113,94,OfficeRoom);
-                setCurrentActor(VAR_EGO);
-                delay(30);
-                animateActor(VAR_EGO, 28);
-                delay(30);
+                cutscene(0) {
+                    animateActor(VAR_EGO, 24);
+                    delay(20);
+                    setObjectState( plant, 2 );
+                    // initialize bulletsActor
+                    setCurrentActor(bulletsActor);
+                    initActor();
+                    setActorCostume(bulletsCost);
+                    setActorName("ammunition");
+                    actorObject[bulletsActor] = bullets;
+                    setActorWidth(10);
+                    setActorIgnoreBoxes();
+                    putActorAt(bulletsActor,113,94,OfficeRoom);
+                    setCurrentActor(VAR_EGO);
+                    delay(30);
+                    animateActor(VAR_EGO, 28);
+                    delay(30);
+                }
                 egoSay( "There is a small box down here." );
             }
             else
@@ -238,26 +244,27 @@
                 return;
             }
             if( hasTalkedAboutPlate ) {
+                cutscene(2) {
                 try {
-                walkActorTo(commanderZif, 276, 106);
-                waitForActor( commanderZif );
-                actorSay(commanderZif, "I'll operate the one over here.");
-                waitForMessage();
-                delay( 20 );
-                animateActor(VAR_EGO, 24);
-                animateActor(commanderZif, 24);
-                delay(30);
-                for(i = 2 ; i < 8 ; i++) {
-                    delay( 10 );
-                    setObjectState( exitToSecretRoom, i );
+                    walkActorTo(commanderZif, 276, 106);
+                    waitForActor( commanderZif );
+                    actorSay(commanderZif, "I'll operate the one over here.");
+                    waitForMessage();
+                    delay( 20 );
+                    animateActor(VAR_EGO, 24);
+                    animateActor(commanderZif, 24);
+                    delay(30);
+                    for(i = 2 ; i < 8 ; i++) {
+                        delay( 10 );
+                        setObjectState( exitToSecretRoom, i );
+                    }
+                    animateActor(VAR_EGO, 28);
+                    animateActor(commanderZif, 28);
+                    delay(30);
+                    actorSay(commanderZif, "Continue your investigation.");
+                    waitForMessage();
+                    walkActorTo(commanderZif, 200, 120);
                 }
-                animateActor(VAR_EGO, 28);
-                animateActor(commanderZif, 28);
-                delay(30);
-                actorSay(commanderZif, "Continue your investigation.");
-                waitForMessage();
-                walkActorTo(commanderZif, 200, 120);
-                }
                 override {
                     if(VAR_OVERRIDE) {
                         stopTalking();
@@ -265,14 +272,17 @@
                         setObjectState( exitToSecretRoom, 7 );
                     }
                 }
+                }
                 return;
             }
             if( hasSmelledPlate ) {
-                hasPressedPlate = 1;
-                animateActor(VAR_EGO, 24);
-                delay(30);
-                animateActor(VAR_EGO, 28);
-                delay(30);
+                cutscene(2) {
+                    hasPressedPlate = 1;
+                    animateActor(VAR_EGO, 24);
+                    delay(30);
+                    animateActor(VAR_EGO, 28);
+                    delay(30);
+                }
                 egoSay("Nothing happened.");
                 waitForMessage();
                 egoSay("The two plates appear to be connected.");
Index: actors.scc
===================================================================
--- actors.scc	(revision 339)
+++ actors.scc	(working copy)
@@ -134,77 +134,79 @@
     
     script officeIntro() {
     
+        cutscene(2) {
         try {
-        delay(150);
-        putActorAt(ensignZob,170,110,OfficeRoom);
-        putActorAt(commanderZif,200,120,OfficeRoom);
-        animateActor( commanderZif, 44 );
-        animateActor( ensignZob, 44 );
-        delay(150);
-        setCurrentActor(ensignZob);
-        setActorStanding();
-        actorSay(commanderZif, "Hmmm");
-        waitForMessage();
-        Actors::setZifOnThePhone();
-        animateActor( commanderZif, 40 );
-        delay(30);
-        actorSay(commanderZif, "Commander's log, star date 432.1");
-        waitForMessage();
-        actorSay(commanderZif, "Arrival complete on the planet of mostly water.");
-        waitForMessage();
+            delay(150);
+            putActorAt(ensignZob,170,110,OfficeRoom);
+            putActorAt(commanderZif,200,120,OfficeRoom);
+            animateActor( commanderZif, 44 );
+            animateActor( ensignZob, 44 );
+            delay(150);
+            setCurrentActor(ensignZob);
+            setActorStanding();
+            actorSay(commanderZif, "Hmmm");
+            waitForMessage();
+            Actors::setZifOnThePhone();
+            animateActor( commanderZif, 40 );
+            delay(30);
+            actorSay(commanderZif, "Commander's log, star date 432.1");
+            waitForMessage();
+            actorSay(commanderZif, "Arrival complete on the planet of mostly water.");
+            waitForMessage();
 
-        setCurrentActor(carol);
-        putActorAt(carol,76,98,OfficeRoom);
-        delay(120);
-        setActorStanding();
-        actorSay(carol, "Are you done in here?");
-        waitForMessage();
+            setCurrentActor(carol);
+            putActorAt(carol,76,98,OfficeRoom);
+            delay(120);
+            setActorStanding();
+            actorSay(carol, "Are you done in here?");
+            waitForMessage();
         
-        actorFace(commanderZif, carol);
-        actorFace(ensignZob, carol);
-        delay(50);
-        actorSay(commanderZif, "An indigenous lifeform...");
-        waitForMessage();
-        walkActorTo(ensignZob, 115, 80);
-        waitForActor( ensignZob );
-        actorSay(commanderZif, "Ensign Zob and I shall proceed to locate the artifact.");
-        waitForMessage();
-        actorSay(commanderZif, "We shall eliminate any resistance we encounter.");
-        waitForMessage();
-        walkActorTo(commanderZif, 160, 120);
-        waitForActor( commanderZif );
-        actorSay(commanderZif, "This appears to be a crude society.");
-        waitForMessage();
-        actorSay(commanderZif, "The defenses of the compound were negligible.");
-        waitForMessage();
-        actorSay(commanderZif, "I expect the relic to be in our possession shortly.");
-        waitForMessage();
-        Actors::setZifOffThePhone();
-        actorSay(ensignZob, "What of this lifeform, Sir?");
-        waitForMessage();
-        actorSay(commanderZif, "Proceed with caution.");
-        waitForMessage();
-        actorSay(commanderZif, "That may be some kind of weapon.");
-        waitForMessage();
-        walkActorTo(ensignZob, 115, 120);
-        waitForActor( ensignZob );
-        actorSay(ensignZob, "I'll begin my search.");
-        waitForMessage();
-        actorSay(commanderZif, "Keep me updated, ensign.");
-        waitForMessage();
+            actorFace(commanderZif, carol);
+            actorFace(ensignZob, carol);
+            delay(50);
+            actorSay(commanderZif, "An indigenous lifeform...");
+            waitForMessage();
+            walkActorTo(ensignZob, 115, 80);
+            waitForActor( ensignZob );
+            actorSay(commanderZif, "Ensign Zob and I shall proceed to locate the artifact.");
+            waitForMessage();
+            actorSay(commanderZif, "We shall eliminate any resistance we encounter.");
+            waitForMessage();
+            walkActorTo(commanderZif, 160, 120);
+            waitForActor( commanderZif );
+            actorSay(commanderZif, "This appears to be a crude society.");
+            waitForMessage();
+            actorSay(commanderZif, "The defenses of the compound were negligible.");
+            waitForMessage();
+            actorSay(commanderZif, "I expect the relic to be in our possession shortly.");
+            waitForMessage();
+            Actors::setZifOffThePhone();
+            actorSay(ensignZob, "What of this lifeform, Sir?");
+            waitForMessage();
+            actorSay(commanderZif, "Proceed with caution.");
+            waitForMessage();
+            actorSay(commanderZif, "That may be some kind of weapon.");
+            waitForMessage();
+            walkActorTo(ensignZob, 115, 120);
+            waitForActor( ensignZob );
+            actorSay(ensignZob, "I'll begin my search.");
+            waitForMessage();
+            actorSay(commanderZif, "Keep me updated, ensign.");
+            waitForMessage();
 
         }
         override {
             if(VAR_OVERRIDE) {
-            stopTalking();
-            putActorAt(carol,76,98,OfficeRoom);
-            putActorAt(commanderZif,160,120,OfficeRoom);
-            putActorAt(ensignZob,115,120,OfficeRoom);
-            setActorStanding();
-            animateActor( carol, 3 );
-            Actors::setZifOffThePhone();
+                stopTalking();
+                putActorAt(carol,76,98,OfficeRoom);
+                putActorAt(commanderZif,160,120,OfficeRoom);
+                putActorAt(ensignZob,115,120,OfficeRoom);
+                setActorStanding();
+                animateActor( carol, 3 );
+                Actors::setZifOffThePhone();
             }
         }
+        }
     }
 
     
@@ -215,100 +217,105 @@
     
     script outro() {
         int i;
+        cutscene(1) {
         try {
-        egoSay("I'm having problems hitting the target, Sir.");
-        waitForMessage();
-        actorSay(commanderZif, "You're not a soldier. Give it here.");
-        waitForMessage();
-        setObjectOwner( InventoryItems::gun, commanderZif );
-        animateActor(ensignZob, 24);
-        delay(15);
-        animateActor(commanderZif, 24);
-        delay(15);
-        animateActor(ensignZob, 28);
-        delay(15);
-        animateActor(commanderZif, 28);
-        delay(15);
-        actorSay(commanderZif, "Right, stand back.");
-        waitForMessage();
-        walkActorTo(ensignZob, 276, 110);
-        waitForActor( ensignZob );
-        actorFace(ensignZob,commanderZif);
-        actorSay(commanderZif, "I shall disable the suspension field thusly.");
-        waitForMessage();
-        delay(100);
-        animateActor(commanderZif,48);
-        delay(30);
-        setCurrentActor(bluecupActor);
-        for(i = 11 ; i > 0 ; i--) {
-            delay( 2 );
-            setActorElevation( i*5 );
-        }                
-        delay(100);
-        walkActorToObj(commanderZif,bluecupActor,0);
-        waitForActor( commanderZif );
-        setCurrentActor(commanderZif);
-        setActorDirection(180);
-        delay(100);
-        putActorAt( bluecupActor,0,0,InventoryItems );
-        actorSay(commanderZif, "At last, the power of the relic is mine.");
-        waitForMessage();
-        egoSay("Expertly done, Sir.");
-        waitForMessage();
-        egoSay("Pass over the relic, and I shall place it in the containment vessel.");
-        waitForMessage();
-        walkActorTo(commanderZif, 100, 115);
-        waitForActor( commanderZif );
-        actorFace(commanderZif,ensignZob);
-        actorSay(commanderZif, "Never!");
-        waitForMessage();
-        actorSay(commanderZif, "The relic shall never leave my side.");
-        waitForMessage();
-        egoSay("But commander, the power is too much for one man.");
-        waitForMessage();
-        egoSay("Yield it, before it destroys you!");
-        waitForMessage();
-        actorSay(commanderZif, "Error, number one.");
-        waitForMessage();
-        actorSay(commanderZif, "Never give up the gun.");
-        waitForMessage();
-        animateActor(commanderZif,52);
-        delay(50);
-        animateActor( ensignZob, 48 );
-        delay(150);
-        walkActorTo(commanderZif, 170, 120);
-        waitForActor( commanderZif );
-        actorSay(commanderZif, "What a shame...");
-        waitForMessage();
-        actorSay(commanderZif, "We could have ruled the cosmos together.");
-        waitForMessage();
-        setCurrentActor(commanderZif);
-        setActorDirection(180);
-        Actors::setZifOnThePhone();
-        animateActor( commanderZif, 40 );
-        delay(30);
-        actorSay(commanderZif, "Commander's log, star date 432.2");
-        waitForMessage();
-        actorSay(commanderZif, "I have obtained the stolen artifact.");
-        waitForMessage();
-        actorSay(commanderZif, "In a slight contradiction to my orders, I have decided to enslave this planet.");
-        waitForMessage();
-        actorSay(commanderZif, "Mwaaah huh huh huh huh huh huh...");
-        waitForMessage();
-        Actors::setZifOffThePhone();
-
-        }
-        override {
-            if(VAR_OVERRIDE) {
-            stopTalking();
-            putActorAt(ensignZob,276,110,SecretRoom);
-            putActorAt(commanderZif,170,120,SecretRoom);
+            egoSay("I'm having problems hitting the target, Sir.");
+            waitForMessage();
+            actorSay(commanderZif, "You're not a soldier. Give it here.");
+            waitForMessage();
+            setObjectOwner( InventoryItems::gun, commanderZif );
+            animateActor(ensignZob, 24);
+            delay(15);
+            animateActor(commanderZif, 24);
+            delay(15);
+            animateActor(ensignZob, 28);
+            delay(15);
+            animateActor(commanderZif, 28);
+            delay(15);
+            actorSay(commanderZif, "Right, stand back.");
+            waitForMessage();
+            walkActorTo(ensignZob, 276, 110);
+            waitForActor( ensignZob );
+            actorFace(ensignZob,commanderZif);
+            actorSay(commanderZif, "I shall disable the suspension field thusly.");
+            waitForMessage();
+            delay(100);
+            animateActor(commanderZif,48);
+            delay(30);
+            setCurrentActor(bluecupActor);
+            for(i = 11 ; i > 0 ; i--) {
+                delay( 2 );
+                setActorElevation( i*5 );
+            }                
+            delay(100);
+            walkActorToObj(commanderZif,bluecupActor,0);
+            waitForActor( commanderZif );
+            setCurrentActor(commanderZif);
+            setActorDirection(180);
+            delay(100);
             putActorAt( bluecupActor,0,0,InventoryItems );
+            actorSay(commanderZif, "At last, the power of the relic is mine.");
+            waitForMessage();
+            egoSay("Expertly done, Sir.");
+            waitForMessage();
+            egoSay("Pass over the relic, and I shall place it in the containment vessel.");
+            waitForMessage();
+            walkActorTo(commanderZif, 100, 115);
+            waitForActor( commanderZif );
+            actorFace(commanderZif,ensignZob);
+            actorSay(commanderZif, "Never!");
+            waitForMessage();
+            actorSay(commanderZif, "The relic shall never leave my side.");
+            waitForMessage();
+            egoSay("But commander, the power is too much for one man.");
+            waitForMessage();
+            egoSay("Yield it, before it destroys you!");
+            waitForMessage();
+            actorSay(commanderZif, "Error, number one.");
+            waitForMessage();
+            actorSay(commanderZif, "Never give up the gun.");
+            waitForMessage();
+            animateActor(commanderZif,52);
+            delay(50);
+            animateActor( ensignZob, 48 );
+            delay(150);
+            walkActorTo(commanderZif, 170, 120);
+            waitForActor( commanderZif );
+            actorSay(commanderZif, "What a shame...");
+            waitForMessage();
+            actorSay(commanderZif, "We could have ruled the cosmos together.");
+            waitForMessage();
             setCurrentActor(commanderZif);
             setActorDirection(180);
+            Actors::setZifOnThePhone();
+            animateActor( commanderZif, 40 );
+            delay(30);
+            actorSay(commanderZif, "Commander's log, star date 432.2");
+            waitForMessage();
+            actorSay(commanderZif, "I have obtained the stolen artifact.");
+            waitForMessage();
+            actorSay(commanderZif, "In a slight contradiction to my orders, I have decided to enslave this planet.");
+            waitForMessage();
+            actorSay(commanderZif, "Mwaaah huh huh huh huh huh huh...");
+            waitForMessage();
             Actors::setZifOffThePhone();
+        }
+        override {
+            if(VAR_OVERRIDE) {
+                stopTalking();
+                putActorAt(ensignZob,276,110,SecretRoom);
+                putActorAt(commanderZif,170,120,SecretRoom);
+                putActorAt( bluecupActor,0,0,InventoryItems );
+                setCurrentActor(commanderZif);
+                setActorDirection(180);
+                Actors::setZifOffThePhone();
             }
         }
+        }
+        
+        // Kill the mouseWatch
+        if(isScriptRunning(ResRoom::mouseWatch))
+            stopScript(ResRoom::mouseWatch);
         VAR_VERB_SCRIPT = Actors::quit;
     }
     
Index: inventoryitems.scc
===================================================================
--- inventoryitems.scc	(revision 339)
+++ inventoryitems.scc	(working copy)
@@ -109,7 +109,7 @@
             return;
         }
     }
-
+    
     object batteries {
         name = "batteries";
         states = {
@@ -120,128 +120,15 @@
         case LookAt:
             egoSay("They used to power the hand scanner.");
             return;
-        }
-    }
-
-    object batteries2 {
-        w = 40;
-        h = 16;
-        x = 0;
-        name = "batteries";
-        states = {
-            { 0, 0, "graphics/inventory_items/batteries2.bmp" }
-        };
-        state = 1;
-
-        verb(int vrb,int objA,int objB) {
-        case Icon:
-            startScript2(vrb, [ InventoryItems::batteries2, objA, objB ]);
+        case Preposition:
+            if(vrb == Give)
+                sntcPrepo[0] = "to";
+            else
+                sntcPrepo[0] = "with";
             return;
         }
     }
-
-    object batteries3 {
-        w = 40;
-        h = 16;
-        x = 0;
-        name = "batteries";
-        states = {
-            { 0, 0, "graphics/inventory_items/batteries3.bmp" }
-        };
-        state = 1;
-
-        verb(int vrb,int objA,int objB) {
-        case Icon:
-            startScript2(vrb, [ InventoryItems::batteries3, objA, objB ]);
-            return;
-        }
-    }
-
-    object batteries4 {
-        w = 40;
-        h = 16;
-        x = 0;
-        name = "batteries";
-        states = {
-            { 0, 0, "graphics/inventory_items/batteries4.bmp" }
-        };
-        state = 1;
-
-        verb(int vrb,int objA,int objB) {
-        case Icon:
-            startScript2(vrb, [ InventoryItems::batteries4, objA, objB ]);
-            return;
-        }
-    }
-
-    object batteries5 {
-        w = 40;
-        h = 16;
-        x = 0;
-        name = "batteries";
-        states = {
-            { 0, 0, "graphics/inventory_items/batteries5.bmp" }
-        };
-        state = 1;
-
-        verb(int vrb,int objA,int objB) {
-        case Icon:
-            startScript2(vrb, [ InventoryItems::batteries5, objA, objB ]);
-            return;
-        }
-    }
-
-    object batteries6 {
-        w = 40;
-        h = 16;
-        x = 0;
-        name = "batteries";
-        states = {
-            { 0, 0, "graphics/inventory_items/batteries6.bmp" }
-        };
-        state = 1;
-
-        verb(int vrb,int objA,int objB) {
-        case Icon:
-            startScript2(vrb, [ InventoryItems::batteries6, objA, objB ]);
-            return;
-        }
-    }
-
-    object batteries7 {
-        w = 40;
-        h = 16;
-        x = 0;
-        name = "batteries";
-        states = {
-            { 0, 0, "graphics/inventory_items/batteries7.bmp" }
-        };
-        state = 1;
-
-        verb(int vrb,int objA,int objB) {
-        case Icon:
-            startScript2(vrb, [ InventoryItems::batteries7, objA, objB ]);
-            return;
-        }
-    }
-
-    object batteries8 {
-        w = 40;
-        h = 16;
-        x = 0;
-        name = "batteries";
-        states = {
-            { 0, 0, "graphics/inventory_items/batteries8.bmp" }
-        };
-        state = 1;
-
-        verb(int vrb,int objA,int objB) {
-        case Icon:
-            startScript2(vrb, [ InventoryItems::batteries8, objA, objB ]);
-            return;
-        }
-    }
-
+    
     object scanner {
         w = 40;
         h = 16;
@@ -277,6 +164,12 @@
             else
                 egoSay("I am detecting the artifact near this location.");
             return;
+        case Preposition:
+            if(vrb == Give)
+                sntcPrepo[0] = "to";
+            else
+                sntcPrepo[0] = "on";
+            return;
         case Open:
             egoSay("I'll open up the housing.");
             waitForMessage();
