leisuresuitlarry/RM43.CG

1299 lines
22 KiB
Plaintext

[logics for room 43 -- rmHotTub
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm43.msg"
%include "gamedefs.h"
[ Facial treatment:
[ cel0 = normal; use if no action.
[ cel1 = smiling; use if give apple, talk nice, good breath, look face
[ cel2 = frowning; use if say rude things, bad breath
[ %view vCloseupBubbles 177
[ %view vEveFace 180
[ %view vEveInTub 181
[ #define C_SITTING 0
[ %view vEve 182
[ #define L_WALKING_RIGHT 0
[ #define L_SITTING_ON_BED 1
[ #define L_AFTER_SEX 2
[
[ %view vHotTubBubbles 183
[ %view vEgoUndressing 2
[ %view vEgoInHotTub 7
[ #define L_JUMPING_IN 0
[ #define L_JUMPING_OUT 1
#define L_CLOTHES_PILE 2
%define L_EYES 1 [ vEveCloseup
%define L_MOUTH 0
#define C_NORMAL 0 [ mouth cells
#define C_SMILE 1
#define C_FROWN 2
#define DONE 255
%define DRESSING_SPEED 3 [ Ego's CycleTime while changing.
%define HOT_TUB_SPEED 4 [ Ego & Eve's exiting tub CycleTime
%define egoInHotTub lf0
%define clothesOnFloor lf1
%define egoNaked lf2
%define eveInHotTub lf3
%define lookingAtEve lf4
%define nearHotTub lf5
%define eyesCycling lf6
%define dollDone lf7
%define bubblesOn lf8
%define dollOnScreen lf9
%define dollSoundDone lf10
%define cutToLongShot lf11
%define cutToCloseup lf12
%define eyeCycles lv0
%define breathLineTimer lv1
[%define lv2
[%define lv3
%define lookCount lv4
%define talkCount lv5
%define mouthTimer lv6
%define mouth lv7
%object aBubbles 1
%object aEve 2
%object aEgo'sClothes 3
%object aEve'sTowel 4
%object aMouth 5
%object aEyes 6
%object aDoll 7
%object aCloseupBubbles1 11
%object aCloseupBubbles2 12
%object aCloseupBubbles3 13
%object aCloseupBubbles4 14
if (initLog)
{
LoadView( vHotTubBubbles);
if (!eveGone)
{
Set( eveInHotTub);
Set( bubblesOn);
LoadView( vEve);
LoadView( vEveFace);
LoadView( vEveInTub);
LoadView( vCloseupBubbles);
LoadView( vEgoInHotTub);
LoadView( vEgoWearingTowel);
LoadView( vEgoUndressing);
picture = picEveCloseup;
LoadPic( picture);
}
LoadPic( currentRoom);
DrawPic( currentRoom);
[ DON'T DiscardPic( currentRoom);
if (eveInHotTub)
{
AnimateObj( aEve);
IgnoreBlocks( aEve);
IgnoreObjs( aEve);
SetView( aEve, vEveInTub);
SetPriority( aEve, 9);
Position( aEve, 72, 89);
Draw( aEve);
StopUpdate( aEve);
AnimateObj( aEve'sTowel); [ Put eve's towel by tub.
SetView( aEve'sTowel, vEgoInHotTub);
SetLoop( aEve'sTowel, L_CLOTHES_PILE);
Position( aEve'sTowel, 58, 92);
Draw( aEve'sTowel);
AnimateObj( aEgo'sClothes);
IgnoreBlocks( aEgo'sClothes);
IgnoreObjs( aEgo'sClothes);
SetView( aEgo'sClothes, vEgoInHotTub);
SetLoop( aEgo'sClothes, L_CLOTHES_PILE);
SetPriority( aEgo'sClothes, 15);
Position( aEgo'sClothes, 95, 105);
}
AnimateObj( aBubbles);
IgnoreBlocks( aBubbles);
IgnoreObjs( aBubbles);
Position( aBubbles, 59, 106);
SetView( aBubbles, vHotTubBubbles);
SetPriority( aBubbles, 9);
Draw( aBubbles);
if (currentStatus == CHASING_DOLL)
{
PreventInput();
Set( handsOff);
LoadView( vDollDeflating);
LoadSound( sDollDeflating);
AnimateObj( aDoll);
IgnoreHorizon( aDoll);
IgnoreBlocks( aDoll);
IgnoreObjs( aDoll);
SetView( aDoll, vDollDeflating);
SetPriority( aDoll, 15);
Position( aDoll, 77, 118);
Draw( aDoll);
MoveObj( aDoll, 0, 118, 4, dollDone);
Set( dollOnScreen);
Set( dollSoundDone);
}
egoX = 150;
if (egoY < 97)
{
egoY = 97;
}
if (egoY > 156)
{
egoY = 156;
}
PositionV( ego, egoX, egoY);
Draw( ego);
ShowPic( );
Return( );
} [ end initLOG
Reset( nearHotTub);
if ((Posn( ego, 47, 90, 111, 123) ||
egoInHotTub))
{
Set( nearHotTub);
}
if (eveInHotTub)
{
if ((Posn( ego, 59, 90, 86, 92) || [ Behind the tub
egoInHotTub))
{
Set( nearPerson);
}
}
[*****
:handleInput
[*****
if (!haveInput) {goto noInput;}
if (eveInHotTub)
{
if (lookingAtEve)
{
if ((Said( turn, on, bubbles) ||
Said( turn, bubbles, on) ||
Said( turn, spa, on) ||
Said( turn, on, spa)))
{
if (bubblesOn)
{
Print( 46);
}
else
{
Set( bubblesOn);
Draw( aCloseupBubbles1);
Draw( aCloseupBubbles2);
Draw( aCloseupBubbles3);
Draw( aCloseupBubbles4);
}
}
if ((Said( turn, off, bubbles) ||
Said( turn, bubbles, off) ||
Said( turn, spa, off) ||
Said( turn, off, spa)))
{
if (!bubblesOn)
{
Print( 45);
}
else
{
Reset( bubblesOn);
Erase( aCloseupBubbles1);
Erase( aCloseupBubbles2);
Erase( aCloseupBubbles3);
Erase( aCloseupBubbles4);
}
}
if (Said( use, spray, rol))
{
Reset( haveMatch);
mouth = C_SMILE;
Random( 6, 19, eyeCycles);
Reset( eyesCycling);
}
if (Said( look, bracelet))
{
Print( 47);
}
if ((Said( stop, looking, eve) ||
Said( look, away) ||
Said( look, room) ||
Said( look, garden) ||
Said( stand, rol) ||
Said( look, city) ||
Said( look, away, from, eve)))
{
Set( cutToLongShot);
Set( OK);
}
}
if ((Said( look, face, rol) ||
Said( establish$eye$contact, rol) ||
Said( look, eve, rol)))
{
if (!egoInHotTub)
{
Print( 20);
}
else
{
if (!lookingAtEve)
{
Set( cutToCloseup);
}
else
{
++lookCount;
if (lookCount == 1)
{
Print( 3);
mouth = C_SMILE;
}
if (lookCount == 2)
{
Print( 4);
mouth = C_SMILE;
}
if (lookCount > 2)
{
Print( 21);
mouth = C_NORMAL;
}
}
}
}
if ((Said( talk, rol) ||
Said( say, anyword, eve, rol)))
{
if (!egoInHotTub)
{
Print( 20);
}
else
{
if (!lookingAtEve)
{
Print( 31);
}
else
{
++talkCount;
if (talkCount == 1)
{
Print( 25);
Print( 30);
mouth = C_SMILE;
}
if (talkCount == 2)
{
Print( 33);
Print( 34);
mouth = C_FROWN;
}
if (talkCount == 3)
{
Print( 32);
Print( 30);
mouth = C_SMILE;
}
if (talkCount == 4)
{
Print( 35);
Print( 36);
mouth = C_SMILE;
}
if (talkCount > 4)
{
Print( 37);
mouth = C_SMILE;
}
}
}
}
if ((Said( give, eve, apple, rol) ||
Said( give, apple, rol)))
{
if (!Has( iApple))
{
Print( 8);
}
else
{
if (!egoInHotTub)
{
Print( 20);
}
else
{
if (!lookingAtEve)
{
Print( 31);
}
else
{
script = 200;
Set( scriptDone);
}
}
}
}
if ((Said( give, eve, money, rol) ||
Said( give, money, eve, rol)))
{
if (!egoInHotTub)
{
Print( 20);
}
else
{
if (!lookingAtEve)
{
Print( 31);
}
else
{
mouth = C_FROWN;
}
}
}
if ((Said( look, eyes, rol) ||
Said( look, eyes) ||
Said( look$in, eyes) ||
Said( flirt, with, her) ||
Said( wink, girl) ||
Said( look, mouth, rol)))
{
if (!egoInHotTub)
{
Print( 20);
}
else
{
if (!lookingAtEve)
{
Print( 31);
}
else
{
Print( 4);
}
}
}
if ((Said( drink, wine, rol) ||
Said( pour, wine, rol) ||
Said( pour, wine, rol) ||
Said( pour, eve, wine, rol) ||
Said( ask, eve, drink, wine, rol)))
{
if (!egoInHotTub)
{
Print( 20);
}
else
{
if (!lookingAtEve)
{
Print( 31);
}
else
{
Print( 38);
Print( 39);
mouth = C_SMILE;
}
}
}
if ((Said( get, wine, rol) ||
Said( get, bottle, wine, rol) ||
Said( get, glass, rol)))
{
if (!egoInHotTub)
{
Print( 20);
}
else
{
if (!lookingAtEve)
{
Print( 31);
}
else
{
Print( 43);
}
}
}
if ((Said( look, wine, rol) ||
Said( look, bottle, wine, rol) ||
Said( look, glass, rol)))
{
if (!egoInHotTub)
{
Print( 20);
}
else
{
if (!lookingAtEve)
{
Print( 31);
}
else
{
Print( 44);
}
}
}
if (Said( use, towel, rol))
{
if (!nearHotTub)
{
Set( notCloseEnough);
}
else
{
Print( 40);
mouth = C_SMILE;
}
}
}
if ((Said( get, towel) ||
Said( get, clothes)))
{
Print( 41);
}
if ((Said( look, towel) ||
Said( look, clothes)))
{
Print( 21);
}
if (lookingAtEve)
{
if ((Said( look, her, hair) ||
Said( look, hair) ||
Said( touch, hair) ||
Said( stroke, hair) ||
Said( rub, hair) ||
Said( rub, her, hair)))
{
mouth = C_SMILE;
}
if ((Said( smile) ||
Said( smile, girl) ||
Said( hold, hand) ||
Said( take, her, hand) ||
Said( touch, girl) ||
Said( touch, her) ||
Said( ask, date)))
{
mouth = C_SMILE;
}
if ((Said( ask, name) ||
Said( girl, marry, me) ||
Said( marry, me) ||
Said( marry, girl) ||
Said( ask, girl, get, married) ||
Said( ask, girl, marry, me) ||
Said( talk, about, marriage) ||
Said( put, ring, on, her, finger) ||
Said( propose, her) ||
Said( talk, her, love) ||
Said( love, you) ||
Said( take, her, hand) ||
Said( look, mouth) ||
Said( look, her, mouth) ||
Said( ask, her, name) ||
Said( ask, name, girl)))
{
mouth = C_SMILE;
}
if ((Said( eat, eve, rol) ||
Said( grab, girl) ||
Said( feel, girl) ||
Said( lick, girl) ||
Said( touch, girl, under, table) ||
Said( feel, under, table) ||
Said( grab, leg) ||
Said( touch, leg) ||
Said( feel, her, leg) ||
Said( feel, her, leg, under, table) ||
Said( grab, her, leg) ||
Said( look, girl, tits) ||
Said( look, tits, rol) ||
Said( look, body) ||
Said( stare) ||
Said( stare, boobs) ||
Said( eat, eve, pussy, rol) ||
Said( drain, spa, rol) ||
Said( go, underwater, rol) ||
Said( look, underwater, rol) ||
Said( feel, underwater, rol) ||
Said( touch, boob, rol)))
{
Print( 50);
mouth = C_FROWN;
}
if ((Said( undress, her) ||
Said( ask, girl, for, sex) ||
Said( have, sex, with, me) ||
Said( hump, rol) ||
Said( make, girl) ||
Said( anyword, pussy, rol) ||
Said( lick, her, she, screams) ||
Said( anyword, tits, rol) ||
Said( play, with, her, boobs) ||
Said( grab, tits) ||
Said( fondle, breasts)))
{
Print( 50);
Print( 52);
mouth = C_FROWN;
}
if ((Said( touch, eve, rol) ||
Said( dive, rol) ||
Said( give, girl, kiss) ||
Said( kiss, girl) ||
Said( kiss, eve, rol)))
{
Print( 16);
mouth = C_FROWN;
}
if ((Said( larry) ||
Said( leisure$suit, larry)))
{
Print( 51)
mouth = C_SMILE;
}
}
[ This may look funny, but it's ok, because "go" and "leave" are synonyms!
if ((Said( enter, tub, rol) ||
Said( get, tub, rol) ||
Said( get, in, rol) ||
Said( get, out, rol) ||
Said( enter, rol) ||
Said( climb, in, tub, rol) ||
Said( climb, out, tub, rol) ||
Said( jump, in, tub, rol) ||
Said( jump, tub, rol) ||
Said( get, naked, rol) ||
Said( get, dressed, rol) ||
Said( undress, rol) ||
Said( remove, clothes, rol) ||
Said( put$on, clothes, rol) ||
Said( dress, rol)))
{
if (!eveInHotTub)
{
Print( 19);
}
else
{
if (egoInHotTub)
{
Print( 26);
Set( scriptDone);
script = 100;
}
else
{
Set( OK);
Set( scriptDone);
[ He's in the notch at hot tub's seven o'clock position.
if (Posn( ego, 47, 108, 59, 113))
{
script = 0;
}
else
{
[ Anywhere else to left of tub's three o'clock position
if ((Posn( ego, 59, 90, 93, 100) || [ Above tub.
Posn( ego, 77, 101, 93, 113) || [ Right of tub.
Posn( ego, 30, 114, 93, 167))) [ Below tub.
{
script = 1;
}
else
{
script = 2; [ To right of tub.
}
}
}
}
}
if (Said( look, tub))
{
Print( 1);
if (eveInHotTub)
{
Print( 7);
}
}
if ((Said( look) ||
Said( look, room) ||
Said( look, garden)))
{
Print( 1);
if (eveInHotTub)
{
Print( 7);
}
}
if ((Said( look, city) ||
Said( look, building) ||
Said( look, hotel)))
{
if (egoInHotTub)
{
Print( 29);
}
else
{
Print( 9);
Print( 10);
Print( 11);
Print( 12);
Print( 13);
Print( 14);
Print( 15);
}
}
[*****
:noInput
[*****
if (cutToCloseup)
{
Reset( cutToCloseup);
Set( lookingAtEve);
Set( handsOff);
UnanimateAll(); [ This command requires afterwards:
[ start.update();
[ start.motion();
[ start.cycling();
[ normal.cycle();
[ observe.blocks();
[ observe.horizon();
[ obj.on.anything();
[ release.priority();
[ release.loop();
[ observe.objects();
DrawPic( picture);
AnimateObj( aCloseupBubbles1);
SetView( aCloseupBubbles1, vCloseupBubbles);
SetLoop( aCloseupBubbles1, 0);
SetCel( aCloseupBubbles1, 1);
Position( aCloseupBubbles1, 0, 167);
AnimateObj( aCloseupBubbles2);
SetView( aCloseupBubbles2, vCloseupBubbles);
SetLoop( aCloseupBubbles2, 1);
SetCel( aCloseupBubbles2, 2);
Position( aCloseupBubbles2, 40, 167);
AnimateObj( aCloseupBubbles3);
SetView( aCloseupBubbles3, vCloseupBubbles);
SetLoop( aCloseupBubbles3, 0);
SetCel( aCloseupBubbles3, 3);
Position( aCloseupBubbles3, 80, 167);
AnimateObj( aCloseupBubbles4);
SetView( aCloseupBubbles4, vCloseupBubbles);
SetLoop( aCloseupBubbles4, 1);
SetCel( aCloseupBubbles4, 0);
Position( aCloseupBubbles4, 120, 167);
if (bubblesOn)
{
Draw( aCloseupBubbles1);
Draw( aCloseupBubbles2);
Draw( aCloseupBubbles3);
Draw( aCloseupBubbles4);
}
AnimateObj( aMouth);
SetView( aMouth, vEveFace);
SetLoop( aMouth, L_MOUTH);
SetCel( aMouth, 0);
Position( aMouth, 64, 79);
AnimateObj( aEyes);
IgnoreHorizon( aEyes);
SetView( aEyes, vEveFace);
SetLoop( aEyes, L_EYES);
SetCel( aEyes, 0);
Position( aEyes, 64, 44);
CycleTime( aEyes, three);
if (!mouthOK)
{
SetCel( aMouth, C_FROWN);
breathLineTimer = 6;
}
else
{
SetCel( aMouth, C_NORMAL);
Draw( aEyes);
Random( 6, 19, eyeCycles);
Reset( eyesCycling);
}
Draw( aMouth);
mouth = DONE;
StopUpdate( aMouth);
ShowPic();
}
if (cutToLongShot)
{
Reset( cutToLongShot);
Reset( lookingAtEve);
Reset( handsOff);
eyeCycles = 0;
breathLineTimer = 0;
UnanimateAll();
DrawPic( currentRoom);
AnimateObj( aEve);
IgnoreBlocks( aEve);
IgnoreObjs( aEve);
SetPriority( aEve, 9);
Draw( aEve);
StopUpdate( aEve);
AnimateObj( aBubbles);
IgnoreBlocks( aBubbles);
IgnoreObjs( aBubbles);
SetPriority( aBubbles, 9);
if (bubblesOn)
{
Draw( aBubbles);
}
AnimateObj( aEve'sTowel); [ Put eve's towel by tub.
Draw( aEve'sTowel);
AnimateObj( aEgo'sClothes);
IgnoreBlocks( aEgo'sClothes);
IgnoreObjs( aEgo'sClothes);
SetPriority( aEgo'sClothes, 15);
Draw( aEgo'sClothes);
AnimateObj( ego);
IgnoreBlocks( ego);
SetPriority( ego, 15);
SetView( ego, vEgoInHotTub);
SetLoop( ego, FACING_LEFT);
LastCel( ego, work);
SetCelV( ego, work);
StopCycling( ego);
Draw( ego);
ShowPic();
}
if (lookingAtEve)
{
--eyeCycles;
if (eyeCycles == 1)
{
Toggle( eyesCycling);
if (eyesCycling)
{
StartCycling( aEyes);
Random( 6, 16, eyeCycles);
}
else
{
StopCycling( aEyes);
SetCel( aEyes, 0);
ForceUpdate( aEyes);
Random( 22, 33, eyeCycles);
}
}
if (aSecondPassed)
{
--breathLineTimer;
if (breathLineTimer == 1)
{
if (mouthOK)
{
Print( 23);
}
else
{
Print( 18);
}
}
--mouthTimer;
if (mouthTimer == 1) [ Resume after frown/smile
{
mouth = NORMAL;
}
if (mouth != DONE)
{
if (mouth == NORMAL)
{
eyeCycles = 2; [ Restart eyes.
}
if (mouth == C_SMILE)
{
mouthTimer = SMILE_SECONDS;
Set( eyesCycling);
eyeCycles = 22; [ Bat 'em, baby.
StartCycling( aEyes);
}
if (mouth == C_FROWN)
{
mouthTimer = FROWN_SECONDS;
Reset( eyesCycling);
eyeCycles = 0; [ Stare him down, Eveie.
StopCycling( aEyes);
SetCel( aEyes, 0);
}
SetCelV( aMouth, mouth);
ForceUpdate( aMouth);
mouth = DONE;
}
}
}
if (scriptDone)
{
Reset( scriptDone);
++script;
Set( programControl);
Set( handsOff);
PreventInput();
if (script == 1) [ Walk ego to the side of the tub.
{
step = 1;
y = 114;
MoveObjV( ego, egoX, y, step, scriptDone);
}
if (script == 2)
{
step = 1;
x = 94;
MoveObjV( ego, x, egoY, step, scriptDone);
}
if (script == 3) [ Walk him to position.
{
MoveObj( ego, 94, 102, 1, scriptDone);
}
if (script == 4)
{
SetView( ego, vEgoUndressing);
SetLoop( ego, FACING_LEFT); [ Ego stripping loop.
SetCel( ego, 0);
SetPriority( ego, 15);
work = HOT_TUB_SPEED;
CycleTime( ego, work);
Set( keepCycling);
EndOfLoop( ego, scriptDone);
scriptCycles = 3;
MulN( scriptCycles, HOT_TUB_SPEED);
++scriptCycles;
}
if (script == 5)
{
Draw( aEgo'sClothes); [ Draw his clothes.
}
if (script == 6)
{
SetView( ego, vEgoInHotTub);
SetLoop( ego, FACING_LEFT); [ Leaping into tub loop.
SetCel( ego, 0);
CycleTime( ego, two);
MoveObj( ego, 85, 102, DRESSING_SPEED, scriptDone);
}
if (script == 7)
{
LastCel( ego, work);
SetCelV( ego, work);
StopCycling( ego);
Reset( keepCycling);
Set( noCycling);
StopMotion( ego);
RepositionTo( ego, 86, 102);
scriptTimer = 4;
}
if (script == 8)
{
Set( egoInHotTub);
AcceptInput();
Print( 2);
script = 0;
}
[ Leave the eve in the tub.
if (script == 101)
{
scriptTimer = 0;
if (lookingAtEve)
{
Set( cutToLongShot);
--script; [ Let's try again next pass.
Set( scriptDone);
}
else
{
script = 102;
}
}
if (script == 102)
{
SetLoop( ego, 0); [ Leaping out of the tub loop.
SetCel( ego, 0);
scriptCycles = HOT_TUB_SPEED;
CycleTime( ego, scriptCycles);
MulN( scriptCycles, 9); [ So we change on cel 8.
Set( keepCycling);
Reset( noCycling);
EndOfLoop( ego, scriptDone);
}
if (script == 103)
{
SetView( ego, vEgoUndressing);
SetLoop( ego, FACING_RIGHT); [ Ego undressing, reversed.
LastCel( ego, work);
SetCelV( ego, work);
RepositionTo( ego, 90, 103);
Set( keepCycling);
BeginningOfLoop( ego, scriptDone);
scriptCycles = HOT_TUB_SPEED;
CycleTime( ego, scriptCycles);
MulN( scriptCycles, 9);
}
if (script == 104)
{
Erase( aEgo'sClothes);
}
if (script == 105)
{
Reset( programControl);
Reset( keepCycling);
Reset( egoInHotTub);
Reset( handsOff);
script = 0;
AcceptInput();
ReleasePriority( ego);
ObserveBlocks( ego);
SetView( ego, vEgo);
CycleTime( ego, one);
StepSize( ego, one);
StartMotion( ego);
}
[ Gave her the apple. Take the eve to the bedroom!
if (script == 201)
{
Set( gaveEveApple);
Set( eveGone);
Drop( iApple);
currentScore += 15;
SetCel( aMouth, C_SMILE);
ForceUpdate( aMouth);
mouthTimer = 0; [ Keep smiling from now on.
scriptTimer = 3;
}
if (script == 202)
{
Print( 5);
scriptTimer = 5;
}
if (script == 203)
{
Print( 6);
scriptTimer = 5;
}
if (script == 204)
{
Print( 17);
scriptTimer = 5;
}
if (script == 205)
{
Print( 24);
scriptTimer = 3;
}
if (script == 206)
{
if (lookingAtEve)
{
Set( cutToLongShot);
--script; [ Let's try again next pass.
Set( scriptDone);
}
else
{
script = 207;
}
}
if (script == 207)
{
StartUpdate( aEve);
work = HOT_TUB_SPEED;
CycleTime( aEve, work);
EndOfLoop( aEve, scriptDone);
scriptCycles = 3;
MulN( scriptCycles, HOT_TUB_SPEED);
++scriptCycles;
}
if (script == 208)
{
StartUpdate( aEve'sTowel);
Erase( aEve'sTowel);
}
if (script == 209)
{
SetView( aEve, vEve);
SetLoop( aEve, L_WALKING_RIGHT);
ReleasePriority( aEve);
RepositionTo( aEve, 78, 90);
CycleTime( aEve, one);
StartCycling( aEve);
MoveObj( aEve, 90, 90, 1, scriptDone);
Print( 22);
SetLoop( ego, 0); [ Leaping out of the tub loop.
SetCel( ego, 0);
FixLoop( ego);
work = HOT_TUB_SPEED;
CycleTime( ego, work);
Set( keepCycling);
Reset( noCycling);
EndOfLoop( ego, scriptDone);
}
if (script == 210)
{
MoveObj( aEve, 105, 105, 1, scriptDone);
}
if (script == 211)
{
Print( 27); [ "You ARE glad to see me!"
StopCycling( aEve);
}
if (script == 212) [ Here's the sex change operation.
{
GetPosn( aEve, sourceX, sourceY);
SetView( aEve, vEgoWearingTowel);
StopCycling( aEve);
NormalMotion( aEve);
currentStatus = FOLLOWING_EVE;
Reset( noCycling);
Reset( keepCycling);
SetView( ego, vEve); [ vEgoTransvestite!
SetLoop( ego, L_WALKING_RIGHT);
ReleasePriority( ego);
FixLoop( ego);
RepositionTo( aEve, 96, 104);
RepositionToV( ego, sourceX, sourceY);
CycleTime( ego, one);
StepSize( ego, one);
MoveObj( ego, 151, 122, 1, scriptDone);
}
if (script == 213)
{
Erase( ego); [ Really eve
currentStatus = 255; [ Who knows?
CycleTime( aEve, one);
StepSize( aEve, one);
MoveObj( aEve, 152, 122, 1, scriptDone); [ Really ego!
}
if (script == 214)
{
Reset( handsOff);
currentStatus = FOLLOWING_EVE;
newRoom = rmLivingRoom;
}
}
if (currentStatus == FOLLOWING_EVE)
{
Distance( ego, aEve, work);
if (work > 10)
{
StartCycling( aEve);
FollowEgo( aEve, 2, done);
}
}
if (dollDone)
{
Reset( dollDone);
Reset( handsOff);
Reset( programControl);
Reset( dollOnScreen);
StartMotion( ego);
currentStatus = NORMAL;
Erase( aDoll);
AcceptInput();
Print( 26);
secondsInRoom = 3;
}
if (!dollOnScreen && !beenIn43 && secondsInRoom > 4)
{
Set( beenIn43);
Print( 42);
Print( 48);
Print( 49);
}
if (dollSoundDone && dollOnScreen)
{
Sound( sDollDeflating, dollSoundDone);
}
[*****
:exit [ test for leaving the room
[*****
if (edgeEgoHit == RIGHT) {newRoom = rmLivingRoom;}