leisuresuitlarry/RM9.CG

262 lines
3.6 KiB
Plaintext

[logics for room 9 -- rmDarkAlley
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm9.msg"
%include "gamedefs.h"
%define manOnScreen lf0
%define manLeaving lf1
%object aMan 1
if (initLog)
{
LoadView( vEgoDead);
LoadView( vEgoCollapsing);
LoadView( vEgoGettingBeaten);
LoadView( vMugger);
LoadView( vMuggerAttacking);
LoadSound( mAlley);
LoadPic( currentRoom);
DrawPic( currentRoom);
DiscardPic( currentRoom);
AnimateObj( aMan);
IgnoreObjs( aMan);
SetView( aMan, vMugger);
SetLoop( aMan, FACING_LEFT);
SetCel( aMan, 1);
Position( aMan, 124, 131);
Draw( aMan);
StepSize( aMan, two);
Set( scriptDone);
Set( manOnScreen);
if ((oldEdgeEgoHit == LEFT ||
oldEdgeEgoHit == RIGHT))
{
if (egoY < 158)
{
egoY = 158;
}
}
if ((oldEdgeEgoHit == TOP ||
oldEdgeEgoHit == BOTTOM))
{
egoX = 77;
egoY = 167;
}
PositionV( ego, egoX, egoY);
Draw( ego);
ShowPic( );
Sound( mAlley, musicDone);
Return( );
} [ end initLOG
[*****
:handleInput
[*****
if (haveInput)
{
Set( haveMatch);
if (script > 5)
{
Print( 4);
}
else
{
Print( 5)
}
}
[*****
:noInput
[*****
if (scriptDone)
{
Reset( scriptDone);
++script;
if (script == 1)
{
MoveObj( aMan, 112, 131, 2, scriptDone);
}
if (script == 2)
{
FollowEgo( aMan, 8, scriptDone);
}
if (script == 3)
{
Set( handsOff);
StopMotion( ego);
Set( programControl);
SetView( aMan, vMuggerAttacking);
GetPosn( aMan, x, y);
if (x < egoX)
{
SetLoop( aMan, 1);
if (egoX > 12)
{
x = egoX;
x -= 13;
}
else
{
x = 0;
}
}
else
{
SetLoop( aMan, 0);
if (egoX < 140)
{
x = egoX;
x += 5;
}
else
{
x = 145;
}
}
y = egoY;
SetCel( aMan, 0);
RepositionToV( aMan, x, y);
scriptCycles = 7;
}
if (script == 4)
{
Erase( aMan);
Reset( manOnScreen);
Set( keepCycling);
SetView( ego, vEgoGettingBeaten);
if (egoX > 5)
{
egoX -= 5;
}
else
{
egoX = 0;
}
if (egoY < 162)
{
egoY += 5;
}
else
{
egoY = 167;
}
RepositionToV( ego, egoX, egoY);
scriptTimer = 5;
}
if (script == 5)
{
SetView( aMan, vMugger);
Draw( aMan);
Wander( aMan);
Set( manLeaving);
scriptTimer = 3;
}
if (script == 6)
{
SetView( ego, vEgoCollapsing);
currentStatus = COLLAPSING;
CycleTime( ego, two);
EndOfLoop( ego, scriptDone);
}
if (script == 6)
{
Print( 1);
scriptTimer = 3;
}
if (script == 7)
{
Reset( keepCycling);
SetView( ego, vEgoDead);
currentStatus = RECYCLING;
SetCel( ego, 0);
if (egoX > 2)
{
egoX -= 3;
}
if (egoY < 160)
{
egoY += 7;
}
RepositionToV( ego, egoX, egoY);
scriptTimer = 5;
}
if (script == 8)
{
Print( 3);
Set( keepCycling);
CycleTime( ego, three);
EndOfLoop( ego, scriptDone);
}
if (script == 9)
{
Reset( handsOff);
newRoom = rmWorkshop;
}
}
if (musicDone && manOnScreen)
{
Sound( mAlley, musicDone);
}
[*****
:exit [ test for leaving the room
[*****
if (manLeaving &&
edgeObjHit &&
objHitEdge == aMan)
{
Reset( manLeaving);
Erase( aMan);
StopSound();
}
if (oldEdgeEgoHit == RIGHT &&
edgeEgoHit == LEFT) {newRoom = previousRoom;}
if (oldEdgeEgoHit == LEFT &&
edgeEgoHit == RIGHT) {newRoom = previousRoom;}
if (edgeEgoHit == BOTTOM &&
(oldEdgeEgoHit == TOP ||
oldEdgeEgoHit == BOTTOM)) {newRoom = previousRoom;}