449 lines
6.6 KiB
Plaintext
449 lines
6.6 KiB
Plaintext
[logics for room 34 -- rmInsideChapel
|
|
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
|
|
[ by Al Lowe
|
|
|
|
%include "rm34.msg"
|
|
%include "gamedefs.h"
|
|
|
|
|
|
|
|
#define TALK_TIME 3
|
|
|
|
#define L_TALKING 0
|
|
#define L_WALKING 1
|
|
|
|
%define nearAlter lf0
|
|
%define gotMarried lf1
|
|
%define fawnHere lf2
|
|
%define ministerHere lf3
|
|
|
|
%object aCandle1 1
|
|
%object aCandle2 2
|
|
%object aFawn 3
|
|
%object aMinister 4
|
|
|
|
|
|
|
|
if (initLog)
|
|
{
|
|
LoadPic( currentRoom);
|
|
DrawPic( currentRoom);
|
|
DiscardPic( currentRoom);
|
|
|
|
LoadView( vChapelInterior);
|
|
|
|
AddToPic( vChapelInterior, 0, 0, 62, 120, 0, 0);
|
|
AddToPic( vChapelInterior, 0, 0, 93, 120, 0, 0);
|
|
[view, loop, cel, x, y, obj priority, box priority
|
|
|
|
AnimateObj( aCandle1);
|
|
IgnoreObjs( aCandle1);
|
|
SetView( aCandle1, vChapelInterior);
|
|
SetLoop( aCandle1, 1);
|
|
SetCel( aCandle1, 0);
|
|
SetPriority( aCandle1, 11);
|
|
Position( aCandle1, 62, 93);
|
|
Draw( aCandle1);
|
|
|
|
AnimateObj( aCandle2);
|
|
IgnoreObjs( aCandle2);
|
|
Position( aCandle2, 93, 93);
|
|
SetView( aCandle2, vChapelInterior);
|
|
SetLoop( aCandle2, 1);
|
|
SetCel( aCandle2, 1);
|
|
SetPriority( aCandle2, 11);
|
|
Draw( aCandle2);
|
|
|
|
|
|
if (!fawnInRoom &&
|
|
!marriedFawn &&
|
|
gaveFawnEverything)
|
|
{
|
|
Set( fawnHere);
|
|
Set( ministerHere);
|
|
Set( musicDone);
|
|
|
|
LoadView( vFawn);
|
|
LoadView( vChapelMinister);
|
|
LoadSound( mWedding);
|
|
|
|
AnimateObj( aFawn);
|
|
SetView( aFawn, vFawn);
|
|
Position( aFawn, 70, 120);
|
|
SetLoop( aFawn, FACING_FRONT);
|
|
Draw( aFawn);
|
|
StopCycling( aFawn);
|
|
|
|
AnimateObj( aMinister);
|
|
SetView( aMinister, vChapelMinister);
|
|
SetLoop( aMinister, L_TALKING);
|
|
Position( aMinister, 76, 113);
|
|
Draw( aMinister);
|
|
StopCycling( aMinister)
|
|
}
|
|
|
|
Position( ego, 76, 167);
|
|
Draw( ego);
|
|
|
|
ShowPic( );
|
|
|
|
if (unsuccessfulCeremony)
|
|
{
|
|
Reset( unsuccessfulCeremony);
|
|
Print( 27);
|
|
}
|
|
|
|
Return( );
|
|
|
|
} [ end initLOG
|
|
|
|
|
|
Reset( nearAlter);
|
|
if (fawnHere &&
|
|
Posn( ego, 61, 114, 94, 130))
|
|
{
|
|
Set( nearAlter);
|
|
Set( nearPerson);
|
|
}
|
|
|
|
|
|
|
|
[*****
|
|
:handleInput
|
|
[*****
|
|
|
|
if (!haveInput) {goto noInput;}
|
|
|
|
if ((Said( look) ||
|
|
Said( look, room) ||
|
|
Said( look, chapel)))
|
|
{
|
|
if (!fawnHere)
|
|
{
|
|
Print( 1);
|
|
}
|
|
else
|
|
{
|
|
Print( 2);
|
|
}
|
|
}
|
|
|
|
if ((Said( look, window) ||
|
|
Said( look, heart) ||
|
|
Said( look, painting) ||
|
|
Said( look, wall) ||
|
|
Said( look, out, window)))
|
|
{
|
|
Print( 28);
|
|
}
|
|
|
|
if ((Said( look, altar) ||
|
|
Said( look, pews)))
|
|
{
|
|
Print( 29);
|
|
}
|
|
|
|
if (Said( look, ceiling))
|
|
{
|
|
Print( 38);
|
|
}
|
|
|
|
|
|
if ((Said( sit, pews) ||
|
|
Said( sit) ||
|
|
Said( sit, down) ||
|
|
Said( sit, in, pews) ||
|
|
Said( sit, on, pews)))
|
|
{
|
|
Print( 30);
|
|
}
|
|
|
|
if (Said( look, candles))
|
|
{
|
|
Print( 32);
|
|
}
|
|
|
|
if (Said( take, candles))
|
|
{
|
|
Print( 33);
|
|
}
|
|
|
|
if ((Said( blow, out, candles) ||
|
|
Said( blow, candles, out) ||
|
|
Said( put, candles, out) ||
|
|
Said( put, out, candles)))
|
|
{
|
|
Print( 39);
|
|
}
|
|
|
|
|
|
if (ministerHere &&
|
|
Said( look, man))
|
|
{
|
|
Print( 34);
|
|
}
|
|
|
|
if (ministerHere &&
|
|
Said( talk, man))
|
|
{
|
|
Print( 35);
|
|
Print( 37);
|
|
}
|
|
|
|
if (fawnHere &&
|
|
Said( talk, girl))
|
|
{
|
|
Print( 36);
|
|
}
|
|
|
|
|
|
|
|
if (fawnHere &&
|
|
Said( look, fawn))
|
|
{
|
|
Print( 2);
|
|
}
|
|
|
|
if (!script &&
|
|
Said( kiss, fawn))
|
|
{
|
|
Print( 23);
|
|
}
|
|
|
|
if (!script &&
|
|
(Said( marry, fawn) ||
|
|
Said( marry) ||
|
|
Said( say, vows) ||
|
|
Said( give, money, minister) ||
|
|
Said( ask, minister, marry, us) ||
|
|
Said( marry, us) ||
|
|
Said( give, minister) ||
|
|
Said( pay, rol) ||
|
|
Said( get, married) ||
|
|
Said( get, married, fawn) ||
|
|
Said( talk, minister)))
|
|
{
|
|
if (!fawnHere)
|
|
{
|
|
Print( 31);
|
|
}
|
|
else
|
|
{
|
|
if (!nearAlter)
|
|
{
|
|
Print( 26);
|
|
}
|
|
else
|
|
{
|
|
Set( scriptDone);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
[*****
|
|
:noInput
|
|
[*****
|
|
|
|
if (scriptDone)
|
|
{
|
|
Reset( scriptDone);
|
|
++script;
|
|
step = 1;
|
|
|
|
if (script == 1)
|
|
{
|
|
IgnoreObjs( ego);
|
|
Set( programControl);
|
|
PreventInput();
|
|
|
|
if (egoX == 80)
|
|
{
|
|
script = 2;
|
|
}
|
|
else
|
|
{
|
|
x = 80;
|
|
MoveObjV( ego, x, egoY, step, scriptDone);
|
|
}
|
|
}
|
|
|
|
if (script == 2)
|
|
{
|
|
PreventInput();
|
|
MoveObj( ego, 80, 120, 1, scriptDone);
|
|
}
|
|
|
|
if (script == 3)
|
|
{
|
|
PreventInput();
|
|
SetLoop( aFawn, FACING_BACK);
|
|
|
|
StopUpdate( ego);
|
|
SetLoop( ego, FACING_BACK);
|
|
ForceUpdate( ego);
|
|
|
|
Print( 3);
|
|
Print( 4);
|
|
StartCycling( aMinister);
|
|
scriptTimer = TALK_TIME;
|
|
}
|
|
|
|
if (script == 4)
|
|
{
|
|
Print( 5);
|
|
scriptTimer = TALK_TIME;
|
|
}
|
|
|
|
if (script == 5)
|
|
{
|
|
Print( 6);
|
|
scriptTimer = TALK_TIME;
|
|
}
|
|
|
|
if (script == 6)
|
|
{
|
|
Print( 7);
|
|
Print( 8);
|
|
scriptTimer = TALK_TIME;
|
|
}
|
|
|
|
if (script == 7)
|
|
{
|
|
Print( 9);
|
|
scriptTimer = TALK_TIME;
|
|
}
|
|
|
|
if (script == 8)
|
|
{
|
|
Print( 10);
|
|
Print( 11);
|
|
|
|
if (dollars < 100)
|
|
{
|
|
script = 9;
|
|
}
|
|
else
|
|
{
|
|
script = 101;
|
|
}
|
|
}
|
|
|
|
if (script == 9) [ Start the "not enough money" branch.
|
|
{
|
|
Print( 13);
|
|
Print( 14);
|
|
|
|
IgnoreObjs( aMinister);
|
|
RepositionTo( aMinister, 76, 121);
|
|
SetLoop( aMinister, L_WALKING);
|
|
MoveObj( aMinister, 76, 167, 2, scriptDone);
|
|
scriptCycles = 12;
|
|
}
|
|
|
|
if (script == 10)
|
|
{
|
|
Print( 15);
|
|
SetLoop( aFawn, FACING_FRONT);
|
|
|
|
StartUpdate( ego);
|
|
MoveObj( ego, 76, 167, 1, scriptDone);
|
|
scriptCycles = 12;
|
|
}
|
|
|
|
if (script == 11)
|
|
{
|
|
Erase( aMinister);
|
|
Reset( ministerHere);
|
|
Print( 16);
|
|
Print( 17);
|
|
Print( 18);
|
|
Print( 19);
|
|
}
|
|
|
|
if (script == 12)
|
|
{
|
|
Print( 20);
|
|
Erase( ego);
|
|
Set( unsuccessfulCeremony);
|
|
Reset( programControl);
|
|
AcceptInput();
|
|
newRoom = rmOutsideChapel;
|
|
}
|
|
|
|
|
|
|
|
if (script == 101) [ He's got enough to pay for it.
|
|
{
|
|
Print( 12);
|
|
Print( 21);
|
|
dollars -= 100;
|
|
Set( marriedFawn);
|
|
IgnoreObjs( aMinister);
|
|
SetLoop( aMinister, L_WALKING);
|
|
RepositionTo( aMinister, 76, 121);
|
|
StartCycling( aMinister);
|
|
MoveObj( aMinister, 76, 167, 2, scriptDone);
|
|
scriptCycles = 12;
|
|
}
|
|
|
|
if (script == 102)
|
|
{
|
|
Print( 22);
|
|
}
|
|
|
|
if (script == 103)
|
|
{
|
|
Erase( aMinister);
|
|
|
|
Print( 23);
|
|
|
|
StartUpdate( aFawn);
|
|
StartCycling( aFawn);
|
|
MoveObj( aFawn, 76, 167, 2, scriptDone);
|
|
scriptCycles = 12;
|
|
}
|
|
|
|
if (script == 104)
|
|
{
|
|
Print( 24);
|
|
StartUpdate( ego);
|
|
StartMotion( ego);
|
|
Reset( programControl);
|
|
ObserveObjs( ego);
|
|
}
|
|
|
|
if (script == 105)
|
|
{
|
|
Erase( aFawn);
|
|
Set( gotMarried);
|
|
currentScore += 12;
|
|
Reset( fawnHere);
|
|
StopSound();
|
|
Set( fawnInRoom);
|
|
script = 0;
|
|
AcceptInput();
|
|
}
|
|
}
|
|
|
|
|
|
if (fawnHere && musicDone)
|
|
{
|
|
Sound( mWedding, musicDone);
|
|
}
|
|
|
|
|
|
|
|
[*****
|
|
:exit [ test for leaving the room
|
|
[*****
|
|
|
|
if (edgeEgoHit == BOTTOM)
|
|
{
|
|
newRoom = rmOutsideChapel;
|
|
if (gotMarried)
|
|
{
|
|
Print( 25);
|
|
}
|
|
}
|