Author Topic: Al Lowe reveals his Sierra source code collection—then puts all of it on eBay  (Read 28494 times)

0 Members and 1 Guest are viewing this topic.

Offline OmerMor

I would love to see the real source, especially the comments, etc.

If the buyer won't publish the stuff, I'm certain someone would leak it...  ;)

Offline troflip

Aaaaaand all the Larry stuff has vanished...
Check out my website: http://icefallgames.com
Groundhog Day Competition

Offline Kawa

In the "bought by a hoarder" sense or in the "bitrotted away" sense?

Offline MusicallyInspired

The auctions were cancelled.
Brass Lantern Prop Competition

Offline lskovlun

Well, the Larry ones were. His copy of Bop-A-Bet is still up. ;) Guess someone didn't like him selling authentic source code...

Offline lance.ewing

Saw this in the Youtube comments a short while ago:

Quote from: thejobloshow
A few people on the Sierra Gamers Facebook group reached out to Al and said it was because Activision sent a cease-and-desist. Activision doesn't own the IP for Larry but was compelled to act because some of the source code might also be used in King's Quest and Space Quest, which AV does own. Al stated that AV is wrong but doesn't want to take legal action because it will cost more than what the source code is going for.

https://www.facebook.com/groups/273746983994/

And this quote from the mentioned Facebook page:

Quote from: Britton Mathews
I called Al yesterday to ask him.
He received a letter from an outside law firm hired by Activison that ordered him to take it down. He said in the letter Activison understood they don’t own the IP to LSL but that the source code probably contained shared code to Kings Quest and Space Quest. For that reason they sent him the letter.

Al and I agreed that he was right, but by the time you hire an attorney to prove you’re right, it would have cost more than what he would have got from the auctions.

If I had to take a guess, this is one of those scenarios where Activison is compelled to act. You can’t pick and choose when to enforce IP rights. If they chose not to go after Al and then someone else releases source code that they actually care about, attorneys can point to ALS scenario and say Activison is being partial and selective in their enforcement of their IP rights, which you can’t do under US law.

Probably a good thing that Al didn't yet start the KQ3 and PQ1 auctions, which apparently he was intending to do.

Offline Collector

I would love to see the KQ3 source.
KQII Remake Pic

Offline EricOakford

So, Activision killed the auctions. In all fairness, while they don't own Larry, they do own much of the other Sierra franchises, and they share engines.

I imagine the legal issue is referring to the system scripts that the AGI and SCI games all share. There's just one problem, though: many of those scripts are also in freely available demos. I took advantage of that fact when creating the SCI01 template game, using the QFG2 demo as the foundation and the interpreter from the EGA 1990 Christmas Card.

Quote from: Briton Mathews
If I had to take a guess, this is one of those scenarios where Activison is compelled to act. You can’t pick and choose when to enforce IP rights. If they chose not to go after Al and then someone else releases source code that they actually care about, attorneys can point to ALS scenario and say Activison is being partial and selective in their enforcement of their IP rights, which you can’t do under US law.

That would be true to an extent with trademarks, but it's completely wrong copyright-wise. A copyright owner can, in fact, pick and choose when to enforce their rights. The worst thing that would happen by ignoring copyright violations is less damages awarded to the copyright owner in a lawsuit.
I'm no lawyer, by the way; I just read the TV Tropes article regarding copyright law (it explains that defending a copyright is not required, simply allowed), as well as this article regarding copyright myths (the relevant one is number 5).
My SCI templates
SCI0 SCI0.1 SCI1.0 SCI1.1
SCI2.1 planned

Offline pmkelly

I imagine the legal issue is referring to the system scripts that the AGI and SCI games all share. There's just one problem, though: many of those scripts are also in freely available demos.

I suspect with regards to these their objection was about the source code being released; the script binaries (which the AGI community has been able to decompile) are publicly available separately.

Having said that, i think this is really unfortunate news, and means we may never get to see the original sources to Larry or Sierra's other titles. The only circumstances under which I could see them becoming public is if Activision could somehow be convinced to donate the sources to the Internet Archive for the purposes of preserving an important piece of gaming history - but I think any such efforts are unlikely to be successful.

Offline lance.ewing

Having said that, i think this is really unfortunate news, and means we may never get to see the original sources to Larry or Sierra's other titles. The only circumstances under which I could see them becoming public is if Activision could somehow be convinced to donate the sources to the Internet Archive for the purposes of preserving an important piece of gaming history - but I think any such efforts are unlikely to be successful.

Hi Peter !   :)

Really great to see you join the forum. Hope we see a few more posts from you. It's been a long time. Any thoughts on doing anything in the AGI community again?

I've been dabbling with a C# AGI interpreter recently, in fact Collector will be happy to know I've got tired of working on my Vectrex emulator and decided to switch back to the C# AGI interpreter. Currently working on playing sounds.

Offline OmerMor

Having said that, i think this is really unfortunate news, and means we may never get to see the original sources to Larry or Sierra's other titles.

Hi Peter,
Don't despair. Here's the source for LSL1's Lefty's bar (RM15):

RM15.CG
Code: [Select]
[logics for room 15 -- rmInsideBar
[    "Leisure Suit Larry in the Land of the Lounge Lizards"
[    by Al Lowe

%include  "rm15.msg"
%include  "gamedefs.h"



#define   L_PEEPHOLE               0
#define   L_CEILING_FAN            1
#define   L_JUKEBOX                2
#define   L_MEN_ON_STOOL           0
#define   L_GIRL_ON_STOOL          1
#define   L_EGO_ON_STOOL           2
%define   BAR_Y                    136
%define   WAITING_FOR_PASSWORD     3


%define   legCycling               lf0
%define   bartenderWandering       lf1
%define   boreCycling              lf2
%define   nearJukeBox              lf3
%define   nearGirl                 lf4
%define   nearBore                 lf5
%define   nearEmptyStool           lf6
%define   nearMen                  lf7
%define   nearDoor                 lf8
%define   doorScriptDone           lf9
%define   startJukeBox             lf10
%define   orderedAWhiskey          lf11
%define   orderedABeer             lf12
%define   orderedAWine             lf13
%define   staggering               lf14
%define   tookADrink               lf15
%define   beenToldPrice            lf16

%define   heardJoke1               lf21
%define   heardJoke2               lf22
%define   heardJoke3               lf23
%define   heardJoke4               lf24
%define   heardJoke5               lf25
%define   heardJoke6               lf26
%define   heardJoke7               lf27
%define   heardJoke8               lf28
%define   heardJoke9               lf29


%define   jukeBoxTimer             lv0
%define   bartenderTimer           lv1
%define   legCycles                lv2
%define   boreTalkCycles           lv3
%define   jokeSeconds              lv4
%define   doorTimer                lv5
%define   doorScript               lv6
%define   drinkCount               lv7
%define   staggerCycles            lv8
%define   drunkSeconds             lv9
%define   joke                     lv10
%define   tipCount                 lv11


%object   aDoor                    1
%object   aPeepHole                2
%object   aFan                     3
%object   aJukeBox                 4
%object   aGirl                    5
%object   aBore                    6
%object   aBartender               7



if (initLog)
     {
     SetHorizon( 99);

     LoadPic( currentRoom);
     DrawPic( currentRoom);
     DiscardPic( currentRoom);

     LoadSound( mTitle);

     LoadView( vPimpDoor);
     LoadView( vBarInterior);
     LoadView( vBarGreaser);
     LoadView( vBarFlys);
     LoadView( vBarDoor);
     LoadView( vBartender);


     LoadView( vPainting);
     AddToPic( vPainting, 0, 0, 81, 69, 4, 4);
          [view, loop, cel,  x,   y, obj priority, box priority
     DiscardView( vPainting);

     AddToPic( vBarFlys, 0, 0, 112, 128, 11, 0);
     AddToPic( vBarFlys, 0, 1, 101, 128, 11, 0);


     AnimateObj( aDoor);
     IgnoreBlocks( aDoor);
     IgnoreObjs( aDoor);
     Position( aDoor, 142, 150);
     SetView( aDoor, vPimpDoor);
     SetCel( aDoor, 0);
     SetPriority( aDoor, 11);
     Draw( aDoor);
     work = DOOR_CYCLE_TIME;
     CycleTime( aDoor, work);
     StopUpdate( aDoor);

     AnimateObj( aPeepHole);
     SetView( aPeepHole, vBarInterior);
     SetLoop( aPeepHole, L_PEEPHOLE);
     FixLoop( aPeepHole);
     SetCel( aPeepHole, 0);
     SetPriority( aPeepHole, 12);
     Position( aPeepHole, 143, 110);

     AnimateObj( aFan);
     IgnoreHorizon( aFan);
     Position( aFan, 66, 66);
     SetView( aFan, vBarInterior);
     SetLoop( aFan, L_CEILING_FAN);
     FixLoop( aFan);
     SetCel( aFan, 0);
     Draw( aFan);
     CycleTime( aFan, two);

     AnimateObj( aJukeBox);
     IgnoreBlocks( aJukeBox);
     IgnoreObjs( aJukeBox);
     SetView( aJukeBox, vBarInterior);
     SetLoop( aJukeBox, L_JUKEBOX);
     FixLoop( aJukeBox);
     SetCel( aJukeBox, 1);
     Position( aJukeBox, 16, 128);
     SetPriority( aJukeBox, 11);
     Draw( aJukeBox);
     StopUpdate( aJukeBox);

     AnimateObj( aGirl);
     IgnoreBlocks( aGirl);
     IgnoreObjs( aGirl);
     SetView( aGirl, vBarFlys);
     SetLoop( aGirl, L_GIRL_ON_STOOL);
     SetCel( aGirl, 0);
     SetPriority( aGirl, 11);
     Position( aGirl, 65, 128);
     Draw( aGirl);
     CycleTime( aGirl, two);

     AnimateObj( aBore);
     IgnoreBlocks( aBore);
     SetView( aBore, vBarGreaser);
     SetLoop( aBore, FACING_LEFT);
     SetPriority( aBore, 11);
     Position( aBore, 77, 128);
     Draw( aBore);

     AnimateObj( aBartender);
     SetView( aBartender, vBartender);
     SetLoop( aBartender, 0);
     SetCel( aBartender, 0);
     Position( aBartender, 106, 101);
     Draw( aBartender);
     StopUpdate( aBartender);

     if (previousRoom == rmBackroom)
          {
          egoX = 141;
          egoY = 148;
          }
     else
          {
          if (previousRoom == rmHallway)
               {
               egoX = 39;
               egoY = 108;
               }
          else
               {
               egoX = 76;
               egoY = 167;
               }
          }
     PositionV( ego, egoX, egoY);
     Draw( ego);

     Random( 15, 32, bartenderTimer);
     Random( 4, 32, legCycles);
     Random( 15, 32, boreTalkCycles);

     ShowPic( );

     Return( );

     }                                  [    end initLOG



if (Posn( ego, 45, 120, 133, 159))      [    near bar
     {
     SetPriority( ego, 12);
     }
else
     {
     ReleasePriority( ego);
     }

Reset( nearJukeBox);
if (Posn( ego, 0, 117, 33, 131))
     {
     Set( nearJukeBox);
     }

Reset( nearGirl);
if (Posn( ego, 55, 0, 78, BAR_Y))
     {
     Set( nearGirl);
     Set( nearPerson);
     }

Reset( nearBore);
if (Posn( ego, 71, 0, 87, BAR_Y))
     {
     Set( nearBore);
     Set( nearPerson);
     }

Reset( nearEmptyStool);
if (Posn( ego, 85, 0, 99, BAR_Y))
     {
     Set( nearEmptyStool);
     }

Reset( nearMen);
if (Posn( ego, 94, 0, 124, BAR_Y))
     {
     Set( nearMen);
     Set( nearPerson);
     }

Reset( nearDoor);
if (Posn( ego, 132, 137, 149, 154))
     {
     Set( nearDoor);
     }


[*****
:handleInput
[*****

if (!haveInput)               {goto noInput;}


[    Handle the pimp door sequence.

if (doorScript != WAITING_FOR_PASSWORD)
     {
     if (Said( ken$sent$me))
          {
          Print( 6);
          }
     }
else
     {
     Set( doorScriptDone);
     if (Said( ken$sent$me))
          {
          doorScript = 100;
          doorTimer = 0;
          }
     Set( haveMatch);
     unknownWord = 0;
     }

if ((Said( ask, anyword, password) ||
     Said( ask, password)))
     {
     if (!nearPerson)
          {
          Set( notCloseEnough);
          }
     else
          {
          Print( 68);
          }
     }

if ((Said( unlock, door) ||
     Said( open, door)))
     {
     if (!nearDoor)
          {
          Set( notCloseEnough);
          }
     else
          {
          Print( 47);
          }
     }

if ((Said( look, peephole, rol) ||
     Said( look$in, peephole, rol) ||
     Said( look, door) ||
     Said( look$in, door) ||
     Said( look, window, rol) ||
     Said( look$in, window, rol)))
     {
     Print( 65);
     }

if ((Said( break, down, door) ||
     Said( break, door, rol) ||
     Said( hit, door)))
     {
     if (!nearDoor)
          {
          Set( notCloseEnough);
          }
     else
          {
          Print( 55);
          }
     }

if (Said( knock, rol))
     {
     if (!nearDoor)
          {
          Set( notCloseEnough);                   
          }
     else
          {
          if (doorScript)
               {
               Print( 46);
               }
          else
               {
               Set( programControl);
               StopMotion( ego);
               Print( 5);
               doorTimer = 3;
               }
          }
     }

if ((Said( unlock, door, rol) ||
     Said( use, key, rol)))
     {
     if (!nearDoor)
          {
          Set( notCloseEnough);
          }
     else
          {
          Print( 63);
          }
     }


[    General purpose looks.

if ((Said( look) ||
     Said( look, room) ||
     Said( look, bar)))
     {
     Print( 1);
     }

if ((Said( tip, bartender) ||
     Said( give, bartender, money) ||
     Said( give, money, bartender) ||
     Said( give, tip, bartender)))
     {
     if (currentStatus != ON_BAR_STOOL)
          {
          Print( 33);
          }
     else
          {
          if (!dollars > 4)
               {
               Print( 76);
               }
          else
               {
               ++tipCount;
               dollars -= 5;
               if (tipCount == 1)                 {Print( 77);}
               if (tipCount == 2)                 {Print( 78);}
               if (tipCount == 3)                 {Print( 79);}
               if (tipCount == 4)                 {Print( 80);}
               if (tipCount  > 4)                 {Print( 81);}
               }
          }
     }

if (Said( look, bartender))
     {
     Print( 82);
     Print( 83);
     }

if (Said( buy, bartender, drink))
     {
     if (currentStatus != ON_BAR_STOOL)
          {
          Print( 33);
          }
     else
          {
          Print( 69);
          }
     }

if (Said( buy, round))
     {
     if (currentStatus != ON_BAR_STOOL)
          {
          Print( 33);
          }
     else
          {
          if (!beenToldPrice)
               {
               Set( beenToldPrice);
               Print( 70);
               }
          else
               {
               dollars = 0;
               Print( 71);
               }
          }
     }

if ((Said( give, bartender, money) ||
     Said( give, money, bartender) ||
     Said( pay, lefty) ||
     Said( bribe, lefty)))
     {
     Print( 72);
     }

if (Said( look, moose))
     {
     Print( 45);
     }

if (Said( look, girl))
     {
     Print( 48);
     }

if ((Said( look, man) ||
     Said( look, people)))
     {
     Print( 53);
     }

if (Said( look, fan))
     {
     Print( 49);
     Print( 50);
     }

if (Said( look, painting))
     {
     Print( 51);
     }

if ((Said( touch, girl) ||
     Said( touch, girl, leg) ||
     Said( touch, leg) ||
     Said( look, leg) ||
     Said( feel, leg) ||
     Said( feel, girl, leg) ||
     Said( feel, girl)))
     {
     if (!nearGirl)
          {
          Set( notCloseEnough);
          }
     else
          {
          Print( 67);
          }
     }

if ((Said( pick$up, girl) ||
     Said( ask, girl, dance) ||
     Said( dance, with, girl) ||
     Said( buy, girl, drink) ||
     Said( kiss, girl) ||
     Said( talk, girl)))
     {
     if (!nearGirl)
          {
          Set( notCloseEnough);
          }
     else
          {
          Print( 60);
          Print( 56);
          Print( 57);
          }
     }

if ((Said( listen, man) ||
     Said( talk, man)))
     {
     if ((nearBore || currentStatus == ON_BAR_STOOL))
          {
          Print( 59);
          }
     else
          {
          if (nearMen)
               {
               Print( 61);
               }
          else
               {
               Set( notCloseEnough);
               }
          }
     }

if ((Said( look, jukebox) ||
     Said( look$in, jukebox)))
     {
     if (!nearJukeBox)
          {
          Set( notCloseEnough);
          }
     else
          {
          Print( 64);
          }
     }

if ((Said( play, jukebox) ||
     Said( use, jukebox) ||
     Said( play, music) ||
     Said( put, anyword, dollar, jukebox) ||
     Said( put, dollar, jukebox) ||
     Said( put, money, jukebox)))
     {
     if (!nearJukeBox)
          {
          Set( notCloseEnough);
          }
     else
          {
          Print( 4);
          dollars -= 1;
          Set( startJukeBox);
          }
     }

if ((Said( use, hammer, door) ||
     Said( open, door, use, hammer) ||
     Said( hit, door, with, hammer) ||
     Said( use, hammer, open, door) ||
     Said( use, hammer, door) ||
     Said( use, hammer, on, door) ||
     Said( hammer, on, door)))
     {
     if (!nearDoor)
          {
          Set( notCloseEnough);
          }
     else
          {
          if (!Has( iHammer))
               {
               Set( dontHaveIt);
               }
          else
               {
               Print( 73);
               }
          }
     }


[    Handle the purchase of libations.

if ((Said( order, drink) ||
     Said( buy, drink, wino) ||
     Said( buy, wino, drink) ||
     Said( buy, drink) ||
     Said( drink) ||
     Said( talk, bartender)))
     {
     if (currentStatus != ON_BAR_STOOL)
          {
          Print( 20);
          }
     else
          {
          Print( 21);
          }
     }

if ((Said( wine) ||
     Said( give, me, wine) ||
     Said( get, wine) ||
     Said( order, wine)))
     {
     if (currentStatus != ON_BAR_STOOL)
          {
          Print( 33);
          }
     else
          {
          if (script && script < 5)
               {
               Print( 40);
               }
          else
               {
               Print( 36);
               Print( 37);
               Set( orderedAWine);
               script = 0;
               Set( scriptDone);
               }
          }
     }

if ((Said( beer) ||
     Said( give, me, beer) ||
     Said( get, beer) ||
     Said( order, beer)))
     {
     if (currentStatus != ON_BAR_STOOL)
          {
          Print( 33);
          }
     else
          {
          if (script && script < 5)
               {
               Print( 40);
               }
          else
               {
               Print( 23);
               Set( orderedABeer);
               script = 0;
               Set( scriptDone);
               }
          }
     }

if ((Said( booze) ||                    [    Generic non-handled liquors.
     Said( give, me, booze) ||
     Said( get, booze) ||
     Said( champagne) ||
     Said( give, me, champagne) ||
     Said( get, champagne) ||
     Said( order, champagne) ||
     Said( order, booze)))
     {
     if (currentStatus != ON_BAR_STOOL)
          {
          Print( 33);
          }
     else
          {
          if (script && script < 5)
               {
               Print( 40);
               }
          else
               {
               Print( 54);
               }
          }
     }

if ((Said( light, beer) ||
     Said( give, me, light, beer) ||
     Said( get, light, beer) ||
     Said( order, light, beer)))
     {
     if (currentStatus != ON_BAR_STOOL)
          {
          Print( 33);
          }
     else
          {
          if (script && script < 5)
               {
               Print( 40);
               }
          else
               {
               Print( 52);
               }
          }
     }

if ((Said( whiskey) ||
     Said( give, me, whiskey) ||
     Said( get, whiskey) ||
     Said( order, whiskey)))
     {
     if (currentStatus != ON_BAR_STOOL)
          {
          Print( 33);
          }
     else
          {
          if (script && script < 5)
               {
               Print( 40);
               }
          else
               {
               Print( 22);
               Set( orderedAWhiskey);
               script = 0;
               Set( scriptDone);
               }
          }
     }

if (Said( drink, whiskey))
     {
     if (!Has( iWhiskey))
          {
          Set( dontHaveIt);
          }
     else
          {
          if (currentStatus != ON_BAR_STOOL)
               {
               Print( 34);
               }
          else
               {
               Set( tookADrink);
               Drop( iWhiskey);
               Print( 39);
               }
          }
     }



[    Handle mounting, and dismounting, of stool.

if ((Said( sit) ||
     Said( sit, down)||
     Said( sit, bar)||
     Said( mount, stool)||
     Said( mount, bar, stool)||
     Said( get, on, stool) ||
     Said( sit, on, stool) ||
     Said( sit, on, bar, stool) ||
     Said( sit, down, on, stool) ||
     Said( sit, down, on, bar, stool) ||
     Said( sit, bar, stool) ||
     Said( sit, stool)))
     {
     if (currentStatus == ON_BAR_STOOL)
          {
          Print( 3);
          }
     else
          {
          if (!nearEmptyStool)
               {
               Set( notCloseEnough);                   
               }
          else
               {
               currentStatus = ON_BAR_STOOL;
               IgnoreBlocks( ego);
               SetView( ego, vBarFlys);
               SetLoop( ego, L_EGO_ON_STOOL);
               RepositionTo( ego, 90, 128);
               StopMotion( ego);
               Set( programControl);

               StopCycling( aBore);
               jokeSeconds = 15;        [    Seconds(+7) before first joke.
               boreTalkCycles = 0;      [    Turn off his random talking.
               }
          }
     }


if ((Said( leave, stool) ||
     Said( leave, bar, stool) ||
     Said( get, off, stool) ||
     Said( get, off, bar, stool) ||
     Said( get, up) ||
     Said( get, off) ||
     Said( get, down) ||
     Said( stand, up) ||
     Said( stand)))
     {
     if (currentStatus != ON_BAR_STOOL)
          {
          Print( 2);
          }
     else
          {
          if (script && script < 5)
               {
               Print( 40);
               }
          else
               {
               SetView( ego, vEgo);
               StartMotion( ego);
               Reset( programControl);
               ObserveBlocks( ego);
               RepositionTo( ego, 90, 131);

               SetLoop( aBore, FACING_LEFT);
               StopCycling( aBore);
               Random( 24, 32, boreTalkCycles); [ Cycles before talking to girl.
               jokeSeconds = 0;              [    No more jokes.

               if (!drunkSeconds)
                    {
                    currentStatus = NORMAL;
                    }
               else
                    {
                    currentStatus = DRUNK;
                    Set( handsOff);
                    PreventInput();
                    Print( 41);
                    }
               }
          }
     }


if ((Said( kiss, off, rol) ||
     Said( fuck$you, rol) ||
     Said( damn, rol) ||
     Said( go, hump, rol) ||
     Said( shut, up, rol) ||
     Said( get, lost, rol)))
     {
     if (currentStatus != ON_BAR_STOOL)
          {
          Print( 44);
          }
     else
          {
          CurrentLoop( aBore, work);
          if (work != FACING_RIGHT)
               {
               Print( 62);
               }
          else
               {
               Print( 43);

               [    Make him sulk awhile before he starts talking to the girl.
               SetLoop( aBore, FACING_LEFT);
               StopCycling( aBore);
               Reset( boreCycling);
               Random( 123, 234, boreTalkCycles);
               Random( 44, 88, jokeSeconds); [    seconds till he talks to ego.
               }
          }
     }


[*****
:noInput
[*****

if (aSecondPassed)
     {
     --jukeBoxTimer;
     if (jukeBoxTimer == 1 && !soundOn)
          {
          Set( musicDone);
          }

     --bartenderTimer;
     if (bartenderTimer == 1)
          {
          Toggle( bartenderWandering);
          if (bartenderWandering)
               {
               Random( 4, 12, bartenderTimer);
               StartUpdate( aBartender);
               Wander( aBartender);
               }
          else
               {
               Random( 12, 33, bartenderTimer);
               SetLoop( aBartender, FACING_FRONT);
               ForceUpdate( aBartender);
               StopUpdate( aBartender);
               }
          }

     --doorTimer;
     if (doorTimer == 1)
          {
          Set( doorScriptDone);
          }

     if (currentStatus == DRUNK)
          {
          --drunkSeconds;
          if (drunkSeconds == 41)
               {
               Print( 66);
               }

          if (drunkSeconds == 1)
               {
               --drunkSeconds;
               staggerCycles = 0;
               AcceptInput();
               ReleaseLoop( ego);
               PlayerControl();
               Reset( programControl);
               currentStatus = NORMAL;
               Reset( handsOff);
               Print( 42);
               }
          }

     --jokeSeconds;
     if (jokeSeconds == 7)
          {
          SetLoop( aBore, FACING_RIGHT);
          StartCycling( aBore);         [    He's starting a new joke
          }

     if (jokeSeconds == 1)
          {
          if (typing)
               {
               jokeSeconds = 4;
               }
          else
               {
               Random( 20, 45, jokeSeconds); [    seconds before he starts again
               StopCycling( aBore);          [    He's starting a new joke

               if ((!heardJoke1 ||
                    !heardJoke2 ||
                    !heardJoke3 ||
                    !heardJoke4 ||
                    !heardJoke5 ||
                    !heardJoke6 ||
                    !heardJoke7 ||
                    !heardJoke8 ||
                    !heardJoke9))
                    {
                    :pickAJoke;
                    Random( 11, 19, joke);   [    Pick a punch line.
                    work = joke;
                    work += 210;             [    Because flags are 221-229.
                    if (IssetV( work))       [    Be sure it's a new one.
                         {
                         goto pickAJoke;
                         }

                    SetV( work);
                    Print( 10);
                    PrintV( joke);
                    Print( 58);
                    }
               }
          }
     }


--boreTalkCycles;
if (boreTalkCycles == 1)
     {
     Random( 23, 45, boreTalkCycles);
     Toggle( boreCycling);
     if (boreCycling)
          {
          StartCycling( aBore);
          }
     else
          {
          StopCycling( aBore);
          }
     }


if (scriptDone)
     {
     Reset( scriptDone);
     ++script;

     if (script == 1)
          {
          bartenderTimer = 0;
          StartUpdate( aBartender);
          MoveObj( aBartender, 106, 102, 1, scriptDone);
          }

     if (script == 2)
          {
          SetLoop( aBartender, FACING_FRONT);
          StopUpdate( aBartender);
          ForceUpdate( aBartender);
          scriptTimer = 4;
          }

     if (script == 3)
          {
          StartUpdate( aBartender);
          MoveObj( aBartender, 90, 102, 1, scriptDone);
          }

     if (script == 4)
          {
          SetLoop( aBartender, FACING_FRONT);
          StopUpdate( aBartender);
          ForceUpdate( aBartender);
          scriptTimer = 3;
          }

     if (script == 5)
          {
          Print( 24);
          if (!dollars > 2)
               {
               Print( 26);
               Print( 27);

               script = 6;
               }
          else
               {
               StartUpdate( aBartender);
               MoveObj( aBartender, 119, 99, 1, scriptDone);

               Print( 25);
               dollars -= 3;
               if (orderedAWhiskey)
                    {
                    Reset( orderedAWhiskey);
                    if (Has( iWhiskey))
                         {
                         Set( tookADrink);
                         Print( 35);
                         }
                    else
                         {
                         if (!boughtWhiskey)
                              {
                              Set( boughtWhiskey);
                              currentScore += 1;
                              }
                         Get( iWhiskey);
                         Print( 38);
                         }
                    }

               if (orderedABeer)
                    {
                    Reset( orderedABeer);
                    Set( tookADrink);
                    Print( 28);
                    }
               
               if (orderedAWine)
                    {
                    Reset( orderedAWine);
                    Set( tookADrink);
                    Print( 29);
                    Print( 30);
                    }
               }
          }

     if (script == 6)
          {
          script = 0;
          SetLoop( aBartender, FACING_BACK);
          StopUpdate( aBartender);
          ForceUpdate( aBartender);

          Reset( bartenderWandering);
          bartenderTimer = 5;
          }
     }



--legCycles;
if (legCycles == 1)
     {
     Random( 10, 22, legCycles);
     Toggle( legCycling);
     if (legCycling)
          {
          StartCycling( aGirl);
          }
     else
          {
          StopCycling( aGirl);
          }
     }

if (doorScriptDone)
     {
     Reset( doorScriptDone);
     ++doorScript;

     if (doorScript == 1)
          {
          Draw( aPeepHole);
          EndOfLoop( aPeepHole, doorScriptDone);
          }

     if (doorScript == 2)
          {
          StopUpdate( aPeepHole);
          doorTimer = 3;
          }

     if (doorScript == WAITING_FOR_PASSWORD)
          {
          Print( 7);
          doorTimer = 12;
          }

     if (doorScript == 4)
          {
          Print( 8);
          StartUpdate( aPeepHole);
          BeginningOfLoop( aPeepHole, doorScriptDone);
          }

     if (doorScript == 5)
          {
          Erase( aPeepHole);
          StartMotion( ego);
          Reset( programControl);
          doorScript = 0;
          doorTimer = 0;
          }

     if (doorScript == 101)             [    He knew the password.
          {
          Print( 9);
          StopMotion( ego);
          Set( programControl);
          StartUpdate( aPeepHole);
          BeginningOfLoop( aPeepHole, doorScriptDone);
          }

     if (doorScript == 102)
          {
          Erase( aPeepHole);
          StartUpdate( aDoor);
          EndOfLoop( aDoor, doorScriptDone);
          }

     if (doorScript == 103)
          {
          newRoom = rmBackroom;
          }
     }


if (musicDone)
     {
     Reset( musicDone);
     SetCel( aJukeBox, 1);
     StopUpdate( aJukeBox);
     ForceUpdate( aJukeBox);
     }

if (startJukeBox)
     {
     Reset( startJukeBox);
     StartUpdate( aJukeBox);
     Sound( mTitle, musicDone);

     if (!soundOn)
          {
          Reset( musicDone);
          Random( 8, 12, jukeBoxTimer);
          StartUpdate( aJukeBox);
          }
     }




[    Scott Murphy's drinking problem

if (tookADrink)
     {
     Reset( tookADrink);
     ShakeScreen( 1);
     if (!drunkSeconds)
          {
          drunkSeconds = 5;        [    increases geometricly with each drink.
          staggerCycles = 10;
          Print( 31);
          }
     else
          {
          Print( 32);
          if (drunkSeconds < 120)
               {
               drunkSeconds += drunkSeconds;
               }
          }
     }

if (currentStatus == DRUNK)
     {
     if (egoDir != EGO_STOPPED)
          {
          --staggerCycles;
          if (staggerCycles == 1)
               {
               Toggle( staggering);
               if (!staggering)
                    {
                    Reset( programControl);
                    ReleaseLoop( ego);
                    staggerCycles = 7;
                    }
               else
                    {
                    Set( programControl);
                    FixLoop(ego);
                    :loop1
                    Random( 1, 8, work);
                    if (work == egoDir)
                         {
                         goto loop1;
                         }
                    egoDir = work;
                    staggerCycles = 5;
                    }
               }
          }
     }


[*****
:exit                                   [    test for leaving the room
[*****

if (edgeEgoHit == TOP)             {newRoom = rmHallway;}
if (edgeEgoHit == BOTTOM)          {newRoom = rmOutsideBar;}

RM15.MSG
Code: [Select]
[messages for room 15 -- rmInsideBar
[    "Leisure Suit Larry in the Land of the Lounge Lizards"
[    by Al Lowe



%message  1
"This is the sleaziest bar you've ever been in.
 And you've been in quite a few."

%message  2
"You are standing."

%message  3
"You are sitting."

%message  4
"You insert a dollar into the juke box, and select a suitably sleazy song."

%message  5
"You rap loudly on the naugahyde door.
 You wonder how many naugas had to give their
 all just to decorate this sleazehole."

%message  6
"So what?"

%message  7
"\"Yeah. Whatsda passwoid?\""

%message  8
"\"Scram, dog breath!\""

%message  9
"\"Come on in!\""

%message  10
"\"...blah, blah, blah, blah, blah...\""

%message  11
"\"...a lotta guys just leave her hanging in a tree somewhere!\""

%message  12
"\"...'cause Thursday's your night in the barrel!\""

%message  13
"\"...just think of the money he saved!\""

%message  14
"\"...and there stood the pig and the cow!\""

%message  15
"\"...dammit Liza, doncha know ya own reflection?\""

%message  16
"\"...we are coming back this way, aren't we?\""

%message  17
"\"...You idiot! I said POSSE!!\""

%message  18
"\"...nobody can eat THAT much ice cream!\""

%message  19
"\"...25 bucks, same as in town!\""

%message  20
"You'd better sit down first."

%message  21
"You greet the bartender.\n\n
\"What'll it be,\" Lefty responds, \"whiskey, wine or beer?\""

%message  22
"\"I'll have a glass of your fine, well whiskey!\" you tell Lefty."

%message  23
"\"Gimme a mug o' beer!\" you order Lefty."

%message  24
"\"That'll be $3.00, please.\""

%message  25
"You flip three bucks onto the counter."

%message  26
"\"I'm presently a little short,\" you stammer."

%message  27
"\"Yeah, and not just in the financial department, I bet!\" he replies,
 grabbing back your order."

%message  28
"You down the beer in your pseudo-macho style,
 and slam the mug back on the bar."

%message  29
"You delicately sip the wine until it's all gone.\n\n
You tell Lefty,
 \"I find this impudent and sassy, with the slightest hint of impertinence.\""

%message  30
"He gazes at you longingly and moistens his lips!"

%message  31
"Suddenly you feel a little woozy."

%message  32
"This one tastes even better than the last.
 One more sounds like a good idea."

%message  33
"Try sitting at the bar; that usually gets Lefty's attention."

%message  34
"It's not good etiquette to drink standing up."

%message  35
"Since you can only balance one open glass of whiskey at a time,
 you toss this one down immediately."

%message  36
"\"May I please have a glass of your delicate white zinfandel, sir?\"
 you ask Lefty."

%message  37
"Hey, was that your voice?"

%message  38
"You don't drink the whiskey, but instead,
 decide to carry it with you wherever you go,
 precariously balanced in an open shot glass."

%message  39
"The whiskey burns its way down your throat.
 You vow to never again buy a \"well\" brand."

%message  40
"Hold on; you haven't got your last order yet!"

%message  41
"You feel a little light-headed."

%message  42
"Shaking your head, you clear away the cobwebs and are able to once again
 walk in your standard, studly style."

%message  43
"\"Cram it, clown!\" you tell the bore on the stool next to you!"

%message  44
"\"Same to ya!\" shouts Lefty."

%message  45
"It's an antique, left over from \"King's Quest III.\""

%message  46
"Patience, Larry; patience!"

%message  47
"The door is locked. And, there is no key."

%message  48
"She may not be a great looker, but think of the muscles in that leg."

%message  49
"It's just going around in circles..."

%message  50
"...like your life."

%message  51
"You don't know much about art, but you do know what you like!"

%message  52
"You mean to say you're playing a 3-D adventure game,
 and all you want is LIGHT beer??"

%message  53
"They're just sitting at the bar, drinking their livers into oblivion."

%message  54
"\"Sorry, we don't sell them sissy drinks here,\" says Lefty.
 \"We got whiskey, wine and beer. What do you want?\""

%message  55
"My, aren't we the little savage!
 Didn't your mother teach you anything?"

%message  56
"\"Who cares,\" she replies sarcastically.
 \"Stop bugging me, or I'll have my boy friend
 take care of you when he gets back from the rest room!\""

%message  57
"Looks like you're operating at your standard level of charm, Larry."

%message  58
"\"Har, har!!\""

%message  59
"He has nothing to say, but says it continuously."

%message  60
"\"Hi there, lovely legs!\" you say sweetly.
 \"My name's Larry; Larry Laffer.\""

%message  61
"They have no comment."

%message  62
"He's not bothering you now; leave him alone, you big bully!"

%message  63
"You can't. There's no key in this game!"

%message  64
"Gee, Dad. It's a Wurlitzer!"

%message  65
"The peephole is locked from the inside."

%message  66
"Boy, are you drunk!"

%message  67
"SLAP!"

%message  68
"\"Ya got me!\""

%message  69
"\"No, thanks,\" Lefty replies. \"I don't drink.\""

%message  70
"\"Ok,\" says Lefty, \"but that'll cost ya $%v90.00!\""

%message  71
"The last of the big time spenders,
 you go down in a blaze of glory, ordering drinks for everybody in the place."

%message  72
"\"I'll not help you,\" says Lefty, \"no matter how much you offer me!\""

%message  73
"The naugahyde bounces the hammer back, grazing your scalp but slightly."

%message  74
"You flip a fiver out on the bar.
 Lefty grabs it, smiles, and says, \"Hey, thanks buddy! "

%message  75
"%m74"

%message  76
"You don't have enough money!"

%message  77
"\"Double down on eleven.\""

%message  78
"\"If you're short of money, you could always try gambling at the casino.\""

%message  79
"\"If you're bored hanging around my place, try hailing a cab outside.\""

%message  80
"\"Have you talked to Sierra On-Line lately?\""

%message  81
"\"Guys tell me I need to clean my rest room walls.\""

%message  82
"He appears to be perverted, twisted and sick!"

%message  83
"You instantly take a liking to him."


Offline Kawa

Just walk on by and drop a load of code right there like it ain't a thing ::)

Offline OmerMor

Just walk on by and drop a load of code right there like it ain't a thing ::)

Christmas spirit, right?  ;D

Offline Collector

So a comment was set by a bracket?
KQII Remake Pic

Offline OmerMor

Indeed.


SMF 2.0.19 | SMF © 2021, Simple Machines
Simple Audio Video Embedder

Page created in 0.045 seconds with 24 queries.