leisuresuitlarry/RM25.CG

673 lines
11 KiB
Plaintext

[logics for room 25 -- rmFawnCloseup
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm25.msg"
%include "gamedefs.h"
[ must be seated to see closeup of face, and give her stuff.
[ normal cel if nothing happens, else happy cel if gift, or said something
[nice. "Pouty" face if said something nasty, or bad breath.
[ To return to long shot, say leave table, or dance with Fawn
[ if says something rude, add.to.pic mean look, change rooms, and she walks
[away. He has to leave, then enter again.
[ %flag gaveFawnFlowers 71 [ These are pertinent globals.
[ %flag gaveFawnCandy 72
[ %flag gaveFawnRing 73
[ %flag dancedWithFawn 74
#define L_MOUTH 0
#define C_NORMAL 0 [ mouth cells
#define C_SMILE 1
#define C_FROWN 2
#define DONE 255
#define L_EYES 1
#define TALK_TIME 4
%define cutToLongShot lf0
%define nearFawn lf2
%define eyesCycling lf6
%define fawnLeaving lf11
%define turnHeadsToFloor lf13
%define turnHeadsToTable lf14
%define eyeCycles lv2
%define breathLineTimer lv3
%define lookCount lv4
%define mouthTimer lv6
%define mouth lv7
%define fawnScript lv8
%object aMouth 3
%object aEyes 4
if (initLog)
{
SetHorizon( 1);
LoadPic( currentRoom);
DrawPic( currentRoom);
DiscardPic( currentRoom);
LoadView( vFawnFace);
Set( handsOff);
AnimateObj( aMouth);
SetView( aMouth, vFawnFace);
SetLoop( aMouth, L_MOUTH);
SetCel( aMouth, 0);
SetPriority( aMouth, 4);
Position( aMouth, 56, 93);
StopCycling( aMouth);
AnimateObj( aEyes);
SetView( aEyes, vFawnFace);
SetLoop( aEyes, L_EYES);
SetCel( aEyes, 0);
SetPriority( aEyes, 5);
Position( aEyes, 62, 49);
StopCycling( aEyes);
CycleTime( aEyes, three);
if (!mouthOK)
{
SetCel( aMouth, C_FROWN);
breathLineTimer = TALK_TIME;
}
else
{
SetCel( aMouth, C_NORMAL);
Draw( aEyes);
Random( 6, 19, eyeCycles);
Reset( eyesCycling);
}
Draw( aMouth);
mouth = DONE;
StopUpdate( aMouth);
ShowPic( );
Return( );
} [ end initLOG
Set( nearFawn);
Set( nearPerson);
[*****
:handleInput
[*****
if (!haveInput) {goto noInput;}
if ((Said( order, drink) ||
Said( buy, whiskey) ||
Said( buy, wine) ||
Said( buy, booze) ||
Said( buy, girl, drink)))
{
Print( 57);
}
if ((Said( talk, men) ||
Said( talk, man)))
{
Print( 63);
}
if ((Said( look, fawn, rol) ||
Said( establish$eye$contact, rol) ||
Said( look$in, fawn, rol)))
{
++lookCount;
if (lookCount == 1)
{
Print( 2);
Print( 3);
}
if (lookCount == 2)
{
Print( 24);
}
if (lookCount > 2)
{
Print( 4);
mouth = C_SMILE;
}
}
if ((Said( stand) ||
Said( get$up, from, chair) ||
Said( get, off, chair) ||
Said( stop, looking, fawn) ||
Said( look, me) ||
Said( look, away) ||
Said( look, away, from, fawn) ||
Said( leave, chair, rol) ||
Said( leave) ||
Said( leave, table, rol) ||
Said( stand, up, rol)))
{
Set( makeEgoRise);
Set( cutToLongShot);
Set( OK);
}
if ((Said( look) ||
Said( look, room) ||
Said( look, tables) ||
Said( look, disco)))
{
Print( 1);
}
if ((Said( look, dance, floor) ||
Said( look, floor)))
{
Print( 40);
}
if ((Said( look, men) ||
Said( look, man)))
{
if (noFawnInDisco)
{
Print( 5);
}
else
{
Print( 41);
}
}
if (Said( look, dj))
{
Print( 42);
}
if (Said( use, spray))
{
Reset( haveMatch);
mouth = C_SMILE;
Random( 6, 19, eyeCycles);
Reset( eyesCycling);
}
if ((Said( talk, fawn) ||
Said( say, anyword, fawn)))
{
++fawnTalkCount;
if (fawnTalkCount == 1)
{
if (!talkedToFawn)
{
Set( talkedToFawn);
currentScore += 1;
}
Print( 23);
Print( 46);
mouth = C_FROWN;
}
if (fawnTalkCount == 2)
{
Print( 47);
Print( 48);
mouth = C_FROWN;
}
if (fawnTalkCount == 3)
{
Print( 49);
Print( 43);
}
if (fawnTalkCount == 4)
{
Print( 32);
Print( 33);
Print( 34);
mouth = C_SMILE;
}
if (fawnTalkCount > 4)
{
if (askedForMoney)
{
Print( 58);
}
else
{
Print( 50);
Print( 26);
Print( 27);
Print( 28);
Print( 51);
mouth = C_SMILE;
}
}
}
if (Said( come, with, me))
{
Print( 44);
mouth = C_SMILE;
}
if ((Said( talk, her, love) ||
Said( love, you) ||
Said( take, her, hand)))
{
Print( 39);
mouth = C_SMILE;
}
if ((Said( look, mouth) ||
Said( look, girl, mouth)))
{
Print( 31);
}
if ((Said( ask, name) ||
Said( ask, her, name) ||
Said( ask, name, girl)))
{
Print( 33);
Print( 34);
mouth = C_SMILE;
}
if ((Said( larry) ||
Said( leisure$suit, larry)))
{
Print( 30);
}
if ((Said( look, her, hair) ||
Said( look, hair) ||
Said( touch, hair) ||
Said( stroke, hair) ||
Said( rub, hair) ||
Said( rub, her, hair)))
{
Print( 29);
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)))
{
Print( 19);
mouth = C_SMILE;
}
if ((Said( look, eyes) ||
Said( look$in, eyes) ||
Said( flirt, with, her) ||
Said( wink, girl) ||
Said( give, girl, kiss) ||
Said( kiss, girl)))
{
mouth = C_SMILE;
}
if ((Said( dance) ||
Said( dance, fawn) ||
Said( dance, me) ||
Said( dance, with, me) ||
Said( dance, with, fawn) ||
Said( you, dance, fawn) ||
Said( you, dance, me) ||
Said( you, like, dance, rol) ||
Said( you, dance, with, me) ||
Said( you, dance, with, fawn) ||
Said( enjoy, dance) ||
Said( enjoy, dance, with, me) ||
Said( you, enjoy, dance) ||
Said( you, enjoy, dance, with, me) ||
Said( you, enjoy, dance, with, fawn) ||
Said( ask, dance, fawn) ||
Said( ask, fawn, dance) ||
Said( ask, fawn, dance, with, me) ||
Said( ask, fawn, dance, me) ||
Said( start, dance)))
{
if (dancedWithFawn)
{
Print( 59);
}
else
{
if (moneyTimer)
{
Print( 20);
moneyTimer = 17;
}
else
{
Set( makeFawnDance);
Set( scriptDone);
script = 0;
}
}
}
if ((Said( give, fawn, rose) ||
Said( give, rose) ||
Said( give, rose, fawn)))
{
if (!Has( iRose))
{
Set( dontHaveIt);
}
else
{
currentScore += 5;
Print( 9);
Set( gaveFawnRose);
Drop( iRose);
mouth = C_SMILE;
}
}
if ((Said( give, fawn, candy) ||
Said( give, candy) ||
Said( give, candy, fawn)))
{
if (!Has( iCandy))
{
Set( dontHaveIt);
}
else
{
currentScore += 5;
Print( 10);
Set( gaveFawnCandy);
Drop( iCandy);
mouth = C_SMILE;
}
}
if ((Said( give, fawn, ring) ||
Said( give, ring) ||
Said( give, ring, fawn)))
{
if (!Has( iRing))
{
Set( dontHaveIt);
}
else
{
currentScore += 5;
Print( 11);
Set( gaveFawnRing);
Drop( iRing);
mouth = C_SMILE;
}
}
if ((Said( give, fawn, money) ||
Said( give, money) ||
Said( pay, girl, money) ||
Said( pay, money) ||
Said( pay, girl, one, money) ||
Said( pay, girl) ||
Said( give, one, money, fawn) ||
Said( give, fawn, one, dollars) || [ this makes one hundred work
Said( give, money, fawn)))
{
if (!askedForMoney)
{
Print( 13);
mouth = C_FROWN;
}
else
{
if (dollars < 100)
{
Print( 64);
Print( 35);
Print( 12);
Print( 36);
Print( 37);
Print( 65);
moneyTimer = 0;
}
else
{
currentScore += 7;
Print( 14);
Print( 15);
mouth = C_SMILE;
moneyTimer = 0;
dollars -= 100;
Set( makeFawnSplit);
Set( gaveFawnEverything);
Set( cutToLongShot);
}
}
}
if ((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( propose, her)))
{
Print( 38);
mouth = C_SMILE;
}
if ((Said( touch, fawn, rol) ||
Said( eat, fawn, rol) ||
Said( hump, fawn, rol) ||
Said( kiss, fawn, 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( touch, tit, rol)))
{
Print( 60);
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( 60);
Print( 61);
mouth = C_FROWN;
}
if ((Said( look, girl, tits) ||
Said( look, tits, rol) ||
Said( look, body) ||
Said( stare) ||
Said( stare, boobs)))
{
Print( 4);
mouth = C_SMILE;
}
[*****
:noInput
[*****
--eyeCycles; [ bat them eyes
if (eyeCycles == 1)
{
Toggle( eyesCycling);
if (eyesCycling)
{
StartCycling( aEyes);
Random( 6, 18, eyeCycles);
}
else
{
StopCycling( aEyes);
SetCel( aEyes, 0);
Random( 11, 33, eyeCycles);
}
}
if (aSecondPassed)
{
--breathLineTimer;
if (breathLineTimer == 1) [ Lay that zinger on him
{
Print( 25);
}
--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, Fawnie.
StopCycling( aEyes);
SetCel( aEyes, 0);
}
SetCelV( aMouth, mouth);
ForceUpdate( aMouth);
mouth = DONE;
}
}
[ He's done damn near everything for her; what more could that bitch want?!
if (gaveFawnRose &&
gaveFawnCandy &&
gaveFawnRing &&
dancedWithFawn)
{
if (!askedForMoney)
{
Set( askedForMoney);
Print( 16);
Print( 17);
Print( 18);
moneyTimer = 30;
}
}
if (aSecondPassed)
{
--moneyTimer;
if (moneyTimer == 15)
{
Print( 21);
}
if (moneyTimer == 1)
{
Print( 22);
Set( cutToLongShot);
Set( makeFawnSplit);
}
}
if (scriptDone)
{
Reset( scriptDone);
++script;
if (script == 1) [ Do the "Airplane" sequence.
{
mouth = C_SMILE;
Print( 7);
scriptTimer = 6;
}
if (script == 2)
{
Set( cutToLongShot);
}
}
[*****
:exit [ test for leaving the room
[*****
if (edgeEgoHit == BOTTOM) {newRoom = rmOutsideDisco;}
if (cutToLongShot)
{
Reset( handsOff);
newRoom = rmInsideDisco;
}