Leisure Suit Larry Final Source Set

master
historicalsource 2019-04-18 17:13:14 -04:00
commit de70c1581c
101 changed files with 35933 additions and 0 deletions

86
BJ.H Normal file
View File

@ -0,0 +1,86 @@
[
[ bj.h
[
[ LEISURE SUIT LARRY IN THE LAND OF THE LOUNGE LIZARDS BLACKJACK HEADER
[
[ Wednesday, March 4, 1987 at 11:21 p.m.
[ Sunday, May 31, 1987 at 8:56 p.m.
[
%object aWinner 13 [ Animated objects.
%object aQuestion 14
%object aCards 15
#define CLUBS 152 [ Defines of view numbers.
#define SPADES 153
#define HEARTS 154
#define DIAMONDS 155
#define BLANK_CARD 156
#define CARD_BACK 157
%flag pSoftAce 242 [ Flags.
%flag dSoftAce 243
%flag sSoftAce 244
%flag showHelpMessage 245
%flag pBlackjack 246
%flag dBlackjack 247
%flag pDoubledDown 248
%flag sDoubledDown 249
%flag pSixCardWinner 250
%flag sSixCardWinner 251
%flag softAce 252
%flag waitingForInput 253
%flag insured 254
%flag readyToLeave 255
%var oldDTotal 216
%var oldPTotal 217
%var oldSTotal 218
%var clueTimer 219
%var work2 220 [ Vars.
%var work3 221
%var dTotal 222
%var pTotal 223
%var sTotal 224
%var sBet 225
%var pBet 226
%var insurance 227
%var winnings 228
%var function 229 [which function to execute in rm56.
#define DRAW_CARD 1
#define ERASE_CARD 2
#define DRAW_FACE_DOWN 3
#define GET_SUIT_VALUE 4
#define PAY_WINNER 5
#define UPDATE_STATUS 6
#define SHOW_TOTALS 7
%var suit 230
%var value 231
%var card 232
%var cardCount 233 [ How many cards are visible.
%var cardToTest 234
%var currentCard 235 [ Used as a pointer to vars below.
%var handInPlay 236
#define NONE 0
#define PLAYER 1
#define SPLIT 2
#define DEALER 3
#define HAND_DONE 255
[ Vars numbered 237 through 254 contain the card values for the 3 hands.
[They are only referenced indirectly, so no defines are needed.
%define firstCard 237 [ First var containing a card.
%define dFirstCard 237 [ Var numbers of the
%define pFirstCard 243 [ first card of
%define sFirstCard 249 [ each hand.
%define lastCard 254 [ Last var containing a card.
%var oldBet 255

28
COLORS.H Normal file
View File

@ -0,0 +1,28 @@
[
[ colors.h
[
[ IBM COLOR DEFINES
[
[ Sunday, February 22, 1987 at 02:31 p.m.
[
%define BLACK 0
%define BLUE 1
%define GREEN 2
%define CYAN 3
%define RED 4
%define MAGENTA 5
%define BROWN 6
%define WHITE 7
%define GREY 8
%define GRAY 8
%define LIGHT_BLUE 9
%define LIGHT_GREEN 10
%define LIGHT_CYAN 11
%define LIGHT_RED 12
%define LIGHT_MAGENTA 13
%define YELLOW 14
%define LIGHT_WHITE 15

58
CONTRLRS.H Normal file
View File

@ -0,0 +1,58 @@
[
[ contrlrs.h
[
[ STANDARD AGI KEY CONTROLLERS
[
[ Friday, May 15, 1987 at 0:47 a.m.
[
%define cHelp 1 [ Function keys
%define cSoundToggle 2
%define cEchoLine 3
%define cF4 4
%define cSave 5
%define cF6 6
%define cRestore 7
%define cF8 8
%define cRestart 9
%define cSpeed 10
%define cStatus 11 [ Control keys
%define cInitJoy 12
%define cToggleMonitor 13
%define cCancelLine 14
%define cDebug 15 [ Alt keys
%define cShowEgo 16
%define cShowObj 17
%define cShowMem 18
%define cObjInfo 19
%define cShowPriority 20
%define cSkipTest 21
%define cQuit 22
%define cMenu 23 [ Menu stuff
%define cDummy 24
%define cAbout 25
%define cCalculator 26
%define cPuzzle 27
%define cBodilyFunction 28
%define cClock 29
%define cPause 30
%define cSpeedSlow 31
%define cSpeedNormal 32
%define cSpeedFast 33
%define cSpeedFastest 34
%define cInvNumbers 35 [ Debug stuff
%define cXY 36
%define cGimme 37
%define cCrescendo 38 [ Tandy odds & ends.
%define cDecrescendo 39
%define cVersion 40
%define cBoss 41

137
FLAG_VAR.H Normal file
View File

@ -0,0 +1,137 @@
[
[ lcl_temp.h
[
[ LEISURE SUIT LARRY IN THE LAND OF THE LOUNGE LIZARDS GAME DEFINITIONS
[
[ Wednesday, March 11, 1987 at 9:48 a.m.
[
[ The 30 locals are numbered 200 - 229. The 26 dynamics are numbered
[230 - 255. Every flag and var in this list is reset by every new room.
[ LOCAL FLAGS, for use in room logics.
%flag lf0 200
%flag lf1 201
%flag lf2 202
%flag lf3 203
%flag lf4 204
%flag lf5 205
%flag lf6 206
%flag lf7 207
%flag lf8 208
%flag lf9 209
%flag lf10 210
%flag lf11 211
%flag lf12 212
%flag lf13 213
%flag lf14 214
%flag lf15 215
%flag lf16 216
%flag lf17 217
%flag lf18 218
%flag lf19 219
%flag lf20 220
%flag lf21 221
%flag lf22 222
%flag lf23 223
%flag lf24 224
%flag lf25 225
%flag lf26 226
%flag lf27 227
%flag lf28 228
%flag lf29 229
[ TEMP FLAGS for use in dynamic logics.
%flag df0 230
%flag df1 231
%flag df2 232
%flag df3 233
%flag df4 234
%flag df5 235
%flag df6 236
%flag df7 237
%flag df8 238
%flag df9 239
%flag df10 240
%flag df11 241
%flag df12 242
%flag df13 243
%flag df14 244
%flag df15 245
%flag df16 246
%flag df17 247
%flag df18 248
%flag df19 249
%flag df20 250
%flag df21 251
%flag df22 252
%flag df23 253
%flag df24 254
%flag df25 255
[ LOCAL VARS for use in room logics.
%var lv0 200
%var lv1 201
%var lv2 202
%var lv3 203
%var lv4 204
%var lv5 205
%var lv6 206
%var lv7 207
%var lv8 208
%var lv9 209
%var lv10 210
%var lv11 211
%var lv12 212
%var lv13 213
%var lv14 214
%var lv15 215
%var lv16 216
%var lv17 217
%var lv18 218
%var lv19 219
%var lv20 220
%var lv21 221
%var lv22 222
%var lv23 223
%var lv24 224
%var lv25 225
%var lv26 226
%var lv27 227
%var lv28 228
%var lv29 229
[ TEMP VARS for use in dynamic logics.
%var dv0 230
%var dv1 231
%var dv2 232
%var dv3 233
%var dv4 234
%var dv5 235
%var dv6 236
%var dv7 237
%var dv8 238
%var dv9 239
%var dv10 240
%var dv11 241
%var dv12 242
%var dv13 243
%var dv14 244
%var dv15 245
%var dv16 246
%var dv17 247
%var dv18 248
%var dv19 249
%var dv20 250
%var dv21 251
%var dv22 252
%var dv23 253
%var dv24 254
%var dv25 255

422
GAMEDEFS.H Normal file
View File

@ -0,0 +1,422 @@
[
[ gamedefs.h
[
[ LEISURE SUIT LARRY IN THE LAND OF THE LOUNGE LIZARDS GAME DEFINITIONS
[
[ Wednesday, June 10, 1987 at 9:00 p.m.
[
%include "views.h"
%tokens "..\\words.tok"
%include "sysdefs.h"
%include "flag_var.h"
[************ CONSTANTS ************]
#define CYCLES_BEFORE_DEATH 44
#define TEXT_COLOR 15
#define BG_COLOR 0
#define NORMAL_STEP_SIZE 1
#define FALLING_STEP_SIZE 3
#define EGO_STUNNED_TIME 5
#define NOWHERE 0
#define DOOR_CYCLE_TIME 3
#define SMILE_SECONDS 5
#define FROWN_SECONDS 7
#define INVENTORY 255
[************ FLAGS ************]
[Only the interpreter can use 0-29 (globals)
[ Any room can use 220-239 (lf's)
[Only dynamic logics can use 240-255 (df's)
%flag forceAtest 30
%flag testing 31
%flag debugging 32
%flag xyOn 33
%flag keepCycling 34
%flag noCycling 35
%flag ignoreSpecial 36
%flag ignoreWater 37
%flag demo 38
%flag doit 39
%flag done 40
%flag egoArrived 41
%flag clockOn 42
%flag updateClock 43
%flag aSecondPassed 44
%flag myHaveMatch 45
%flag outOfMemory 46
%flag survivableFall 47
%flag handsOff 48
%flag preventNewRoom 49
%flag certainDeath 50
%flag egoDeathDone 51
%flag musicDone 52
%flag soundDone 53
%flag notCloseEnough 54
%flag alreadyGotIt 55
%flag TVOn 56
%flag knowsPassword 57
%flag smellsLikeDogPiss 58
%flag toiletPaperOnShoe 59
%flag lookedAtCabbie 60
%flag nearTaxi 61
%flag wearingRubber 62
%flag scoredHooker 63
%flag hookerWindowOpen 64
%flag alleyWindowBroken 65
%flag mouthOK 66
%flag OK 67
%flag dontHaveIt 68
%flag nearPerson 69
%flag noFawnInDisco 70
%flag gaveFawnRose 71
%flag gaveFawnCandy 72
%flag gaveFawnRing 73
%flag dancedWithFawn 74
%flag scriptDone 75
%flag faithGone 76
%flag beenIn43 77
%flag answeredSurvey 78
%flag gaveFawnEverything 79
%flag orderedWine 80
%flag ropeOnBed 81
%flag fawnInRoom 82
%flag unsuccessfulCeremony 83
%flag eveGone 84
%flag programControl 85
%flag egoLoweringDone 86
%flag preventSaveGame 87
%flag gaveEveApple 88
%flag diedOfTheClap 89
%flag pimpWatchingTV 90
%flag wornRubber 91
%flag satWithFawn 92
%flag betInProgress 93
%flag boughtWhiskey 94
%flag lookedAtFawn 95
%flag talkedToFawn 96
%flag askedForMoney 97
%flag gotPimpToWatchTV 98
%flag paidPimpForWhore 99
%flag rodeInCab 100
%flag mouseMachine 101
%flag twoButtonJoystick 102
%flag talkedToFlasher 103
%flag heardLiquorStoreNumber 104
%flag beenIn11 105
%flag requestedASaveGame 106
%flag mouthSmellsBad 107
%flag typing 108
%flag passedTest 109
%flag marriedFawn 110
%flag seenDeliveryBoyGag 111
%flag readSideOfPhone 112
%flag answeredSurveyFirstTime 113
%flag heardSurveyFirstTime 114
%flag orderedWineFirstTime 115
%flag poopedInCan 116
%flag satOnWhoopieCushion 117
%flag slowProcessor 118
%flag shownPassToBouncer 119
%flag readMagazine 120
%flag dialedSierra 121
%flag makeFawnDance 122
%flag memoryCheck 123
%flag makeEgoRise 124 [ in disco scene
%flag makeFawnSplit 125
%flag inflatedDoll 126
%flag sprayDone 127
%flag beenInPenthouse 128
[nextflag
[************ VARS ************]
[Only the interpreter can use 0-29 (globals)
[ Any room can use 220-239 (lv's)
[Only dynamic logics can use 240-255 (dv's)
%var currentStatus 30
#define NORMAL 0
#define DEAD 1
#define SLEEPING 2
#define COLLAPSING 3
#define STUNNED 4
#define FALLING 5
#define WALKING 6
#define ON_BAR_STOOL 7
#define DRUNK 8
#define ON_TOILET 9
#define DROWNING 10
#define HUMPING_HOOKER 11
#define LEAVING_WINDOW 12
#define HANGING_BY_ROPE 13
#define IN_DUMPSTER 14
#define RUN_OVER 15
#define DANCING 16
#define SITTING 17
#define IN_ELEVATOR 18
#define TIED_TO_BED 19
#define STIFFED_CABBIE 20
#define PISSING 21
#define CHASING_DOLL 22
#define FOLLOWING_EVE 23
#define DYING_OF_CLAP 25
#define NAKED 26
#define RECYCLING 27
[ #define 28
[ #define 29
%var egoLocation 31
%var x 32
%var y 33
%var sourceX 34
%var sourceY 35
%var targetX 36
%var targetY 37
%var egoX 38
%var egoY 39
%var oldEgoX 40
%var oldEgoY 41
%var oldEgoDir 42
%var oldSeconds 43
%var oldAnimationInterval 44
#define FASTEST_SPEED 0
#define FAST_SPEED 1
#define NORMAL_SPEED 2
#define SLOW_SPEED 3
%var debug0 45
%var debug1 46
%var startClimbing 47
%var roomBottom 48
%var zero 49
%var deathMessage 50
%var testRoom 51
%var work 52
%var view 53
%var loop 54
%var cell 55
%var step 56
%var priority 57
%var message 58
%var egoCycleTime 59
%var egoStepTime 60
%var egoStepSize 61
%var passInRoom 62
%var secondsInRoom 63
%var taxiScript 64
#define TAXI_WAITING 4
%var script 65
%var scriptCycles 66
%var scriptTimer 67
%var clearStatusSeconds 68
%var mouthMessage 69
%var sprayCount 70
%var spraySeconds 71
%var sprayMinutes 72
#define SPRAY_INIT_MINUTES 10
[ %var 73
[ %var 74
%var deathTimer 75
%var newRoom 76
%var currentEgoView 77
%var oldEdgeEgoHit 78
%var destinationFloor 79
%var breathSpraySeconds 80
%var picture 81
%var TVChannel 82
%var moneyTimer 83
%var one 84
%var two 85
%var three 86
%var four 87
%var five 88
%var oldLastChar 89
%var dollars 90
%var secondsSinceKeystroke 91
%var answer 92
%var correctAnswer 93
%var question 94
%var questionStatus 95
%define waiting 1
%define askAnother 2
%define allDone 3
%define waitAwhile 4
%define waitAwhileAlthoughCorrect 5
%var currentQuestion 96
%var cabFareMin 97
%var notMovedCycles 98
%var cabRideLength 99
%var fawnTalkCount 100
%var oldCurrentScore 101
[nextvar
[ %var 102
[ %var 103
[ %var 104
[ %var 105
[ %var 106
[ %var 107
[ %var 108
[ %var 109
[ %var 110
[ %var 111
[ %var 112
[ %var 113
[ %var 114
%var gameSeconds 115
%var gameMinutes 116
%var gameHours 117
%var gameDays 118
%var watchHours 119
#define WATCH_INIT_HOURS 10
[*********** ANIMATED OBJECTS ***********]
[Define here all objects shared by multiple rooms.
%object ego 0
[ %object a 10
[ %object a 11
%object aCop 12
%object aTaxi 13
%object aDog 14
%object aCar 15
[********* INVENTORY OBJECTS **********]
%object iWallet 1
%object iBreathSpray 2
%object iPocketLint 3
%object iWatch 4
%object iApple 5
%object iRing 6
%object iWhiskey 7
%object iRemoteControl 8
%object iRose 9
%object iRubber 10
%object iUsedRubber 11
%object iCandy 12
%object iDoll 13
%object iDiscoPass 14
%object iPocketKnife 15
%object iWine 16
%object iMagazine 17
%object iHammer 18
%object iPills 19
%object iRope 20
#define SIZE_OF_INVENTORY 20
[********* SOUND EFFECTS **********]
#define sEgoFalling 1
#define sError 2
#define sSlots 3
#define sSlotsWinner 4
#define sCardsShuffling 5
#define sCard 6
#define sBJWinner 7
#define sDrummer 8
#define sWhoopieCushion 9
#define sTaxiTires 10
#define sDeathCar 11
#define sPissing 12
#define sBang 13
#define sFart 14
#define sDollDeflating 15
[************ MUSIC *************]
#define mTitle 21
#define mDog 22
#define mWedding 23
#define mWinner 24
#define mWhoops 25
#define mAlley 26
#define mRm14Drunk 27
#define mRm22Drunk 28
#define mCop 29
#define mDisco 30
#define mCanCan 31
#define mSunrise 32
#define mFuneral 33
[****** ROOM AND PICTURE NAMES ******]
#define rmTitle 1
#define picCredits1 2
#define picCredits2 3
#define picCredits3 4
#define picFrame 5
#define rmAgeTest 6
#define picBlack 7
#define rmWorkshop 8
#define rmDarkAlley 9
#define rmInsideTaxi 10
#define rmOutsideBar 11
#define rmAlley 12
#define rmToilet 13
#define rmHallway 14
#define rmInsideBar 15
#define rmBackroom 16
#define rmHooker 17
%define picHookerCloseup 18
%define rmSunrise 19
%define rmBoss 20
#define rmInside7_11 21
#define rmOutside7_11 22
#define rmOutsideDisco 23
#define rmInsideDisco 24
%define rmFawnCloseup 25
%define picFaithCloseup 26
%define picEveCloseup 27
%define picDollCloseup 28
%define picBoss2 29
%define picBoss3 30
#define rmInsideCasino 31
#define rmOutsideCasino 32
#define rmOutsideChapel 33
#define rmInsideChapel 34
#define rmElevatorBottom 35
#define rmLounge 36
#define rmSlots 37
#define rmBlackjack 38
[ %define rm 39
#define rmElevators 40
#define rmHoneymoonSuite 41
#define rmSecurityDesk 42
#define rmHotTub 43
#define rmLivingRoom 44
#define rmBedroom 45
#define rmRestart rmOutsideBar
[********** DYNAMIC LOGICS **********]
#define lgcRm0InitLog 50
#define lgcStartup 51
#define lgcDebug 52
#define lgcTrace 53
#define lgcError 54
#define lgcHelp 55
#define lgcBlackjack 56
#define lgcStreet 57
#define lgcSlots 58
#define lgcID 59

30
IV_NAMES.H Normal file
View File

@ -0,0 +1,30 @@
[
[ iv_names.h
[
[ LEISURE SUIT LARRY IN THE LAND OF THE LOUNGE LIZARDS INVENTORY OBJECT NAMES
[
[ Thursday, May 14, 1987 at 1:20 p.m.
[
%define Wallet 1
%define BreathSpray 2
%define PocketLint 3
%define Watch 4
%define Apple 5
%define Ring 6
%define Whiskey 7
%define RemoteControl 8
%define Rose 9
%define Rubber 10
%define UsedRubber 11
%define Candy 12
%define Doll 13
%define DiscoPass 14
%define PocketKnife 15
%define Wine 16
%define Magazine 17
%define Hammer 18
%define Pills 19
%define Rope 20

31
IV_VIEWS.H Normal file
View File

@ -0,0 +1,31 @@
[
[ iv_views.h
[
[ LEISURE SUIT LARRY IN THE LAND OF THE LOUNGE LIZARDS INVENTORY VIEWS
[
[ Saturday, April 4, 1987 at 12:55 p.m.
[ Thursday, May 14, 1987 at 1:20 p.m.
[
%view ivWallet 101
%view ivBreathSpray 102
%view ivPocketLint 103
%view ivWatch 104
%view ivApple 105
%view ivRing 106
%view ivWhiskey 107
%view ivRemoteControl 108
%view ivRose 109
%view ivRubber 110
%view ivUsedRubber 111
%view ivCandy 112
%view ivDoll 113
%view ivDiscoPass 114
%view ivPocketKnife 115
%view ivWine 116
%view ivMagazine 117
%view ivHammer 118
%view ivPills 119
%view ivRope 120

BIN
OBJECT Normal file

Binary file not shown.

40
OBJECT.TXT Normal file
View File

@ -0,0 +1,40 @@
[
[ object.txt
[
[ LEISURE-SUIT LARRY IN THE LAND OF THE LOUNGE LIZARDS OBJECT TABLES
[
[ Thursday, May 14, 1987 at 11:06 a.m.
[
[************* ANIMATED OBJECTS
[.numani # of animated objects
.numani 16
[************* INVENTORY OBJECTS
[.obj object#, "Status screen name", room # at beginning of game
.obj 1, "Wallet", 255
.obj 2, "Breath Spray", 255
.obj 3, "Pocket Lint", 255
.obj 4, "Wrist Watch", 255
.obj 5, "Apple", 32
.obj 6, "Diamond Ring", 13
.obj 7, "Glass of Whiskey", 15
.obj 8, "Remote Control", 14
.obj 9, "Rose", 14
.obj 10, "Prophylactic", 21
.obj 11, "Used Prophylactic", 0
.obj 12, "Box of Candy", 17
.obj 13, "Inflatable Doll", 45
.obj 14, "Disco Pass", 35
.obj 15, "Pocket Knife", 22
.obj 16, "Bottle of Wine", 21
.obj 17, "\"Jugs\" Magazine", 21
.obj 18, "Hammer", 12
.obj 19, "Bottle of Pills", 12
.obj 20, "Rope", 41

2300
RM0.CG Normal file

File diff suppressed because it is too large Load Diff

554
RM0.MSG Normal file
View File

@ -0,0 +1,554 @@
[messages for room 0
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
[ The following messages are null:
[
[ ][ 12 22 58
[
%message 1 "%m10%w1?"
%message 2 "%m10%w2?"
%message 3 "%m10%w3?"
%message 4 "%m10%w4?"
%message 5 "%m10%w5?"
%message 6 "%m10%w6?"
%message 7 "%m10%w7?"
%message 8 "%m10%w8?"
%message 9
"Ok.\n\n
You toss back the shot of cheap booze,
then dramatically break the glass on the floor!"
%message 10
"What's a "
%message 11 "\n
Leisure Suit Larry\n
in the\n
Land of the Lounge Lizards\n\n
by Al Lowe\n\n
Ver 1.05 6/26/87\n"
%message 12
""
%message 13
"Thanks for playing
\"Leisure Suit Larry in the Land of the Lounge Lizards.\"\n\n
You screwed up this game, but you can probably do better.\n\n
Come on, let's do it just one more time!"
%message 14
"Since you're dead...\n\n
all you can do is restore a saved game or start over."
%message 15
"You have $%v90.00."
%message 16
"You don't have it."
%message 17
"Sorry, this is a real-time game!"
%message 18
"%m11%m100%v117 hours, %v116 minutes and %v115 seconds.\n"
%message 19
"%m11%m100%v116 minutes and %v115 seconds.\n"
%message 20
"You find your leisure suit very stylish, but empty."
%message 21 [ logfile message
"" [ No local."
%message 22
""
%message 23
"You have no need to take it."
%message 24
"Where!?"
%message 25
"You might need it."
%message 26
"\"Hi.\""
%message 27
"Following your conviction for bestiality,
you spend the rest of your life in prison,
turning big rocks into little ones!"
%message 28
"\"You're welcome.\""
%message 29
"\"Same to you!\""
%message 30
"%v119:%v116|2:%v115|2 "
%message 31
"\"'Bye.\""
%message 32
"Fastest%m36"
%message 33
"Fast%m36"
%message 34
"Normal%m36"
%message 35
"Slow%m36"
%message 36
" speed."
%message 37
"Once you tasted it, you wouldn't want it!"
%message 38
"Without thinking, you down the entire bottle.
Hey, this stuff is ok!
Your breathing becomes heavy, and you're suddenly extremely horny!
You've just got to do something, and right NOW!\n\n
Hey, where's that cute, black dog?"
%message 39
"Wouldn't you rather just remain friends?"
%message 40
"Don't whine!"
%message 41
"Funny, no response."
%message 42
"It doesn't look interesting."
%message 43
"You see nothing special."
%message 44
"It's just as it appears."
%message 45
"How can you do that?"
%message 46
"It's of no use."
%message 47
"You don't need it."
%message 48
"There's no reason to take it."
%message 49
"Just walk there."
%message 50
"Oh, %w1, %w1, %w1! Doesn't anybody _____ anymore?"
%message 51
"%m53?"
%message 52
"%m53 %w3?"
%message 53
"What would you do with the %w2"
%message 54
"How can you use that which you do not have?"
%message 55
"You're not close enough."
%message 56
"You already have it."
%message 57
"Ok."
%message 58
""
%message 59
"That comes later."
[ Menu functions are assigned to messages #60 - 99.
%message 60 "Sierra " [
%message 61 "About Larry" [
%message 62 "Help <F1>" [
%message 63 "-----------" [
%message 64 "Calculator " [
%message 65 "Puzzle " [
[
%message 66 "File " [
%message 67 "Save <F5>" [
%message 68 "Restore <F7>" [
%message 69 "-------------" [
%message 70 "Restart <F9>" [
[%message 69 "-------------" [
%message 71 "Quit <Alt-Z>" [
%message 72 "Action " [
%message 73 "Inventory <Tab>" [
%message 74 "See Object " [
%message 75 "Bodily Function " [
[
%message 76 "Special " [
%message 96 "Boss Key <Ctrl-B>" [
%message 77 "Sound On/Off <F2>" [
%message 78 "Graphics Mode <Ctrl-R>" [
%message 79 "Joystick <Ctrl-J>" [
%message 97 "Joystick/Mouse <Ctrl-J>" [
%message 80 "Clock On/Off " [
%message 81 "Pause Game " [
[
%message 82 "Speed " [
%message 83 "Normal " [
%message 84 "Slow " [
%message 85 "Fast " [
%message 86 "Fastest " [
[%message 69 "-------------" [
%message 87 "Change <F10>" [
[
[ %message 88 "Debug" [
[ %message 89 "Ego Info <Alt-E>" [
[ %message 90 "P-Screen <Alt-P>" [
[ %message 91 "Memory <Alt-M>" [
[ %message 92 "Obj Info <Alt-I>" [
[ %message 93 "X/Y Display " [
[ %message 94 "Get All Inventory" [
[ %message 95 "Inventory Numbers" [
[
%message 98 "" [
%message 99 "" [
%message 100
"\n\nYou've been playing for\n"
%message 101
"Psssft. Psssft."
%message 102
"Ahhh."
%message 103
"Yep, it's a door!"
%message 104
"Watch it, Larry. You're going to get your face slapped!"
%message 105
"Now?!"
%message 106
"Ok.\n\n
Your thirst is gone, the bottle is empty, and your breath is revolting."
%message 107
"\"Hey, dork! You've got toilet paper stuck to your shoe!\""
%message 108
"\"Phew! You smell like a used fire hydrant!\""
%message 109
"Just a moment, please..."
%message 110
"2"
%message 111
"+ 2"
%message 112
"---"
%message 113
" 4"
%message 114
" This is about the extent of\n
your mathematical abilities."
%message 115
"---------------------"
%message 116
"| 1 | 2 | 3 | 4 |"
%message 117
"| 5 | 6 | 7 | 8 |"
%message 118
"| 9 | 10 | 11 | 12 |"
%message 119
"| 13 | 14 | 15 | 16 |"
%message 120
"|----|----|----|----|"
%message 121
"How's this thing work, anyway?"
%message 122
"Enter function: "
%message 123
"You quickly turn around, %s11, and feel much better.
A hint of a smile crosses your lips."
%message 124
"Larry, the whole idea was to stop doing that!"
%message 125
"do nothing"
%message 126
"You talk to yourself, and find you already know what you're going to say."
%message 127
"Good idea. You carefully remove and dispose of it properly."
%message 128
"You nonchalantly scrape it off."
%message 129
"Oh, no! You are now penniless.
You hock your leisure suit,
and spend the rest of your life on skid row eating discarded fast food."
%message 130
"The rest of your story is too sad to tell.
Time for a little \"R & R,\" Larry -- Restart or Restore!"
%message 131
"It smells as bad as you imagined."
%message 132
"It's not for using; IT'S A JOKE!!"
%message 133
"Same to you, buddy!"
%message 134
"And %w1 %w2 you, too!"
%message 135
"Yeah, you probably would, too!"
%message 136
"Tsk, tsk."
%message 137
"Ok, but I don't usually do that!"
%message 138
"You press the button on the remote control and..."
%message 139
"...nothing happens."
%message 140
"Wearing the magic ring gives you powers far beyond those of..."
%message 141
"...Oops. Wrong game."
%message 142
"Pretty dramatic, eh?"
%message 143
"It smells good."
%message 144
"You can't. There's no key in this game!"
%message 145
"\"Eeeyow! Do something about that breath of yours!\""
%message 146
"" [ No lastLog."
%message 147
"\"Remember to buy more Sierra three-dimensional, graphic, adventure games!\""
%message 148
"You might want to read them."
%message 149
"Staring at the walls?"
%message 150
"Climbing the walls already?"
%message 151
"It just lies there, under your feet."
%message 152
"
Sierra On-Line, Inc.
(209) 683-6858"
%message 153
"It tastes delicious. But nothing happens."
%message 154
"Exactly how would you help?"
%message 155
"You'd better not. You might get your face slapped!"
%message 156
"You don't have one."
%message 157
"Your mouth tastes like the inside of a motorman's glove!"
%message 158
"Your breath smells like floor sweepings from a rendering plant."
%message 159
"Your breath is enough to take your breath away."
%message 160
"Your mouth tastes like the drippings from a marathon runner's sock."
%message 161
"It's still up there!"
%message 162
"It tastes delicious, but what about your acne?"
%message 163
"Whee!"
%message 164
"There's no answer. Try opening it."
%message 165
"Ha, ha."
%message 166
"You find nothing."
%message 167
"\"HELP!\""
%message 168
"\"It's about time!!\""
%message 169
"Well, well. It looks like this month's issue is filled with intelligent,
literary articles with redeeming social value."
%message 170
"Since your breath sprayer is empty, you toss it away."
%message 171
"You used it all, remember."
%message 172
"No place in Lost Wages accepts credit cards from the
First National Bank of Libya."
%message 173
"Obviously, restraint is no problem for you, Larry."
%message 174
"\"Ha, ha!\""
%message 175
"There's no time!"
%message 176
"That's an idea; it's just not a good idea!"
%message 177
"OK, but now it's gone forever!"
%message 178
"\"Hey, thanks a lot!\""
%message 179
"But, now you'll NEVER get it back!"
%message 180
"%m182rope."
%message 181
"%m182hammer."
%message 182
"You have no "
%message 183
"\"Yuck!\""
%message 184
"No one wants that!"
%message 185
"" [ THIS ONE MUST STAY A NULL!!!!!
%message 186
"Pretty good company, eh?"
[ %message 187
[ ""
[
[ %message 188
[ ""
[
[ %message 189
[ ""
[
[ %message 190
[ ""
[
[ %message 191
[ ""
[
[ %message 192
[ ""
[
[ %message 193
[ ""
[
[ %message 194
[ ""
[
[ %message 195
[ ""
[
[ %message 196
[ ""
[
[ %message 197
[ ""
[
[ %message 198
[ ""
[
[ %message 199
[ ""
[

281
RM1.CG Normal file
View File

@ -0,0 +1,281 @@
[Logics for room 1 -- title, credits
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm1.msg"
%include "gamedefs.h"
[ This loops through the title screen, and the credits screens, until a
[key is pressed. It then starts the game, at room 11.
[ Note: using the standard "frame" pic, first line to print on is y = 3,
[lowest is y = 19. X = 4 leaves 1 character blank at LEFT edge.
[ View# Name Loop Cell Size X Y Contents
[---------------------------------------------------------------------
[ 39 vCreditNames1 0 0 65x23 41 94 programmed by
[ 39 vCreditNames1 0 1 69x60 41 114 designed by
[ 40 vCreditNames2 0 0 62x23 53 80 graphics by
[ 40 vCreditNames2 0 1 44x23 65 84 written by
[ 41 vCreditNames3 0 0 38x23 68 59 music by
[ 41 vCreditNames3 0 1 82x56 25 155 AGI by
%define designPic lv2
%define creditsPic lv3
%define agdsPic lv4
%define framePic lv5
%object aDoll 1
%object aName 2
if (initLog)
{
SetHorizon( 1);
StatusLineOff();
Set( demo);
Set( handsOff);
Set( programControl);
PreventInput();
lastChar = 0;
animationInterval = NORMAL_SPEED;
LoadSound( mTitle);
LoadView( vTitles);
LoadView( vTitleDoll);
LoadView( vTitleEgo);
LoadView( vCreditNames1);
LoadView( vCreditNames2);
LoadView( vCreditNames3);
LoadView( vCreditNames4);
designPic = picCredits1;
creditsPic = picCredits2;
agdsPic = picCredits3;
LoadPic( designPic);
LoadPic( creditsPic);
LoadPic( agdsPic);
LoadPic( currentRoom);
DrawPic( currentRoom);
DiscardPic( currentRoom);
AnimateObj( aDoll);
IgnoreObjs( aDoll);
SetView( aDoll, vTitleDoll);
SetLoop( aDoll, FACING_RIGHT);
Position( aDoll, 0, 130);
AnimateObj( aName);
SetView( aName, vCreditNames1);
SetCel( aName, 0);
SetPriority( aName, 4);
StopCycling( aName);
StepSize( ego, three);
Position( ego, 0, 160);
SetView( ego, vTitleEgo);
SetLoop( ego, FACING_RIGHT);
Sound( mTitle, musicDone);
script = 0;
AddToPic( vTitles, 0, 0, 4, 18, 4, 4);
AddToPic( vTitles, 0, 1, 4, 36, 4, 4);
AddToPic( vTitles, 0, 2, 46, 36, 4, 4);
AddToPic( vTitles, 0, 3, 11, 87, 4, 4);
[view, loop, cel, x, y, obj priority, box priority
scriptTimer = 8;
ShowPic();
Return();
} [ end initLOG
[*****
:noInput
[*****
if (scriptDone)
{
Reset( scriptDone);
++script;
if (script == 1)
{
Draw( aDoll);
MoveObj( aDoll, 36, 94, 2, scriptDone);
}
if (script == 2)
{
MoveObj( aDoll, 136, 94, 2, scriptDone);
Draw( ego);
MoveObj( ego, 80, 160, 3, scriptDone);
}
if (script == 3)
{
if (monitorType != MONO)
{
Display( 23, 3, 2);
Display( 24, 4, 3);
}
SetLoop( ego, 2);
FixLoop( ego);
MoveObj( ego, 149, 160, 2, scriptDone);
}
if (script == 4)
{
Erase( aDoll);
}
if (script == 5)
{
Erase( ego);
if (monitorType != MONO)
{
ClearLines( 23, 24, BG_COLOR);
}
DrawPic( designPic); [ draw new picture (pic.2)
Position( aName, 41, 94);
Draw( aName); [ programmed by
ShowPic();
scriptTimer = 8;
}
if (script == 6)
{
SetCel( aName, 1); [ designed by
RepositionTo( aName, 41, 114);
SetLoop( aDoll, FACING_LEFT);
Draw( aDoll);
MoveObj( aDoll, 100, 94, 2, scriptDone);
}
if (script == 7)
{
MoveObj( aDoll, 0, 94, 2, scriptDone);
SetLoop( ego, FACING_LEFT);
Draw( ego);
MoveObj( ego, 50, 160, 3, scriptDone);
}
if (script == 8)
{
SetLoop( ego, 3);
FixLoop( ego);
MoveObj( ego, 0, 160, 2, scriptDone);
}
if (script == 9)
{
Erase( aDoll);
}
if (script == 10)
{
Erase( ego);
SetView( ego, vEgo);
Erase( aName);
DrawPic( creditsPic); [ Draw pic.3
SetView( aName, vCreditNames2);
SetCel( aName, 0); [ graphics by
Position( aName, 53, 80);
Draw( aName);
ShowPic();
scriptTimer = 9;
}
if (script == 11)
{
SetCel( aName, 1); [ written by
RepositionTo( aName, 65, 84);
scriptTimer = 8;
}
if (script == 12)
{
Erase( aName);
DrawPic( agdsPic); [ draw pic.4
AddToPic( vCreditNames3, 0, 0, 68, 59, 4, 4); [ Music by
AddToPic( vCreditNames3, 0, 1, 25, 155, 4, 4); [ AGDS by
[view, loop, cel, x, y, obj priority, box priority
ShowPic();
scriptTimer = 8;
}
if (script == 13)
{
DrawPic( creditsPic); [ Draw pic.3
AddToPic( vCreditNames4, 0, 0, 64, 84, 4, 4); [ Kenny
ShowPic();
scriptTimer = 3;
}
if (script == 14 && !soundOn)
{
NewRoom( rmTitle); [ Let's do it again, and real soon.
}
}
[*****
:exit
[*****
if (musicDone)
{
if (script > 13)
{
NewRoom( rmTitle); [ Let's do it again, and real soon.
}
else
{
Sound( mTitle, musicDone); [ Play it again, Samantha.
}
}

37
RM1.MSG Normal file
View File

@ -0,0 +1,37 @@
[messages for room 1 -- rm.titles
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
[ %message 1 "by Al Lowe & Mark Crowe"
%message 2 "Adventure Game Development System"
%message 3 "(C) 1987 by Sierra On-Line, Inc."
[ | | | | | | | | |
[ 0 5 10 15 20 25 30 35 39
[--------------------------------------------------------------------------]
[ %message 11 "Lots of other stuff was done by:"
[ %message 12 "Al Lowe"
[ %message 13 "Mark Crowe"
[
[ %message 21 "Quality Assurance by:"
[ %message 22 "Larry Weissenborn"
[ %message 23 "Bob Ballew"
[ %message 24 "Russ TrueLove"
[ %message 25 "Kim Covert"
[ %message 26 "Linda Bye"
[
[ %message 31 "Packaging and Documentation by:"
[ %message 32 "Mark Crowe"
[ %message 33 "John Williams"
[
[ %message 41 "Inspired by a Recent Wet Dream of:"
[ %message 42 "Ken Williams"
[ | | | | | | | | |
[ 0 5 10 15 20 25 30 35 39

649
RM10.CG Normal file
View File

@ -0,0 +1,649 @@
[logics for room 10 -- rmTaxi
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm10.msg"
%include "gamedefs.h"
[ PROBLEMS: make driver cycle randomly, except when driving drunk.
[Drunk driving sequence never speeds up.
[Erase driver at start of crash flash.
#define MIN_CABFARE 5
#define MAX_CABFARE 15
%define L_TALKING 0 [ Taxi driver
%define L_LOWERING_FLAG 1
%define L_STEERING 2
%define C_FLAG_UP 0 [ Meter cells
%define C_FLAG_DOWN 1
%define L_NORMAL 0 [ Scroll loops
%define L_DRUNK 1
%define L_CRASH 2
%define SCROLL_CYCLES 11
[ %define LOWER_METER 1
[ %define METER_DOWN 2
[ %define START_SPEEDUP 3 [ script values
[ %define START_SLOWDOWN 4
[ %define WAITING_FOR_MONEY 5
[ %define PAID_FOR_TRIP 6
%define rideDone lf0
%define manDone lf1
%define stopTalking lf2
%define bgOn lf3
%define gaveDestination lf4
%define speedingUp lf5
%define meterDone lf6
%define cabbieSteering lf7
%define fare lv0 [ Don't change this one!! %v200!!
%define talkCycles lv1
%define destCount lv2
%define parkTimer lv3
%define scrollCycles lv4
%define scrollSpeed lv5
%define destRoom lv6
%define steeringCycles lv7
%object aScroll 1
%object aMeter 2
%object aCabbie 3
if (initLog)
{
LoadPic( currentRoom);
DrawPic( currentRoom);
DiscardPic( currentRoom);
LoadView( vTaxiWindshieldMovie);
LoadView( vTaxiMeter);
LoadView( vTaxiDriver);
AnimateObj( aScroll);
SetView( aScroll, vTaxiWindshieldMovie);
SetLoop( aScroll, L_NORMAL);
SetPriority( aScroll, 4);
Position( aScroll, 57, 77);
Draw( aScroll);
work = 6;
CycleTime( aScroll, work);
Set( bgOn); [ Scroll is cycling.
AnimateObj( aMeter);
SetView( aMeter, vTaxiMeter);
SetCel( aMeter, C_FLAG_UP);
SetPriority( aMeter, 14);
Position( aMeter, 75, 82);
Draw( aMeter);
CycleTime( aMeter, three);
StopCycling( aMeter);
AnimateObj( aCabbie);
IgnoreObjs( aCabbie);
SetView( aCabbie, vTaxiDriver);
SetPriority( aCabbie, 15);
Position( aCabbie, 56, 83);
if (!Has( iWine))
{
SetLoop( aCabbie, L_LOWERING_FLAG);
SetCel( aCabbie, 0);
CycleTime( aCabbie, three);
StopCycling( aCabbie);
}
else
{
SetLoop( aCabbie, L_TALKING);
}
Draw( aCabbie);
ShowPic( );
if (!Has( iWine))
{
Print( 1);
AcceptInput();
parkTimer = 20;
Random( 0, 10, fare);
fare += cabFareMin;
if (cabFareMin < 40)
{
++cabFareMin;
}
if (cabRideLength > 4)
{
--cabRideLength;
}
scriptTimer = 2;
}
else
{
Print( 12);
PreventInput();
Set( programControl);
Set( meterDone);
steeringCycles = 0;
script = 100;
scriptTimer = 5;
}
Set( handsOff);
Set( programControl);
Reset( noFawnInDisco); [ After a drive, she'll be back.
Return( );
} [ end initLOG
if (aSecondPassed && secondsInRoom > 5)
{
Set( nearPerson);
}
[*****
:handleInput
[*****
if (!haveInput) {goto noInput;}
if ((Said( talk, rol) ||
Said( take, me, action) ||
Said( take, me, where, action) ||
Said( where, action, town) ||
Said( where, action)))
{
Print( 2);
}
if ((Said( disco) ||
Said( go, disco) ||
Said( take, me, disco)))
{
++destCount;
if (destCount > 2)
{
Print( 28);
}
else
{
Set( scriptDone);
destRoom = rmOutsideDisco;
if (script > 2)
{
script = 200;
}
}
}
if ((Said( casino) ||
Said( casino, hotel) ||
Said( go, casino) ||
Said( go, casino, hotel) ||
Said( take, me, casino) ||
Said( take, me, casino, hotel)))
{
++destCount;
if (destCount > 2)
{
Print( 28);
}
else
{
Set( scriptDone);
destRoom = rmOutsideCasino;
if (script > 2)
{
script = 200;
}
}
}
if ((Said( bar) ||
Said( go, bar) ||
Said( take, me, bar)))
{
++destCount;
if (destCount > 2)
{
Print( 28);
}
else
{
Set( scriptDone);
destRoom = rmOutsideBar;
if (script > 2)
{
script = 200;
}
}
}
if ((Said( chapel) ||
Said( go, chapel) ||
Said( take, me, chapel)))
{
++destCount;
if (destCount > 2)
{
Print( 28);
}
else
{
Set( scriptDone);
destRoom = rmOutsideChapel;
if (script > 2)
{
script = 200;
}
}
}
if ((Said( store) ||
Said( go, store) ||
Said( take, me, store)))
{
++destCount;
if (destCount > 2)
{
Print( 28);
}
else
{
Set( scriptDone);
destRoom = rmOutside7_11;
if (script > 2)
{
script = 200;
}
}
}
if ((Said( leave, rol) ||
Said( stop, rol) ||
Said( open, door, rol) ||
Said( go)))
{
if (script < 5)
{
Print( 7);
}
if (script == 5)
{
Print( 9);
Set( rideDone);
currentStatus = STIFFED_CABBIE;
}
if (script == 6)
{
Set( OK);
Set( rideDone);
}
}
if ((Said( take, me, home) ||
Said( go, home) ||
Said( home)))
{
Print( 26);
NewRoom( rmWorkshop);
}
if (Said( look, meter))
{
Print( 23);
}
if ((Said( look, cab) ||
Said( look$in, cab) ||
Said( look, room) ||
Said( look, seat) ||
Said( look, floor) ||
Said( look)))
{
Print( 24);
}
if (Said( look, ceiling))
{
Print( 25);
}
if ((Said( look, out, window) ||
Said( look, window)))
{
Print( 27);
}
if (Said( look, cabbie))
{
if (!lookedAtCabbie)
{
Set( lookedAtCabbie);
Print( 10);
}
else
{
Print( 11);
}
}
if ((Said( give, money, man) ||
Said( give, man, money) ||
Said( give, money) ||
Said( pay, man, money) ||
Said( pay) ||
Said( pay, money, man) ||
Said( pay, money) ||
Said( pay, man)))
{
if (script < 5)
{
Print( 6);
}
if (script == 5)
{
if (dollars < fare)
{
Print( 20);
Print( 14);
Set( rideDone);
currentStatus = STIFFED_CABBIE;
}
else
{
dollars -= fare;
Set( scriptDone);
parkTimer = 30;
}
}
if (script == 6)
{
Print( 19);
}
}
if ((Said( give, tip, rol) ||
Said( give, man, tip, rol) ||
Said( tip, rol)))
{
Print( 19);
}
[*****
:noInput
[*****
if (aSecondPassed)
{
--parkTimer;
if (parkTimer == 1)
{
parkTimer = 30;
if (script < 3)
{
Print( 5);
}
if (script == 5)
{
Print( 22);
}
if (script == 6)
{
Print( 21);
}
}
}
if (scriptDone)
{
Reset( scriptDone);
++script;
if (script == 1)
{
EndOfLoop( aMeter, meterDone);
EndOfLoop( aCabbie, scriptDone);
}
if (script == 2)
{
SetLoop( aCabbie, L_STEERING);
steeringCycles = 2;
Reset( cabbieSteering); [ This makes him start immediately.
CycleTime( aCabbie, two);
}
if (script == 3) [ This starts us moving.
{
Set( speedingUp);
parkTimer = 0;
scrollCycles = SCROLL_CYCLES;
scrollSpeed = 4;
CycleTime( aScroll, scrollSpeed);
if (destRoom != previousRoom)
{
scriptTimer = cabRideLength; [Seconds before start slowdown.
if (!gaveDestination) [ No message if trip #2 or more.
{
Print( 15);
}
}
else
{
scriptTimer = 6;
if (scriptTimer > cabRideLength)
{
scriptTimer = cabRideLength;
}
if (!gaveDestination)
{
Print( 3);
}
}
Set( gaveDestination);
}
if (script == 4) [ Trip timer has expired. Slowdown.
{
Reset( speedingUp);
}
if (script == 5) [ Slowdown has ended.
{
Reset( bgOn);
StopUpdate( aScroll);
StartUpdate( aMeter);
BeginningOfLoop( aMeter, meterDone);
steeringCycles = 0;
StartCycling( aCabbie);
SetLoop( aCabbie, L_LOWERING_FLAG);
LastCel( aCabbie, work);
SetCelV( aCabbie, work);
BeginningOfLoop( aCabbie, manDone);
Print( 4);
parkTimer = 30;
}
if (script == 6)
{
Print( 8);
}
if (script == 101) [ He be a drunk cabbie!
{
parkTimer = 0;
SetLoop( aCabbie, L_STEERING);
steeringCycles = 2;
Reset( cabbieSteering); [ This makes him start immediately.
CycleTime( aCabbie, one);
scrollCycles = 0; [ Never change speed of scroll.
scrollSpeed = 3;
CycleTime( aScroll, scrollSpeed);
SetLoop( aScroll, L_DRUNK);
StartCycling( aScroll);
Print( 16);
scriptTimer = 9;
}
if (script == 102) [ He's hit a bridge!
{
Erase( aCabbie);
Erase( aMeter);
SetLoop( aScroll, L_CRASH);
CycleTime( aScroll, one);
scriptTimer = 5;
}
if (script == 103) [ You're dead.
{
Print( 18);
Erase( aScroll);
Set( certainDeath);
}
if (script == 201) [ Start all over again.
{
Random( MIN_CABFARE, MAX_CABFARE, work);
fare += work;
Print( 13);
LastCel( aMeter, work);
SetCelV( aMeter, work);
ForceUpdate( aMeter);
StartUpdate( aCabbie);
StartCycling( aCabbie);
SetLoop( aCabbie, L_STEERING);
steeringCycles = 2;
Reset( cabbieSteering); [ This makes him start immediately.
CycleTime( aCabbie, two);
StartUpdate( aScroll);
StartCycling( aScroll);
Set( bgOn);
Set( scriptDone);
script = 2;
}
}
--scrollCycles;
if (bgOn && scrollCycles == 1)
{
scrollCycles = SCROLL_CYCLES;
if (!speedingUp)
{
++scrollSpeed;
}
else
{
if (scrollSpeed > 1)
{
--scrollSpeed;
}
}
if (scrollSpeed == cabRideLength) [ we go down to 0, then up to CRL.
{
Set( scriptDone);
}
else
{
CycleTime( aScroll, scrollSpeed);
}
}
if (meterDone)
{
Reset( meterDone);
StopUpdate( aMeter);
}
if (manDone)
{
Reset( manDone);
SetLoop( aCabbie, L_TALKING);
StartCycling( aCabbie);
talkCycles = 22;
}
--talkCycles;
if (talkCycles == 1)
{
StopCycling( aCabbie);
}
--steeringCycles; [ turn that wheel
if (steeringCycles == 1)
{
Toggle( cabbieSteering);
if (cabbieSteering)
{
StartCycling( aCabbie);
Random( 5, 22, steeringCycles);
}
else
{
StopCycling( aCabbie);
Random( 22, 44, steeringCycles);
}
}
[*****
:exit [ test for leaving the room
[*****
if (rideDone)
{
Reset( programControl);
Reset( handsOff);
newRoom = destRoom;
if (!rodeInCab)
{
Set( rodeInCab);
Reset( OK);
currentScore += 1;
Print( 17);
}
}

110
RM10.MSG Normal file
View File

@ -0,0 +1,110 @@
[messages for room 10 -- rmTaxi
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"The cabbie snarls a \"Where to, buddy?\" as he swings the meter flag down."
%message 2
"\"Lookin' for action, eh? Dis town is full of it.
We gotta disco that's usually full of foxes this time of night.
Den dere's the casino, next to the all-night weddin' chapel.
And we gotta lovely bar, but you've been dere.
Me, I like da convenience store next to da disco,
but of course, that's just personal preference.\""
%message 3
"\"It won't take us long to get back dere,
but I'll have to circle 'round da block.\""
%message 4
"\"Well, here we are, buddy. That'll be $%v200.00.\""
%message 5
"\"So, wadda we gonna do, buddy?
Ya just gonna sit here all night?
I gotta earn a livin' too, ya know!\""
%message 6
"\"Why don'cha wait'll we git there, buddy?\""
%message 7
"\"Sorry, but the meter's runnin'. Where ja wanna go?\""
%message 8
"\"Thanks, buddy. Maybe I'll see ya again sometime!\""
%message 9
"\"Waddaya tryin' to do, peahead!
You're not gonna stiff me, and get away with it!\""
%message 10
"You wish you hadn't.
Mr. America, he ain't.
His strongest feature seems to be his odor!"
%message 11
"He wonders why you keep looking at him,
and flashes a coy little smile back at you in the mirror.
Your stomach turns, and not from the ride!"
%message 12
"The driver looks at you and says,
\"Hey! What's that you got? Wine?\"
He grabs your bottle of wine, and guzzles it down!"
%message 13
"\"Ok, but it'll cost ja extra!\""
%message 14
"\"Waddaya mean, 'no money!!'\" snarls the driver.
\"Step outside my office, chump!\""
%message 15
"\"Ok. You got it, Mac!\""
%message 16
"Hang on, Larry. He's swerving all over the road!"
%message 17
"Whew! You're glad to get out of here."
%message 18
"It seems a bridge abutment has brought your game to a sudden stop!
Remember, Larry: \"Friends don't let cabbies drive drunk!\""
%message 19
"\"I'm sorry, but it's against my personal philosophy to accept a gratuity!\""
%message 20
"Sheepishly, you apologize to the cabbie for not carrying enough money
to pay for the ride."
%message 21
"\"So? Are ya gonna get outta my cab, or not??
Thanks for da business, but I didn't want ta make no career outta this!\""
%message 22
"\"So? Are ya gonna pay up, or do I have ta get rough with cha??\""
%message 23
"It seems to be running a little fast, but then, this is an expensive town!"
%message 24
"You wonder if cab companies have full-time employees to make these floors
sticky."
%message 25
"Even the ceiling's grungy."
%message 26
"\"Ok, buddy,\" says the cabbie. \"But why would cha wanna go there?\""
%message 27
"He sure drives fast, doesn't he?"
%message 28
"\"Nope. Next time, make up your mind before ya gets in da cab!\""

463
RM11.CG Normal file
View File

@ -0,0 +1,463 @@
[logics for room 11 -- rmOutsideBar
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm11.msg"
%include "gamedefs.h"
%include "contrlrs.h"
#define L_HOTEL_SIGN 0
#define L_BAR_SIGN_1 1
#define L_BAR_SIGN_2 2
%define inClear lf0
%define nearDoor lf1
%define doorOpen lf2
%define titleSongDone lf3
%define titleSongPlaying lf4
%define copAtEgo lf5
%define copOnscreen lf7
%object aDoor 1
%object aBarSign1 2
%object aBarSign2 3
%object aHotelSign 4
if (initLog)
{
if (watchHours > 4 && [ Anything after 5 am.
watchHours < 10)
{
NewRoom( rmSunrise);
}
[ if (machineType == MAC)
[ {
[ Set( slowProcessor);
[ }
if (!beenIn11)
{
LoadSound( mTitle);
if (!testRoom)
{
Set( enableMenu);
DisableItem( cDummy);
StatusLineOn();
gameSeconds = 0;
gameMinutes = 0;
gameHours = 0;
gameDays = 0;
Reset( handsOff);
Reset( programControl);
AcceptInput();
animationInterval = NORMAL_SPEED;
currentStatus = NORMAL;
LoadView( vEgo);
SetView( ego, vEgo);
currentEgoView = NORMAL;
}
}
SetHorizon( 130);
LoadLogics( lgcStreet);
LoadPic( currentRoom);
DrawPic( currentRoom);
DiscardPic( currentRoom);
LoadView( vBarExterior);
LoadView( vBarDoor);
if (currentStatus != STIFFED_CABBIE &&
wearingRubber)
{
LoadView( vCop);
LoadSound( mCop);
AnimateObj( aCop);
SetView( aCop, vCop);
Position( aCop, 0, 145);
Draw( aCop);
FollowEgo( aCop, 8, copAtEgo);
Set( copOnscreen);
}
AnimateObj( aDoor);
IgnoreHorizon( aDoor);
IgnoreBlocks( aDoor);
Position( aDoor, 60, 131);
SetView( aDoor, vBarDoor);
SetPriority( aDoor, 8);
SetCel( aDoor, 0);
Draw( aDoor);
work = DOOR_CYCLE_TIME;
CycleTime( aDoor, work);
StopUpdate( aDoor);
if (slowProcessor)
{
AddToPic( vBarExterior, L_BAR_SIGN_1, 0, 36, 83, 4, 4);
[view, loop, cel, x, y, obj priority, box priority
}
else
{
AnimateObj( aBarSign1);
IgnoreHorizon( aBarSign1);
IgnoreBlocks( aBarSign1);
IgnoreObjs( aBarSign1);
Position( aBarSign1, 36, 83);
SetView( aBarSign1, vBarExterior);
SetLoop( aBarSign1, L_BAR_SIGN_1);
Draw( aBarSign1);
CycleTime( aBarSign1, four);
}
AnimateObj( aBarSign2);
IgnoreHorizon( aBarSign2);
IgnoreBlocks( aBarSign2);
IgnoreObjs( aBarSign2);
Position( aBarSign2, 83, 84);
SetView( aBarSign2, vBarExterior);
SetLoop( aBarSign2, L_BAR_SIGN_2);
Draw( aBarSign2);
CycleTime( aBarSign2, one);
AnimateObj( aHotelSign);
IgnoreHorizon( aHotelSign);
IgnoreBlocks( aHotelSign);
IgnoreObjs( aHotelSign);
Position( aHotelSign, 134, 67);
SetView( aHotelSign, vBarExterior);
SetLoop( aHotelSign, L_HOTEL_SIGN);
Draw( aHotelSign);
CycleTime( aHotelSign, five);
if (diedOfTheClap)
{
LoadView( vEgoMissingGroin);
LoadView( vEgoDead);
LoadView( vEgoCollapsing);
}
if (previousRoom == rmAlley)
{
egoX = 134;
egoY = 142;
SetLoop( ego, FACING_LEFT);
StartMotion( ego);
}
else
{
if (previousRoom == rmInsideBar)
{
egoX = 58;
egoY = 134;
SetLoop( ego, FACING_FRONT);
}
else
{
if (previousRoom != rmDarkAlley)
{
egoX = 63;
egoY = 156;
SetLoop( ego, FACING_BACK);
}
}
}
PositionV( ego, egoX, egoY);
Draw( ego);
Call( lgcStreet);
ShowPic( );
if (currentStatus != STIFFED_CABBIE &&
wearingRubber)
{
Sound( mCop, done);
}
if (!beenIn11)
{
Set( beenIn11);
Sound( mTitle, titleSongDone);
Set( titleSongPlaying);
}
Return( );
} [ end initLOG
Reset( inClear);
if (Posn( ego, 34, 142, 130, 166))
{
Set( inClear);
}
Reset( nearDoor);
if (Posn( ego, 50, 131, 75, 136))
{
Set( nearDoor);
}
[*****
:handleInput
[*****
if (!haveInput) {goto noInput;}
if ((Said( look) ||
Said( look, building) ||
Said( look, room) ||
Said( look, bar)))
{
Print( 1);
Print( 2);
}
if (Said( look, mat))
{
Print( 9);
}
if ((Said( lift, mat) ||
Said( look, under, mat)))
{
Print( 10);
Print( 11);
Print( 12);
}
[ Now, do the cop stuff.
if (copOnscreen)
{
if (Said( look, cop))
{
Print( 18);
}
if (Said( talk, cop))
{
Print( 15);
}
}
if (Said( open, door))
{
if (nearTaxi)
{
Reset( haveMatch);
}
else
{
if (!nearDoor)
{
Set( notCloseEnough);
}
else
{
if (watchHours > 2 && [ Anything after 3 am.
watchHours < 10)
{
Print( 13);
Print( 14);
}
else
{
Set( OK);
StartUpdate( aDoor);
EndOfLoop( aDoor, doorOpen);
PreventInput();
StopMotion( ego);
Set( programControl);
}
}
}
}
if (Said( look, door))
{
if (!nearDoor)
{
Set( notCloseEnough);
}
else
{
Print( 8);
}
}
if ((Said( look, bar) ||
Said( look, building)))
{
Print( 4);
}
if ((Said( look, window) ||
Said( look$in, window)))
{
Print( 6);
}
if ((Said( break, window) ||
Said( hit, window)))
{
Print( 7);
}
[*****
:noInput
[*****
if (!handsOff &&
diedOfTheClap &&
secondsInRoom > 5 &&
currentEgoView == NORMAL &&
currentStatus == NORMAL &&
inClear)
{
Set( scriptDone);
script = 0;
}
if (script == 2 && inClear)
{
Set( scriptDone);
}
if (scriptDone)
{
Reset( scriptDone);
++script;
if (script == 1)
{
Reset( diedOfTheClap);
currentStatus = DYING_OF_CLAP;
Set( handsOff);
PreventInput();
SetView( ego, vEgoMissingGroin);
ForceUpdate( ego);
Print( 3);
scriptTimer = 10;
}
if (script == 2)
{
[ This makes us wait until previous timer has expired,
[then wait again until inClear is set.
}
if (script == 3)
{
Print( 5);
StopMotion( ego);
Set( programControl);
SetView( ego, vEgoCollapsing);
SetCel( ego, 0);
CycleTime( ego, two);
Set( keepCycling);
EndOfLoop( ego, scriptDone);
}
if (script == 4)
{
Reset( keepCycling);
StopCycling( ego);
SetView( ego, vEgoDead);
SetCel( ego, 0);
egoX -= 3;
if (egoY < 160)
{
egoY += 7;
}
RepositionToV( ego, egoX, egoY);
scriptTimer = 5;
}
if (script == 5)
{
Set( keepCycling);
CycleTime( ego, three);
EndOfLoop( ego, scriptDone);
}
if (script == 6)
{
Reset( handsOff);
newRoom = rmWorkshop;
}
}
[ Cop stuff:
if (aSecondPassed &&
secondsInRoom == 5 &&
wearingRubber)
{
Print( 15);
}
if (copAtEgo)
{
Reset( copAtEgo);
Set( handsOff);
Erase( ego);
Erase( aCop);
Set( certainDeath);
Print( 16);
Print( 17);
}
if (titleSongDone)
{
Reset( titleSongDone);
Reset( titleSongPlaying);
}
if (titleSongPlaying)
{
notMovedCycles = 0;
}
[*****
:exit [ test for leaving the room
[*****
Call( lgcStreet);
if ((edgeEgoHit == RIGHT ||
edgeEgoHit == LEFT)) {newRoom = rmDarkAlley;}
if (Posn( ego, 132, 120, SCREEN_RIGHT, 138)) {newRoom = rmAlley;}
if (doorOpen)
{
AcceptInput();
StartMotion( ego);
Reset( programControl);
newRoom = rmInsideBar;
}

66
RM11.MSG Normal file
View File

@ -0,0 +1,66 @@
[messages for room 11 -- rmOutsideBar
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"You are outside Lefty's bar. Isn't it wonderful what can be done
with a little neon?"
%message 2
"There is a sign on that utility pole."
%message 3
"It appears that the hooker gave you a little more than you bargained for!"
%message 4
"Considering the looks of this place, you decide that next time you'd be
better off to spend a little more money on your computer games!"
%message 5
"While life may be possible, it is no longer worth living."
%message 6
"The windows are too dirty to see through."
%message 7
"Nah. Lefty would probably break both your legs!"
%message 8
"Nice tuck and roll job, eh?"
%message 9
"\"Welcome\""
%message 10
"Amazed by your own cleverness, you lift the door mat and discover..."
%message 11
"...absolutely nothing!"
%message 12
"(What did you expect? A key?)"
%message 13
"You can't. The door is securely locked. "
%message 14
"Lefty's closes at 3:00 a.m."
%message 15
"\"STOP, PERVERT!!!\" shouts the cop.\n\n
\"I wonder who he's yelling at,\" you think."
%message 16
"\"Caught you, pervert!\" the cop shouts.
\"We don't like people exposing themselves around this town,
especially wearing one of those!\""
%message 17
"Next time, if you insist on wearing your \"lubber\" in public,
you should at least zip your fly."
%message 18
"He appears to be chasing someone!"

1125
RM12.CG Normal file

File diff suppressed because it is too large Load Diff

195
RM12.MSG Normal file
View File

@ -0,0 +1,195 @@
[messages for room 12 -- rmAlley
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"Try moving to the east end of the fire escape."
%message 2
"Try moving to the west end of the fire escape."
%message 3
"%m7 and a fence."
%message 4
"Nah. That room needs the fresh air!"
%message 5
"You are on a fire escape.
A rusty ladder is at one end.
East of the fire escape is another window, just out of your reach."
%message 6
"%m7, a fence, and something sitting in the east window."
%message 7
"It's a nice little alley, with a trash bin, two windows, a fire escape"
%message 8
"Move closer to the ladder."
%message 9
"(Of course, you can't play the violin now, but you get the idea.)"
%message 10
"Unlock it? From the outside?"
%message 11
"You can't. It's locked from the inside."
%message 12
"Looking inside the west window, you see the room you just left."
%message 13
"Looking at the east window,
you notice a bottle of pills sitting on the window ledge."
%message 14
"There are two windows high above you.
The west window by the fire escape has a dim, reddish glow;
the east window is dark.
There may be something on the sill of the east window,
but you can't make it out from down here."
%message 15
"You broke it, didn't you?"
%message 16
"You lean far out over the railing before remembering that
agility is yet another of your short suits."
%message 17
"With the rope securely holding you to the railing,
you can reach all the way over to the window.
NOW, of all times, you notice the window's locked!"
%message 18
"Subtly, you smash the window with your hammer.
Your future as a second-story man seems quite plausible!"
%message 19
"You got 'em! But what are they?"
%message 20
"You might try reaching over to the window first."
%message 21
"You consider sticking your hand through a solid glass window,
but realize that if you did, you wouldn't be able to play the violin."
%message 22
"It already is."
%message 23
"What is this; a death wish?"
%message 24
"You already took them. Why do this again?"
%message 25
"Amidst assorted, odoriferous refuse from Lefty's clientel, you discover
Lefty's old, left-handed hammer."
%message 26
"There's nothing else here worth describing, let alone taking."
%message 27
"\"YUCK!!\""
%message 28
"Unfortunately, you can't see much from out here."
%message 29
"Wow! Does your head hurt!!"
%message 30
"Hey! Where are you?"
%message 31
"After a careful analysis of your surroundings,
you conclude you are at the bottom of a pile of garbage!"
%message 32
"Move to the front of the trash bin."
%message 33
"There's no way to reach the ladder from down here.
It's only accessible from above."
%message 34
"You see alleys stretching off to infinity."
%message 35
"The fence is much too tall for you to climb over."
%message 36
"It's not long enough to reach from here."
%message 37
"It's not long enough to reach anywhere,
but you might want to use it for safety purposes."
%message 38
"Be more specific."
%message 39
"You untie the rope."
%message 40
"How can you do that?"
%message 41
"Using the dull pocket knife, you cut the rope free."
%message 42
"%g176" [ That's AN idea...
%message 43
"A rickety fire escape, complete with safety ladder,
is loosely attached to the building.
A mild, reddish glow comes from the window behind it."
%message 44
"Unfortunately the lid on the trash bin just will not close."
%message 45
"Try as you might, it is impossible to move the trash bin."
%message 46
"The solution is closer to you than that."
%message 47
"There is an old neon sign hanging on the wall that says \"Hotel\"..."
%message 48
"...approximately."
%message 49
"You can't. Even its rusty bolts are too tough for you!"
%message 50
"Not now!"
%message 51
"There may be something in the east window, but from here, you're not sure."
%message 52
"It's a long way to the ground!"
%message 53
"Whee!"
%message 54
"Move closer to the window, if you want to go back in the hooker's room."
%message 55
"You reconsider after noticing the trash bin is behind where you would fall!"
%message 56
"You ain't got no knife!!"
%message 57
"You're currently all tied up!"

631
RM13.CG Normal file
View File

@ -0,0 +1,631 @@
[logics for room 13 -- rmToilet
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm13.msg"
%include "gamedefs.h"
%define WATER_CYCLE 8
%define nearToilet lf0
%define toiletOverflowing lf2
%define doorOpenDone lf4
%define doorCloseDone lf7
%define nearDoor lf8
%define nearSink lf9
%define paperCycling lf10
%define waterY lv0
%define waterCycle lv1
%define toiletTimer lv2
%define pissTimer lv3
%define graffitiCount lv4
%define paperCycles lv5
%object aDoor 1
%object aFountain 2
%object aRing 3
if (initLog)
{
LoadView( vEgoOnToilet);
LoadView( vToiletOverflowing);
LoadView( vToiletFountain);
LoadView( vToiletDoor);
LoadView( vRing);
LoadView( vEgoDrowning);
LoadSound( sPissing);
LoadSound( sFart);
LoadPic( currentRoom);
DrawPic( currentRoom);
DiscardPic( currentRoom);
AnimateObj( aDoor);
IgnoreHorizon( aDoor);
IgnoreBlocks( aDoor);
IgnoreObjs( aDoor);
Position( aDoor, 52, 137);
SetView( aDoor, vToiletDoor);
LastCel( aDoor, work);
SetCelV( aDoor, work);
SetPriority( aDoor, 10);
work = DOOR_CYCLE_TIME;
CycleTime( aDoor, work);
Draw( aDoor);
BeginningOfLoop( aDoor, doorCloseDone);
AnimateObj( aFountain);
IgnoreHorizon( aFountain);
IgnoreBlocks( aFountain);
IgnoreObjs( aFountain);
Position( aFountain, 71, 123);
SetView( aFountain, vToiletFountain);
SetPriority( aFountain, 6);
if (ObjInRoom( iRing, currentRoom))
{
AnimateObj( aRing);
IgnoreBlocks( aRing);
IgnoreObjs( aRing);
SetView( aRing, vRing);
SetPriority( aRing, 12);
Position( aRing, 101, 116);
Draw( aRing);
StopUpdate( aRing);
}
Set( programControl);
StopMotion( ego);
Position( ego, 56, 136);
Draw( ego);
ShowPic( );
Return( );
} [ end initLOG
Reset( nearDoor);
if (Posn( ego, 50, 132, 60, 140))
{
Set( nearDoor);
}
Reset( nearSink);
if (Posn( ego, 89, 129, 110, 160))
{
Set( nearSink);
}
Reset( nearToilet);
if (Posn( ego, 65, 125, 84, 131))
{
Set( nearToilet);
}
[*****
:handleInput
[*****
if (!haveInput) {goto noInput;}
if ((Said( look) ||
Said( look, room)))
{
Print( 1);
}
if ((Said( take, ring) ||
Said( take, ring, from, sink) ||
Said( take, ring, sink)))
{
if (!nearSink)
{
Set( notCloseEnough);
}
else
{
if (!ObjInRoom( iRing, currentRoom))
{
Set( alreadyGotIt);
}
else
{
StartUpdate( aRing);
Erase( aRing);
Get( iRing);
currentScore += 3;
Print( 13);
}
}
}
if ((Said( look$in, sink) ||
Said( look, sink)))
{
if (!nearSink)
{
Set( notCloseEnough);
}
else
{
if (!ObjInRoom( iRing, currentRoom))
{
Print( 14);
Print( 15);
}
else
{
Print( 12);
}
}
}
[ Handle finding the ring and the graffiti.
if (Said( look, wall))
{
++graffitiCount;
if (graffitiCount == 1)
{
Print( 2);
}
if (graffitiCount == 2)
{
Print( 4);
}
if (graffitiCount == 3)
{
Print( 5);
}
if (graffitiCount > 3)
{
Print( 17);
if (!knowsPassword)
{
Set( knowsPassword);
currentScore += 2;
}
}
}
if (Said( smell, rol))
{
Print( 39);
}
[ Handle ego dumping.
if ((Said( get, up) ||
Said( leave) ||
Said( stop, crap) ||
Said( get, paper) ||
Said( use, paper) ||
Said( get, toilet, paper) ||
Said( use, toilet, paper) ||
Said( wipe) ||
Said( wipe, ass) ||
Said( stand, up) ||
Said( stand)))
{
if (currentStatus != ON_TOILET)
{
Print( 7);
}
else
{
Print( 29);
Set( toiletPaperOnShoe);
currentStatus = NORMAL;
SetView( ego, vEgo);
CycleTime( ego, one);
ForceUpdate( ego);
StartMotion( ego);
Reset( programControl);
Reset( keepCycling);
toiletTimer = 0;
paperCycles = 0;
Return();
}
}
if (currentStatus == ON_TOILET &&
!haveMatch)
{
Set( haveMatch);
Print( 7);
}
if ((Said( take, crap) ||
Said( sit, toilet) ||
Said( sit, stool) ||
Said( sit, on, toilet) ||
Said( sit, on, stool) ||
Said( go, toilet) ||
Said( use, toilet) ||
Said( sit) ||
Said( crap)))
{
if (currentStatus != NORMAL)
{
Print( 7);
}
else
{
if (!nearToilet)
{
Set( notCloseEnough);
}
else
{
currentStatus = ON_TOILET;
SetView( ego, vEgoOnToilet);
RepositionTo( ego, 72, 126);
Set( programControl);
Set( keepCycling);
StopMotion( ego);
ForceUpdate( ego);
Print( 10);
toiletTimer = 14;
paperCycles = 3;
if (!poopedInCan)
{
Set( poopedInCan);
currentScore += 1;
}
Return();
}
}
}
if ((Said( drink, water, rol) ||
Said( get, drink, rol)))
{
Print( 36);
}
if ((Said( turn, on, water) ||
Said( turn, water, on, sink) ||
Said( turn, on, sink) ||
Said( turn, on, water, sink) ||
Said( wash, hands, rol)))
{
if (!nearSink)
{
Set( notCloseEnough);
}
else
{
Print( 22);
Print( 24);
Print( 25);
Print( 27);
}
}
if (Said( wash, face, rol))
{
if (!nearSink)
{
Set( notCloseEnough);
}
else
{
Print( 22);
Print( 24);
Print( 25);
Print( 31);
}
}
if ((Said( dry, rol) ||
Said( shake, rol) ||
Said( wipe, face, rol) ||
Said( wipe, hands, rol) ||
Said( wipe, my, face, rol) ||
Said( wipe, my, hands, rol)))
{
Print( 32);
}
if ((Said( rinse, sink) ||
Said( rinse, out, sink)))
{
Print( 35);
}
if ((Said( piss, rol) ||
Said( go, bathroom, rol) ||
Said( take, piss, rol)))
{
if (currentStatus != NORMAL)
{
Print( 7);
}
else
{
if (!nearToilet)
{
Set( notCloseEnough);
}
else
{
Set( OK);
currentStatus = PISSING;
SetLoop( ego, FACING_BACK);
RepositionTo( ego, 74, 127);
ForceUpdate( ego);
Set( programControl);
StopMotion( ego);
pissTimer = 5;
Sound( sPissing, done);
}
}
}
if (Said( throw, up))
{
Print( 41);
}
if ((Said( knock, anyword, door) ||
Said( knock, door, anyword) ||
Said( knock, door) ||
Said( knock)))
{
if (!nearDoor)
{
Set( notCloseEnough);
}
else
{
Print( 6);
}
}
if (Said( open, door))
{
if (!nearDoor)
{
Print( 26);
}
else
{
StopMotion( ego);
Set( programControl);
StartUpdate( aDoor);
EndOfLoop( aDoor, doorOpenDone);
}
}
if ((Said( look, mirror) ||
Said( look$in, mirror)))
{
if (!nearSink)
{
Set( notCloseEnough);
}
else
{
Print( 9);
}
}
if ((Said( look, behind, mirror) ||
Said( open, mirror) ||
Said( move, mirror) ||
Said( open, cabinet)))
{
if (!nearSink)
{
Set( notCloseEnough);
}
else
{
Print( 37);
}
}
if ((Said( open, toilet, rol) ||
Said( look$in, toilet, tank)))
{
Print( 38);
}
if ((Said( look, toilet, paper) ||
Said( get, toilet, paper) ||
Said( use, toilet, paper)))
{
if (!nearToilet)
{
Set( notCloseEnough);
}
else
{
Print( 28);
}
}
if ((Said( look$in, toilet) ||
Said( look, toilet)))
{
if (!nearToilet)
{
Set( notCloseEnough);
}
else
{
Print( 23);
}
}
[ Do the water filling stunt.
if ((Said( flush, toilet) ||
Said( flush)))
{
if (!nearToilet)
{
Set( notCloseEnough);
}
else
{
PreventInput();
Set( programControl);
StopMotion( ego);
Set( toiletOverflowing);
waterY = 148;
Draw( aFountain);
waterCycle = WATER_CYCLE;
Print( 33);
Print( 34);
}
}
if ((Said( get, paper) ||
Said( read, paper)))
{
Print( 30);
}
if (Has( iMagazine) &&
Said( look, magazine, rol))
{
Print( 40);
}
if (Said( wipe, hand, on, pants))
{
Set( OK);
}
if (Said( anyword, toilet, rol))
{
Print( 16);
}
[*****
:noInput
[*****
if (aSecondPassed)
{
--toiletTimer;
if (toiletTimer == 6)
{
Print( 11);
}
if (toiletTimer == 1)
{
Sound( sFart, done);
Print( 21);
}
--pissTimer;
if (pissTimer == 1)
{
Print( 3);
currentStatus = NORMAL;
StartMotion( ego);
Reset( programControl);
}
}
--paperCycles;
if (paperCycles == 1)
{
Toggle( paperCycling);
if (paperCycling)
{
SetLoop( ego, 1); [ Turn the page.
CycleTime( ego, one);
Random( 7, 12, paperCycles);
}
else
{
SetLoop( ego, 0); [ Look at the pages.
CycleTime( ego, five);
Random( 19, 33, paperCycles);
}
}
if (doorCloseDone)
{
Reset( doorCloseDone);
StopUpdate( aDoor);
Reset( programControl);
StartMotion( ego);
}
--waterCycle;
if (waterCycle == 1)
{
if (toiletOverflowing && waterY == 100)
{
Print( 19);
Print( 20);
SetView( ego, vEgoDrowning);
Set( keepCycling);
}
if (toiletOverflowing && waterY == 40)
{
Print( 18);
Set( certainDeath);
}
if (toiletOverflowing && waterY > 36)
{
view = 59;
loop = 0;
cell = 0;
x = 47;
priority = 15;
AddToPicV( view, loop, cell, x, waterY, priority, four);
[view, loop, cel, x, y, obj priority, box priority
waterY -= 4;
waterCycle = WATER_CYCLE;
}
}
[*****
:exit [ test for leaving the room
[*****
if (doorOpenDone)
{
Reset( programControl);
newRoom = rmHallway;
}

143
RM13.MSG Normal file
View File

@ -0,0 +1,143 @@
[messages for room 13 -- rmToilet
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"You are in Lefty's one and only restroom.
The stench is overpowering, there is graffiti on the walls, and you
doubt that the sink was clean even when it was installed.
Even roaches can't survive in this place!"
%message 2
"%m8Scott me up, Beamie!\""
%message 3
"Ahhhhhhh."
%message 4
"%m8Attention arcade game players: please don't eat the urinal cakes!\""
%message 5
"%m8It takes leather balls to play rugby!\""
%message 6
"Funny. No one knocks back."
%message 7
"NOW??"
%message 8
"You see many messages. One is:\n\n\""
%message 9
"You see a handsome, dashing, macho, sexy, young man.
(Obviously, this mirror has quite a bit of distortion!)"
%message 10
"You grab an ancient copy of the \"Ball Street Journal,\"
and settle in to \"sit and think!\""
%message 11
"You feel a great relief!"
%message 12
"Why, look!
Some woman removed her diamond ring to wash her hands,
and forgot to take it with her."
%message 13
"Got it!\n\n
You briefly consider an attempt to find the ring's owner,
but return to your normal self and pocket it instead."
%message 14
"A small, neatly lettered sign reminds you:\n\n
\"Since we can't clean up after every customer,
please rinse out this sink when you are finished.\""
%message 15
"Evidently, you are the first customer who can read."
%message 16
"My, my. Aren't we the little sick-o!"
%message 17
"Say, here's an interesting one:\n\n
\"The password is: 'Ken sent me.'\""
%message 18
"Bad idea, eh Larry?"
%message 19
"Your life passes before your eyes."
%message 20
"You doze briefly."
%message 21
"What's that aroma?"
%message 22
"Ok."
%message 23
"It's not a pretty sight!"
%message 24
"Say, there's no soap."
%message 25
"There's no towels."
%message 26
"Move closer to the handle."
%message 27
"Your hands are still dirty, but now they're wet!"
%message 28
"The toilet paper is only there for official purposes."
%message 29
"Carefully finishing your duties,
you wipe and toss the newspaper behind the toilet for the next user."
%message 30
"You only read while \"enthroned.\""
%message 31
"Your face is still dirty, but at least it's now dripping with water."
%message 32
"Ok. You're dry (but your keyboard is still damp)!"
%message 33
"Realizing your mistake, you quickly jiggle the handle,
attempting to stem the onrushing tide of water."
%message 34
"It doesn't work."
%message 35
"It's nice of you to try, but this sink is too far gone to save!"
%message 36
"No one would drink from ANY fixture in here!"
%message 37
"Nice idea, but the mirror is firmly attached to the wall."
%message 38
"Yuck!"
%message 39
"Lefty must be running low on air freshener."
%message 40
"No wonder your eyesight is so bad!"
%message 41
"Been drinking Lefty's liquor again, eh?"

439
RM14.CG Normal file
View File

@ -0,0 +1,439 @@
[logics for room 14 -- rmHallway
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm14.msg"
%include "gamedefs.h"
%define TALK_TIME 5
#define L_DRUNK 0 [ View.47
#define L_LEG 1
#define L_ROSE 0 [ View.57
#define L_DOOR 1
%define nearDrunk lf0
%define nearRose lf1
%define nearDoor lf2
%define doorOpenDone lf3
%define readMessage lf4
%define nutsMessage lf5
%define seenStinkMessage lf6
%define talkMan lf7
%define talkTimer lv0
%define drunkMessage lv1
%object aMan 1
%object aRose 2
%object aDoor 3
if (initLog)
{
SetHorizon( 44);
ObserveBlocks( ego);
LoadView( vRm14Stuff);
LoadView( vRm14Drunk);
LoadSound( mRm14Drunk);
LoadPic( currentRoom);
DrawPic( currentRoom);
DiscardPic( currentRoom);
AnimateObj( aDoor);
IgnoreBlocks( aDoor);
IgnoreObjs( aDoor);
SetView( aDoor, vRm14Stuff);
SetLoop( aDoor, L_DOOR);
SetCel( aDoor, 0);
SetPriority( aDoor, 9);
work = DOOR_CYCLE_TIME;
CycleTime( aDoor, work);
Position( aDoor, 105, 123);
Draw( aDoor);
StopCycling( aDoor);
AnimateObj( aMan);
IgnoreBlocks( aMan);
IgnoreObjs( aMan);
SetView( aMan, vRm14Drunk);
SetLoop( aMan, L_DRUNK);
SetCel( aMan, 0);
Position( aMan, 99, 132);
Draw( aMan);
StopCycling( aMan);
CycleTime( aMan, two);
AddToPic( vRm14Drunk, L_LEG, 0, 99, 141, 0, 4);
[view, loop, cel, x, y, obj priority, box priority
if (ObjInRoom( iRose, currentRoom))
{
AnimateObj( aRose);
IgnoreBlocks( aRose);
IgnoreObjs( aRose);
Position( aRose, 48, 115);
SetView( aRose, vRm14Stuff);
SetLoop( aRose, L_ROSE);
SetCel( aRose, 0);
SetPriority( aRose, 12);
Draw( aRose);
StopUpdate( aRose);
}
if (previousRoom == rmToilet)
{
egoX = 100;
egoY = 123;
}
else
{
egoX = 76;
SetLoop( ego, FACING_BACK);
}
PositionV( ego, egoX, egoY);
Draw( ego);
ShowPic( );
Sound( mRm14Drunk, done);
Return( );
} [ end initLOG
Reset( nearDoor);
if (Posn( ego, 95, 110, 104, 127))
{
Set( nearDoor);
}
Reset( nearDrunk);
if (Posn( ego, 90, 125, 150, 150))
{
Set( nearDrunk);
}
Reset( nearRose);
if (Posn( ego, 40, 114, 58, 134))
{
Set( nearRose);
}
[*****
:handleInput
[*****
if (!haveInput) {goto noInput;}
if ((Said( look) ||
Said( look, room)))
{
Print( 1);
}
if ((Said( look, brick, rol) ||
Said( feel, wall) ||
Said( get, brick)))
{
if (!nearDoor)
{
Print( 17);
}
else
{
Print( 25);
}
}
if (Said( look, drunk))
{
Print( 9);
Print( 10);
}
if ((Said( buy, man, drink) ||
Said( buy, drink, for, man)))
{
if (!nearDrunk)
{
Set( notCloseEnough);
}
else
{
Print( 19);
}
}
if (Said( open, door))
{
if (!nearDoor)
{
Set( notCloseEnough);
}
else
{
Set( OK);
StopMotion( ego);
Set( programControl);
EndOfLoop( aDoor, doorOpenDone);
}
}
if ((talkMan ||
Said( talk, man) ||
Said( ask, man, rol)))
{
Reset( talkMan);
if (!nearDrunk)
{
Set( notCloseEnough);
}
else
{
drunkMessage = 5;
talkTimer = TALK_TIME;
StartCycling( aMan);
}
}
if ((Said( give, money) ||
Said( use, money) ||
Said( give, man, money) ||
Said( give, money, man)))
{
if (!nearDrunk)
{
Set( notCloseEnough);
}
else
{
--dollars;
Print( 16);
}
}
if ((Said( give, whiskey) ||
Said( give, man, drink) ||
Said( give, drink, man) ||
Said( give, drink) ||
Said( use, whiskey) ||
Said( give, man, whiskey) ||
Said( give, whiskey, man)))
{
if (!Has( iWhiskey))
{
Print( 18);
}
else
{
if (!nearDrunk)
{
Set( notCloseEnough);
}
else
{
Drop( iWhiskey);
talkTimer = TALK_TIME;
StartCycling( aMan);
if (!ObjInRoom( iRemoteControl, currentRoom))
{
drunkMessage = 15;
}
else
{
drunkMessage = 6;
}
}
}
}
if ((Said( look, top$of, table) ||
Said( look, table)))
{
if (ObjInRoom( iRose, currentRoom))
{
Print( 11);
}
else
{
Print( 3);
}
}
if (ObjInRoom( iRose, currentRoom) &&
Said( look, rose))
{
Print( 11);
}
if (Said( take, rose))
{
if (!nearRose)
{
Set( notCloseEnough);
}
else
{
if (!ObjInRoom( iRose, currentRoom))
{
Set( alreadyGotIt);
}
else
{
Set( OK);
currentScore += 1;
Erase( aRose);
Get( iRose);
}
}
}
if ((Said( give, anyword, man) ||
Said( give, man, rol)))
{
if (!nearDrunk)
{
Set( notCloseEnough);
}
else
{
Print( 20);
}
}
if ((Said( help, anyword, man, rol) ||
Said( help, man, rol)))
{
if (!nearDrunk)
{
Set( notCloseEnough);
}
else
{
Print( 21);
}
}
if ((Said( shake, man, rol) ||
Said( wake, man, rol) ||
Said( hit, man, rol)))
{
if (!nearDrunk)
{
Set( notCloseEnough);
}
else
{
Print( 24);
Set( talkMan);
}
}
if ((Said( look$in, man, rol) ||
Said( look$in, clothes, rol) ||
Said( rob, drunk, rol) ||
Said( rob, money, rol) ||
Said( take, wallet, rol) ||
Said( search, clothes, rol) ||
Said( search, man, rol)))
{
if (!nearDrunk)
{
Set( notCloseEnough);
}
else
{
Print( 4);
}
}
[*****
:noInput
[*****
if (aSecondPassed)
{
--talkTimer;
if (talkTimer == 1)
{
SetCel( aMan, 0);
StopCycling( aMan);
PrintV( drunkMessage);
if (drunkMessage == 6)
{
Print( 7);
Print( 8);
Print( 22);
Print( 22);
Print( 22);
Print( 23);
currentScore += 2;
Get( iRemoteControl);
}
}
}
if (!readMessage &&
egoX == 101 &&
egoY == 133)
{
Set( readMessage);
Toggle( nutsMessage);
if (nutsMessage)
{
Print( 13);
}
else
{
Print( 12);
}
}
if (toiletPaperOnShoe &&
nearDrunk &&
previousRoom == rmToilet &&
!seenStinkMessage)
{
Set( seenStinkMessage);
StartCycling( aMan);
talkTimer = TALK_TIME;
drunkMessage = 2;
}
if (readMessage)
{
Distance( ego, aMan, work);
if (work > 25)
{
Reset( readMessage);
}
}
[*****
:exit [ test for leaving the room
[*****
if (edgeEgoHit == BOTTOM) {newRoom = rmInsideBar;}
if (doorOpenDone)
{
Reset( programControl);
newRoom = rmToilet;
}

90
RM14.MSG Normal file
View File

@ -0,0 +1,90 @@
[messages for room 14 -- rmHallway
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"You are in a dimly lit hallway.
The paint peeling off the walls gives the cockroaches something to watch.
An old table is pushed against the west wall.
A filthy drunk sits on the filthy floor, leaning against the filthy wall."
%message 2
"\"Jeeezz! Somethin' die in there??\""
%message 3
"You can remember when that table held a rose."
%message 4
"You find nothing but odor."
%message 5
"\"Hiya shhhhonny. How's 'bout you 'n' me havin' a lil' drink?\""
%message 6
"Glug, glug, glug, glug, glug."
%message 7
"Slurp! \"Ahhhh! That did hit the ol' spot!\""
%message 8
"\"Ya know, ya mus' be ma only frien' in the whole world!
Shhoooo, I'm gonna give ya my only posshhess... hhic!"
%message 9
"He's a poor little lamb, who has lost his way..."
%message 10
"...and also his bladder control!"
%message 11
"There is a single, lovely, long-stemmed,
red rose lying incongruously on the table."
%message 12
"\"Wadda ya tryin' to do; make me a soprano??\""
%message 13
"\"Geeze! Them pointy-toed shoes hurt!\""
%message 14
"You generously hand him a dollar."
%message 15
"\"Shhaay, thanksh buddy! How 'bout sshhom'ore?\""
%message 16
"He responds, \"Ya know, whad I really need is a good, sshhtiff belt!\""
%message 17
"You spend hours carefully examining every brick.
You find nothing."
%message 18
"You have no drink to give him."
%message 19
"There's no one selling anything here. Try the bartender out front."
%message 20
"He's too drunk to want anything."
%message 21
"He's beyond help, but thirsty."
%message 22
"\"...my only posshhess... hhic!"
%message 23
"\"...all I got in the world.\n\n
What'sha guy like me need witta TV remote control!?\""
%message 24
"\"Hey! Wake up!\""
%message 25
"Caught ya! Now open the door,
then get your nose out of that manual
and start playing this game the right way!"

1267
RM15.CG Normal file

File diff suppressed because it is too large Load Diff

278
RM15.MSG Normal file
View File

@ -0,0 +1,278 @@
[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."

699
RM16.CG Normal file
View File

@ -0,0 +1,699 @@
[logics for room 16 -- rmBackroom
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm16.msg"
%include "gamedefs.h"
[ There is a pimp here, watching TV. Player has to get
[past pimp by paying him, or making him watch TV until he
[doesn't notice him sneak past, and up stairs. "use remote
[control". "pay pimp" "turn tv on/off" "change channels"
[channels give various messages.
#define L_PIMP_SITTING 2
%define PIMP_START_X 42 [ Pimpie co-ordinates
%define PIMP_BLOCK_X 116
%define PIMP_TV_X 70
%define PIMP_WAITING_X 100
%define PIMP_Y 135
%define PIMP_SITTING_Y 132
%define sitPimpDown lf0
%define pimpAtStairs lf1
%define nearTV lf2
%define doorOpenDone lf3
%define doorCloseDone lf4
%define nearDoor lf5
%define pimpBlockingStairs lf6
%define nearStairs lf7
%define gaveWarning lf8
%define nearPimp lf9
%define waitingToBlockStairs lf10
%define pimpClear lf11
%define blockingTV lf12
%define TVMessageCycles lv0
%define moveTimer lv1
%define TVCycles lv2
%object aPimp 1
%object aDoor 2
%object aTV 3
if (initLog)
{
SetHorizon( 39);
LoadPic( currentRoom);
DrawPic( currentRoom);
DiscardPic( currentRoom);
LoadView( vRm16Door);
LoadView( vPimp);
LoadView( vPimpBlockingStairs);
LoadView( vTVOn);
AnimateObj( aDoor);
IgnoreBlocks( aDoor);
IgnoreObjs( aDoor);
Position( aDoor, 24, 132);
SetView( aDoor, vRm16Door);
SetPriority( aDoor, 10);
work = DOOR_CYCLE_TIME;
CycleTime( aDoor, work);
AnimateObj( aTV);
IgnoreBlocks( aTV);
IgnoreObjs( aTV);
Position( aTV, 70, 136);
SetView( aTV, vTVOn);
if (TVOn)
{
Draw( aTV);
Random( 3, 9, TVCycles);
}
AnimateObj( aPimp);
if (pimpWatchingTV)
{
SetView( aPimp, vPimp);
SetLoop( aPimp, L_PIMP_SITTING);
Position( aPimp, PIMP_TV_X, PIMP_SITTING_Y);
}
else
{
if (previousRoom == rmHooker)
{
SetView( aPimp, vPimpBlockingStairs);
Position( aPimp, PIMP_WAITING_X, PIMP_Y);
Set( waitingToBlockStairs);
}
else
{
SetView( aPimp, vPimp);
SetLoop( aPimp, FACING_RIGHT);
Position( aPimp, PIMP_START_X, PIMP_Y);
MoveObj( aPimp, PIMP_BLOCK_X, PIMP_Y, 1, pimpAtStairs);
}
}
Draw( aPimp);
SetLoop( ego, FACING_RIGHT);
if (previousRoom == rmHooker)
{
SetCel( aDoor, 0);
Draw( aDoor);
StopUpdate( aDoor);
egoX = 71;
egoY = 55;
}
else
{
LastCel( aDoor, work);
SetCelV( aDoor, work);
Draw( aDoor);
BeginningOfLoop( aDoor, doorCloseDone);
egoX = 26;
egoY = 136;
StopMotion( ego);
Set( programControl);
}
PositionV( ego, egoX, egoY);
Draw( ego);
ShowPic( );
Return( );
} [ end initLOG
Reset( nearPimp);
Distance( ego, aPimp, work);
if (work < 13)
{
Set( nearPimp);
Set( nearPerson);
}
Reset( nearDoor);
if (Posn( ego, 22, 123, 33, 137))
{
Set( nearDoor);
}
Reset( nearTV);
if (Posn( ego, 65, 137, 80, 143))
{
Set( nearTV);
}
Reset( blockingTV);
if (Posn( ego, 65, 133, 76, 143))
{
Set( blockingTV);
}
Reset( nearStairs);
if (Posn( ego, 105, 131, 133, 139))
{
Set( nearStairs);
}
[*****
:handleInput
[*****
if (!haveInput) {goto noInput;}
if ((Said( look) ||
Said( look, room)))
{
Print( 1);
}
if ((Said( look, boxes) ||
Said( open, boxes) ||
Said( look$in, boxes)))
{
Print( 27);
}
if ((Said( get, box) ||
Said( move, box) ||
Said( climb, box) ||
Said( climb, on, box) ||
Said( use, box)))
{
Print( 48);
}
if (Said( look, door))
{
Print( 7);
}
if ((Said( look, stairs, rol) ||
Said( look, up, rol)))
{
Print( 55);
}
if (Said( look, man))
{
Print( 44);
}
if ((Said( aim, control, man) ||
Said( use, control, on, man)))
{
Print( 59);
}
if (Said( look, tv))
{
if (!TVOn)
{
Print( 45);
}
else
{
if (!pimpWatchingTV)
{
Print( 46);
}
else
{
Print( 47);
}
}
}
if ((Said( pay, rol) ||
Said( buy, girl) ||
Said( buy, ass) ||
Said( buy, hump) ||
Said( buy, pussy) ||
Said( give, one, money) ||
Said( give, one, money, man) ||
Said( give, man, one, money) ||
Said( give, man, money) ||
Said( give, money, man) ||
Said( give, money)))
{
if (pimpWatchingTV)
{
Print( 54);
}
else
{
if (!nearPimp)
{
Set( notCloseEnough);
}
else
{
if (dollars < 100)
{
Print( 8);
}
else
{
Set( gaveWarning); [ To prevent message later.
Reset( pimpBlockingStairs);
dollars -= 100;
Print( 5);
SetView( aPimp, vPimp);
MoveObj( aPimp, PIMP_WAITING_X, PIMP_Y, 1, pimpClear);
if (scoredHooker)
{
Print( 9);
}
}
}
}
}
if ((Said( knock, anyword, door) ||
Said( knock, door, anyword) ||
Said( knock, door) ||
Said( knock)))
{
if (!nearDoor)
{
Set( notCloseEnough);
}
else
{
Print( 6);
}
}
if (Said( open, door))
{
if (!nearDoor)
{
Set( notCloseEnough);
}
else
{
Set( OK);
StopMotion( ego);
Set( programControl);
StartUpdate( aDoor);
EndOfLoop( aDoor, doorOpenDone);
}
}
if ((Said( turn, on, tv) ||
Said( turn, tv, on) ||
Said( tv, on)))
{
if (!nearTV)
{
Set( notCloseEnough);
}
else
{
if (TVOn)
{
Print( 23);
}
else
{
Print( 22);
}
}
}
if ((Said( turn, off, tv) ||
Said( turn, tv, off) ||
Said( tv, off)))
{
if (!nearTV)
{
Set( notCloseEnough);
}
else
{
if (!TVOn)
{
Print( 23);
}
else
{
Print( 22);
}
}
}
if ((Said( use, remote) ||
Said( use, remote, off) ||
Said( use, remote, on) ||
Said( use, remote, turn, tv, on) ||
Said( use, remote, turn, tv, off) ||
Said( use, remote, rol) ||
Said( press, button, remote, rol) ||
Said( press, button, on, remote, rol) ||
Said( press, remote, rol) ||
Said( press, remote, on) ||
Said( press, remote, off) ||
Said( press, remote, tv, on) ||
Said( press, remote, tv, off) ||
Said( press, remote, turn, tv, on) ||
Said( press, remote, turn, tv, off) ||
Said( press, remote, turn, on, tv) ||
Said( press, remote, turn, off, tv) ||
Said( turn, on, tv, use, remote) ||
Said( turn, off, tv, use, remote) ||
Said( turn, tv, on, use, remote) ||
Said( turn, tv, off, use, remote)))
{
if (!Has( iRemoteControl))
{
Set( dontHaveIt);
}
else
{
if (egoY > 144)
{
Print( 28);
}
else
{
if (TVOn)
{
Print( 57);
}
else
{
currentScore += 3;
Draw( aTV);
Print( 24);
Set( TVOn);
TVCycles = 5;
TVChannel = 14;
Random( 33, 77, TVMessageCycles);
}
}
}
}
if ((Said( tie, man, with, rope) ||
Said( tie, up, man)))
{
if (!Has( iRope))
{
Set( dontHaveIt);
}
else
{
Print( 60);
}
}
if ((Said( talk, man) ||
Said( deal, rol) ||
Said( say, hello)))
{
if (pimpWatchingTV)
{
Print( 13);
}
else
{
Print( 2);
Print( 3);
Print( 4);
}
}
if ((Said( beat, up, man, rol) ||
Said( hit, man, rol) ||
Said( use, hammer, rol) ||
Said( tie, pimp) ||
Said( tie, up, pimp) ||
Said( tie, up, pimp, use, rope) ||
Said( use, rope, tie, up, pimp) ||
Said( use, rope, tie, pimp) ||
Said( tie, up, pimp, rope) ||
Said( tie, pimp, rope) ||
Said( kill, man, rol)))
{
Print( 52);
}
if ((Said( move) ||
Said( move, out, way) ||
Said( move, away) ||
Said( get, away) ||
Said( move, man)))
{
Print( 2);
Print( 3);
Print( 4);
}
if ((Said( give, man, remote, rol) ||
Said( give, remote, man, rol)))
{
Print( 58);
}
if ((Said( turn, channel) ||
Said( use, remote, turn, channel) ||
Said( turn, tv, channel) ||
Said( turn, channel, tv) ||
Said( turn, tv, channel, use, remote) ||
Said( turn, channel, tv, use, remote) ||
Said( turn, channel, use, remote) ||
Said( turn, tv, channel, remote) ||
Said( turn, channel, remote) ||
Said( use, remote, turn, tv, channel) ||
Said( change, channel) ||
Said( use, remote, change, channel) ||
Said( change, tv, channel) ||
Said( change, channel, tv) ||
Said( change, tv, channel, use, remote) ||
Said( change, channel, tv, use, remote) ||
Said( change, channel, use, remote) ||
Said( change, tv, channel, remote) ||
Said( change, channel, remote) ||
Said( use, remote, change, tv, channel)))
{
if (!Has( iRemoteControl))
{
Print( 22);
}
else
{
if (!TVOn)
{
Print( 29);
}
else
{
if (egoY > 144)
{
Print( 28);
}
else
{
if (TVChannel == 21)
{
Print( 26);
}
else
{
if (TVMessageCycles)
{
Print( 42);
}
else
{
Print( 25);
++TVChannel;
Random( 23, 39, TVMessageCycles);
}
}
}
}
}
}
if (Said( look, walls))
{
Print( 49);
}
if (Said( look, light))
{
Print( 50);
}
if (Said( look, crack))
{
Print( 51);
}
[*****
:noInput
[*****
if ((!blockingTV || !pimpWatchingTV))
{
moveTimer = 0;
}
else
{
if (!moveTimer)
{
moveTimer = 2;
}
--moveTimer;
if (moveTimer == 1)
{
Print( 53);
moveTimer = 22;
}
}
--TVMessageCycles;
if (TVMessageCycles == 20)
{
PrintV( TVChannel);
}
if (TVMessageCycles == 10)
{
if (TVChannel != 21)
{
work = TVChannel;
work += 20;
PrintV( work);
}
else
{
Reset( pimpBlockingStairs);
Set( pimpWatchingTV);
SetView( aPimp, vPimp);
MoveObj( aPimp, PIMP_TV_X, PIMP_Y, 1, sitPimpDown);
}
}
if (TVMessageCycles == 1)
{
if (TVChannel != 21)
{
Print( 10);
}
}
if (pimpClear)
{
Reset( pimpClear);
SetView( aPimp, vPimpBlockingStairs);
Print( 43);
}
if (sitPimpDown)
{
Reset( sitPimpDown);
SetLoop( aPimp, L_PIMP_SITTING);
RepositionTo( aPimp, PIMP_TV_X, PIMP_SITTING_Y);
ForceUpdate( aPimp);
if (!gotPimpToWatchTV)
{
Set( gotPimpToWatchTV);
currentScore += 8;
}
Print( 12);
}
if (waitingToBlockStairs)
{
if (egoX < 90 && egoY > 110)
{
Reset( waitingToBlockStairs);
Print( 30);
SetView( aPimp, vPimp);
SetLoop( aPimp, FACING_RIGHT);
MoveObj( aPimp, PIMP_BLOCK_X, PIMP_Y, 1, pimpAtStairs);
}
}
if (pimpAtStairs)
{
Reset( pimpAtStairs);
Set( pimpBlockingStairs);
SetView( aPimp, vPimpBlockingStairs);
}
if (!gaveWarning &&
pimpBlockingStairs &&
nearStairs)
{
Set( gaveWarning);
Print( 11);
}
--TVCycles;
if (TVOn && TVCycles == 1)
{
Random( 4, 16, TVCycles);
Random( 1, 4, work);
CycleTime( aTV, work);
}
if (doorCloseDone)
{
Reset( doorCloseDone);
StopUpdate( aDoor);
StartMotion( ego);
Reset( programControl);
}
[*****
:exit [ test for leaving the room
[*****
if (doorOpenDone)
{
Reset( programControl);
newRoom = rmInsideBar;
}
if ((egoY < 42 ||
edgeEgoHit == TOP)) {newRoom = rmHooker;}

195
RM16.MSG Normal file
View File

@ -0,0 +1,195 @@
[messages for room 16 -- rmBackroom
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"The bar's storage room is almost empty.
Its most significant feature is a big, mean-looking dude."
%message 2
"\"Ya wanna go upstairs?\" he says in a scholarly voice, \"ya
gotta pays da price!\""
%message 3
"\"$100.00, cash up front, no refunds.\""
%message 4
"He certainly has a pleasing manner about him."
%message 5
"\"Thanks,\" he growls. \"Remember, no refunds!\""
%message 6
"Evidently no one in the bar wants to play \"Knock, knock\" with you."
%message 7
"It's the door from the bar. Its far side looks better than this side."
%message 8
"You don't have enough money."
%message 9
"\"You like that stuff, eh, boy?\""
%message 10
"The pimp seems vaguely interested,
but not enough to leave his post by the stairs."
%message 11
"The pimp growls,
\"You got no business goin' up these stairs, little man!\""
%message 12
"It appears you've finally reached the pimp's cultural level."
%message 13
"He ignores you.
It looks like he's \"engrossed\" in something right now."
%message 14
"
\"Oh, John.\" \"Oh, Marsha.\"\n
\"OH, John.\" \"OH, Marsha.\"\n
\"Oh, JOHN!\" \"Oh, MARSHA!\"\n
\"OH, JOHN!!\" \"OH, MARSHA!!\""
%message 15
"\"...I'm Al Fartles, and this is my partner, Fed Ames.
We just want to tell you how much we appreciate your support...\""
%message 16
"\"...and now, ALoHa Productions is proud to present
'The Revenge of the Software Developers' in full color and stereo sound...\""
%message 17
"\"...while Jim is fighting for his life with the raging female rhinoceros
in heat, I'll slip into my tent with the native girl and
this pitcher of Mai Tais...\""
%message 18
"\"...it's a beautiful day in the neighbor...\""
%message 19
"\"...live from Malaga, California,
it's the Cable Sports Network presentation of the
Miniature Female Mud Wrestlers 500-kilometer Cross-Country
Nude Bicycle Race...\""
%message 20
"\"...And next, Master Piece Theatre presents a special 3-D broadcast of
'Naugahyde Goddesses of Oakhurst!'\""
%message 21
"\"...oh, baby, yeah. Yeah, I love it when you do that! Ooooooooooh!!
That hurts so good, pull it out a little deeper!!!\""
%message 22
"The knob is broken off. There's no way to turn it."
%message 23
"It already is!"
%message 24
"You click the power switch on the remote control."
%message 25
"You click the channel selector on the remote control."
%message 26
"Nah. He's having a good time!"
%message 27
"They're boxes, all right."
%message 28
"The remote control seems ineffectual from this angle."
%message 29
"The TV is off."
%message 30
"\"Pretty good stuff, eh, boy?\" laughs the pimp."
%message 34
"%m56soap opera."
%message 35
"%m56commercial."
%message 36
"%m56musical comedy."
%message 37
"%m56documentary."
%message 38
"No, no!! Anything but that!"
%message 39
"%m56cable sports show."
%message 40
"%m56educational show."
%message 41
"Well, now. What's this??"
%message 42
"Slow down. You're gonna blow the punch line!"
%message 43
"\"Have a nice lay.\""
%message 44
"He's no rocket scientist!"
%message 45
"Its screen is blank; much like the pimp's mind."
%message 46
"%m56program."
%message 47
"Get your mind back on the game, Larry!"
%message 48
"What does this look like, the ship's hold in \"King's Quest III?\""
%message 49
"The walls do a good job of separating the floor from the ceiling."
%message 50
"It's just hanging around."
%message 51
"Wait 'til you get upstairs."
%message 52
"He's far too big, and you're far too wimpy."
%message 53
"\"Hey! Outta da way!!\""
%message 54
"There is no need to pay; he's pleasantly distracted. Help yourself!"
%message 55
"You wonder what palace of earthly delights resides above you."
%message 56
"Another boring "
%message 57
"Evidently the remote control's off button is broken."
%message 58
"Its operation is beyond his mental capacities."
%message 59
"He's unaffected by the remote control."
%message 60
"He's too strong for you, Larry."

1079
RM17.CG Normal file

File diff suppressed because it is too large Load Diff

157
RM17.MSG Normal file
View File

@ -0,0 +1,157 @@
[messages for room 17 -- rmHooker
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"This is the hooker's seedy bedroom.
The bed's a mess, ditto the hooker!"
%message 2
"Yep! This would be a perfect time! The Surgeon General would be proud."
%message 3
"You already are wearing it."
%message 4
"It looks like the hooker has a box of candy on her table."
%message 5
"Although successful, you feel less than satisfied.
Technically speaking, you're no longer a virgin,
but for some reason, the thrill just wasn't there.
You vow to continue your quest until you please your heart,
not just your other organs!"
%message 6
"Sniffing the air, you're suddenly hungry for tuna."
%message 7
"\"Come on over here, Larry!\""
%message 8
"She says, \"Me first!\" as she%m25"
%message 9
"Not again! A guy can only take so much!!"
%message 10
"She seems more interested in that cigarette than she was in you."
%message 11
"It's a good thing you were wearing that rubber!"
%message 12
"It's already open."
%message 13
"Nah. This room needs the fresh air!"
%message 14
"You repeatedly bang your head against the closed glass."
%message 15
""
%message 16
"It's a really ugly table."
%message 17
"\"Jeez, Mister! What've you been eating? Buffalo chips???\""
%message 18
"She certainly seems to enjoy that gum."
%message 19
"A sign near the bed says: \"Substantial penalty for early withdrawals.\""
%message 20
"\"So,\" she snarls, \"you just gonna stand there, or what?\""
%message 21
"\"Was it good for you, baby?\" you ask her."
%message 22
"\"Was what good?\" she replies."
%message 23
"Although you might look precious in that little white lace number,
you're just not that kind of guy!"
%message 24
"She%m25"
%message 25
" goes to work on you.
Then she smiles as she bites it off!
\"Sorry, Larry. No oral sex in this game. Suffer!\""
%message 26
"Now's a great time to think of that!"
%message 27
"\"Is that a toothpick in your pocket,
or are you just happy to get past my pimp?\""
%message 28
"You'd have a better view if you'd move to the front of the bed!"
%message 29
"There is a fire escape outside the window."
%message 30
"The clothesline is barely strong enough to hold its present load.
Poor girl, you'd think at these prices she could afford a laundromat."
%message 31
"\"Hey, what kind of girl do you think I am?\""
%message 32
"It's getting old and rusty -- not unlike you, Larry."
%message 33
"It just hangs there."
%message 34
"There's nothing (and no one) there."
%message 35
"It, too, is broken."
%message 36
""
%message 37
"It's barely strong enough to hold up its present load.
Besides, if you take it, her underwear would fall down."
%message 38
"There is a table near the window."
%message 39
"There's nothing there."
%message 40
"You have no use for a stained pillow."
%message 41
"You are as naked as you're going to get!"
%message 42
"With all your clothes on?"
%message 43
"You slyly tap out a message in Morse code; unfortunately, only some rats
hear it."
%message 44
"You can't. She's nailed it to the floor."
%message 45
"Your rope is not long enough to reach outside."
%message 46
"NOW!?
You've come this far, Larry; now's the time to do more than just look!"

146
RM19.CG Normal file
View File

@ -0,0 +1,146 @@
[logics for room 19 -- rmSunrise
[ "Leisure-Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm19.msg"
%include "gamedefs.h"
#define shakeCycles lv0
#object aSun 1
#object aBang 2
if (initLog)
{
Print( 1);
Print( 2);
Print( 3);
Print( 4);
SetHorizon( 4);
PreventInput();
picture = picBlack;
LoadPic( picture);
LoadPic( currentRoom);
LoadView( vSunrise);
LoadView( vEgoSunrise);
LoadView( vSunriseBang);
LoadSound( mSunrise);
LoadSound( mFuneral);
LoadSound( sBang);
[ DON'T Draw( ego);
DrawPic( currentRoom);
AddToPic( vEgoSunrise, 0, 0, 56, 129, 5, 4); [ Larry's face
AnimateObj( aSun);
SetPriority( aSun, 4);
SetView( aSun, vSunrise);
SetLoop( aSun, 0);
SetCel( aSun, 0);
Position( aSun, 23, 91);
Draw( aSun);
MoveObj( aSun, 81, 33, 1, scriptDone);
ShowPic( );
Sound( mSunrise, done);
Return( );
} [ end initLOG
[*****
:handleInput
[*****
PreventInput();
[*****
:noInput
[*****
if (scriptDone)
{
Reset( scriptDone);
++script;
if (script == 1)
{
UnanimateAll();
AddToPic( vEgoSunrise, 0, 1, 32, 161, 14, 4);
[view, loop, cel, x, y, obj priority, box priority
scriptTimer = 4;
}
if (script == 2)
{
AddToPic( vEgoSunrise, 1, 0, 69, 119, 5, 4);
Sound( mFuneral, done);
scriptTimer = 4;
}
if (script == 3)
{
AddToPic( vEgoSunrise, 1, 1, 69, 119, 6, 4);
scriptTimer = 4;
}
if (script == 4)
{
DrawPic( picture);
AnimateObj( aBang);
SetView( aBang, vSunriseBang);
SetLoop( aBang, 0);
Position( aBang, 50, 105);
StartCycling( aBang);
Draw( aBang);
ShowPic();
shakeCycles = 14;
}
if (script == 5)
{
Erase( aBang);
Set( certainDeath);
}
}
--shakeCycles;
if ((shakeCycles == 10 ||
shakeCycles == 8 ||
shakeCycles == 6 ||
shakeCycles == 4 ||
shakeCycles == 2))
{
Sound( sBang, done);
ShakeScreen( 1);
}
if (shakeCycles == 1)
{
Set( scriptDone);
}
[*****
:exit [ test for leaving the room
[*****

21
RM19.MSG Normal file
View File

@ -0,0 +1,21 @@
[messages for room 19 -- rmSunrise
[ "Leisure-Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"Oh, no!\n\n
Stepping outside, you see the sun rising in the east.
Glancing at your watch, you realize the terrible truth..."
%message 2
"...your night in Sierra World is over,
and (technically speaking) you're still..."
%message 3
"a"
%message 4
"\n\n
VIRGIN!!!\n\n"

189
RM2.CG Normal file
View File

@ -0,0 +1,189 @@
[logics for room 2 -- lgcQuestions1
[ "Leisure-Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm2.msg"
%include "gamedefs.h"
%define FIRST_QUESTION 1
%define LAST_QUESTION 53
%define toldLastQuestion lf1
%define allsWell lv0
%define question1 lv1
%define question2 lv2
%define question3 lv3
%define question4 lv4
%define question5 lv5
if (initLog)
{
if (forceAtest)
{
Print( 60);
currentQuestion = FIRST_QUESTION;
}
} [ end initLOG
if (!forceAtest)
{
:askAgain;
Random( FIRST_QUESTION, LAST_QUESTION, currentQuestion);
if ((currentQuestion == question1 ||
currentQuestion == question2 ||
currentQuestion == question3 ||
currentQuestion == question4 ||
currentQuestion == question5))
{
goto askAgain;
}
else
{
if (question == 1) {question1 = currentQuestion};
if (question == 2) {question2 = currentQuestion};
if (question == 3) {question3 = currentQuestion};
if (question == 4) {question4 = currentQuestion};
if (question == 5) {question5 = currentQuestion};
if (question == 6) {questionStatus = allDone;}
if (question == 5 &&
!toldLastQuestion)
{
Set( toldLastQuestion);
Print( 69);
}
++question;
}
}
if (currentQuestion == 1) {correctAnswer = 3;}
if (currentQuestion == 2) {correctAnswer = 4;}
if (currentQuestion == 3) {correctAnswer = 1;}
if (currentQuestion == 4) {correctAnswer = 3;}
if (currentQuestion == 5) {correctAnswer = 0;}
if (currentQuestion == 6) {correctAnswer = 2;}
if (currentQuestion == 7) {correctAnswer = 4;}
if (currentQuestion == 8) {correctAnswer = 4;}
if (currentQuestion == 9) {correctAnswer = 1;}
if (currentQuestion == 10) {correctAnswer = 2;}
if (currentQuestion == 11) {correctAnswer = 2;}
if (currentQuestion == 12) {correctAnswer = 3;}
if (currentQuestion == 13) {correctAnswer = 3;}
if (currentQuestion == 14) {correctAnswer = 1;}
if (currentQuestion == 15) {correctAnswer = 3;}
if (currentQuestion == 16) {correctAnswer = 2;}
if (currentQuestion == 17) {correctAnswer = 3;}
if (currentQuestion == 18) {correctAnswer = 3;}
if (currentQuestion == 19) {correctAnswer = 2;}
if (currentQuestion == 20) {correctAnswer = 4;}
if (currentQuestion == 21) {correctAnswer = 3;}
if (currentQuestion == 22) {correctAnswer = 4;}
if (currentQuestion == 23) {correctAnswer = 3;}
if (currentQuestion == 24) {correctAnswer = 0;}
if (currentQuestion == 25) {correctAnswer = 4;}
if (currentQuestion == 26) {correctAnswer = 2;}
if (currentQuestion == 27) {correctAnswer = 4;}
if (currentQuestion == 28) {correctAnswer = 4;}
if (currentQuestion == 29) {correctAnswer = 0;}
if (currentQuestion == 30) {correctAnswer = 3;}
if (currentQuestion == 31) {correctAnswer = 4;}
if (currentQuestion == 32) {correctAnswer = 3;}
if (currentQuestion == 33) {correctAnswer = 2;}
if (currentQuestion == 34) {correctAnswer = 1;}
if (currentQuestion == 35) {correctAnswer = 2;}
if (currentQuestion == 36) {correctAnswer = 3;}
if (currentQuestion == 37) {correctAnswer = 3;}
if (currentQuestion == 38) {correctAnswer = 1;}
if (currentQuestion == 39) {correctAnswer = 3;}
if (currentQuestion == 40) {correctAnswer = 3;}
if (currentQuestion == 41) {correctAnswer = 3;}
if (currentQuestion == 42) {correctAnswer = 2;}
if (currentQuestion == 43) {correctAnswer = 1;}
if (currentQuestion == 44) {correctAnswer = 1;}
if (currentQuestion == 45) {correctAnswer = 2;}
if (currentQuestion == 46) {correctAnswer = 1;}
if (currentQuestion == 47) {correctAnswer = 2;}
if (currentQuestion == 48) {correctAnswer = 4;}
if (currentQuestion == 49) {correctAnswer = 1;}
if (currentQuestion == 50) {correctAnswer = 4;}
if (currentQuestion == 51) {correctAnswer = 3;}
if (currentQuestion == 52) {correctAnswer = 4;}
if (currentQuestion == 53) {correctAnswer = 2;}
if (questionStatus != allDone)
{
if (forceAtest)
{
ClearLines( 23, 23, 0);
Display( 23, 0, 66);
PrintV( currentQuestion);
++currentQuestion;
if (!currentQuestion > LAST_QUESTION)
{
questionStatus = waitAwhile;
scriptTimer = 2;
}
else
{
questionStatus = allDone;
}
}
else
{
AcceptInput();
CancelLine();
PreventInput();
ClearLines( 22, 24, BG_COLOR);
Set( leaveWindow);
PrintV( currentQuestion);
lastChar = 0;
Display( 23, 0, 67);
SetScanStart();
if (!lastChar)
{
Return();
}
if (lastChar > 64 && [ ABCD
lastChar < 69)
{
lastChar += 32; [ Convert to abcd (lower case).
}
if ((lastChar < 97 || [ not abcd.
lastChar > 100))
{
Sound( sError, done);
Return();
}
ResetScanStart(); [ We've got a valid letter.
answer = lastChar; [ abcd.
lastChar = 0;
answer -= 96; [ Now answer between a and d.
message = 60; [ 1 less than first message #
message += answer;
y = 23;
x = 29;
DisplayV( y, x, message);
questionStatus = waitAwhile;
scriptTimer = 3;
}
}
[*****
:exit [ test for leaving the room
[*****

437
RM2.MSG Normal file
View File

@ -0,0 +1,437 @@
[messages for room 2 -- lgcQuestions1
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"Johnny Carson is\n\n
a. a singer.\n
b. David Letterman's\n
sidekick.\n
c. Ed McMahon's sidekick.\n
d. an actor."
%message 2
"VCR stands for\n\n
a. Very Confusing Record.\n
b. Visual Cartridge\n
Recording.\n
c. Very Complete Record.\n
d. Video Cassette Recorder."
%message 3
"The East Coast is\n\n
a. home of the Mets.\n
b. a country.\n
c. where people talk funny.\n
d. adjacent to Texas."
%message 4
"Is this software pirated?\n\n
a. Yes.\n
b. I'm not talking.\n
c. No. (How could you\n
even ask!)\n
d. No, just borrowed."
%message 5
"Pia Zadora is\n\n
a. sexy.\n
b. a singer.\n
c. short.\n
d. all of the above."
%message 6
"The world is\n\n
a. flat.\n
b. spherical.\n
c. a big place.\n
d. near Fresno."
%message 7
"\"Let It Be\" was recorded by\n\n
a. the Rolling Stones.\n
b. the Monkees.\n
c. Creedence Clearwater.\n
d. the Beatles."
%message 8
"All politicians are\n\n
a. hardworking.\n
b. honest.\n
c. ethical.\n
d. on the public payroll."
%message 9
"Lingerie is\n\n
a. sexy.\n
b. a kind of car.\n
c. a French food.\n
d. edible."
%message 10
"Paul, John, Ringo and\n\n
a. Fred.\n
b. George.\n
c. Harry.\n
d. me."
%message 11
"Do girls really have cooties?\n\n
a. Yes.\n
b. No.\n
c. Some do, some don't.\n
d. Maybe."
%message 12
"Which song was not recorded by Elvis?\n\n
a. \"Hound Dog\"\n
b. \"Love Me Tender\"\n
c. \"What'd I Say\"\n
d. \"Heartbreak Hotel\""
%message 13
"Edsel is a\n\n
a. girl's name.\n
b. plane.\n
c. car.\n
d. great investment."
%message 14
"Sex is\n\n
a. great.\n
b. ok.\n
c. a spectator sport.\n
d. a mystery to me."
%message 15
"Richard Nixon was the _____ President of the United States.\n\n
a. last\n
b. funniest\n
c. thirty-seventh\n
d. first Negro"
%message 16
"During the 70's, Carroll O'Connor portrayed a\n\n
a. kindly doctor.\n
b. lovable bigot.\n
c. handicapped lawyer.\n
d. Negro junk dealer."
%message 17
"The song \"American Pie\" was about\n\n
a. miscegenation.\n
b. Marilyn Chambers.\n
c. a dead rock star.\n
d. four minutes too long."
%message 18
"Thomas Eagleton was dropped from the 1972 Democratic National Ticket
when knowledge of his previous _____ treatments became known.\n\n
a. skin\n
b. screen\n
c. shock\n
d. scalp"
%message 19
"The 70's practice of running around naked was called\n\n
a. flashing.\n
b. streaking.\n
c. swinging.\n
d. on account of rain."
%message 20
"Peter Benchley's novel \"Jaws\" was about\n\n
a. Linda Lovelace.\n
b. dieting.\n
c. Joan Rivers.\n
d. sharks."
%message 21
"Who was not Vice-President of the United States in 1973-74?\n\n
a. Gerald Ford\n
b. Nelson Rockefeller\n
c. Thomas Hayden\n
d. Spiro Agnew"
%message 22
"The \"Chicago Seven\" was\n\n
a. some people who only\n
seem crazy in\n
retrospect.\n
b. the Bears' defensive\n
line.\n
c. burned for showing\n
\"Country\" in three\n
different theatres.\n
d. partially convicted."
%message 23
"President Ford prescribed _____ for dealing with economic problems.\n\n
a. tranquilizers\n
b. employment\n
c. that everyone wear a\n
WIN button\n
d. that everyone should\n
have a nice day"
%message 24
"The tackiest seventies fashion was\n\n
a. platform shoes.\n
b. midi-skirts.\n
c. short hair.\n
d. bisexuality."
%message 25
"O. J. Simpson is\n\n
a. an R & B singer.\n
b. under indictment.\n
c. embarrassed by his first\n
name (Olivia).\n
d. no one to fool with."
%message 26
"Angela Davis is\n\n
a. the middle Pointer\n
Sister.\n
b. a failed politician.\n
c. an example of split ends\n
gone wild.\n
d. Bette's daughter."
%message 27
"Detente is\n\n
a. prohibited by law in\n
41 states.\n
b. a feminine hygiene\n
spray.\n
c. the masculine form of\n
\"deteuse.\"\n
d. a policy to replace war."
%message 28
"Kwi-Chang-Caine became famous by saying\n\n
a. \"I am not a crook.\"\n
b. \"The barren fig tree\n
bears no plums.\"\n
c. \"Hi, sailor.\
New in town?\"\n
d. \"Aaaaaiiiyeeeaagggh!\""
%message 29
"Ted Kennedy is best remem- bered for his\n\n
a. driving.\n
b. underwater free-style.\n
c. brothers.\n
d. All of the above."
%message 30
"\"NORML\" is\n\n
a. not gay.\n
b. what Falwell wants you\n
to be.\n
c. trying to legalize\n
marijuana.\n
d. misspelled."
%message 31
"Tom Hayden is\n\n
a. one of the Chicago\n
Seven.\n
b. a U. S. Congressman.\n
c. Mr. Jane Fonda.\n
d. All of the above."
%message 32
"Spiro Agnew is\n\n
a. a form of social\n
disease.\n
b. a jazz-fusion rock band.\n
c. a former Vice President.\n
d. the first woman in\n
Congress."
%message 33
"The germ that transmits syphilis is\n\n
a. Spiro Agnew.\n
b. Spirochete.\n
c. Spirograph.\n
d. Barbarella."
%message 34
"Kookie's address was\n\n
a. 77 Sunset Strip.\n
b. on Wistful Vista Street.\n
c. 334 Elm Street.\n
d. 1313 Mockingbird Lane."
%message 35
"\"Who knows what evil lurks in the hearts of men?\"\n\n
a. The Psychiatrist\n
b. The Shadow\n
c. The Creeper\n
d. Ingmar Bergman"
%message 36
"Al Lowe is:\n\n
a. under 25.\n
b. pregnant.\n
c. never \"carded.\"\n
d. a Woody Allen\n
impersonator."
%message 37
"Frank Sinatra is a\n\n
a. female impersonator.\n
b. shy pacifist.\n
c. saloon singer.\n
d. distance runner."
%message 38
"Ralph Boysen invented\n\n
a. the boysenberry.\n
b. fins on 50's cars.\n
c. bell bottomed jeans.\n
d. the juke box."
%message 39
"The first man on the moon was\n\n
a. John Glenn.\n
b. Neil Diamond.\n
c. Neil Armstrong.\n
d. Jack Armstrong."
%message 40
"\"Gone With The Wind\" is about\n\n
a. outer space.\n
b. a bank robbery.\n
c. four hours long.\n
d. dust."
%message 41
"Who is not a sportscaster?\n\n
a. Jayne Kennedy\n
b. Howard Cosell\n
c. Jayne Mansfield\n
d. Frank Gifford"
%message 42
"Which is not a wine?\n\n
a. Colombard\n
b. Bon Aire\n
c. Cabernet\n
d. Muscatel"
%message 43
"Which is not a mountain range?\n\n
a. Cayman\n
b. Appalachian\n
c. Rockies\n
d. Himalayas"
%message 44
"In the movie, \"Paint Your Wagon,\" Clint Eastwood sang\n\n
a. \"I Talk to the Trees\"\n
b. \"Go Ahead, Make My\n
Wagon\"\n
c. \"If I Had A Mayor\"\n
d. None of the above."
%message 45
"The drink \"Screwdriver\" contains\n\n
a. tomato juice.\n
b. orange juice.\n
c. grapefruit juice.\n
d. borax."
%message 46
"Ronald Reagan's co-star in \"Bedtime for Bonzo\" was\n\n
a. a monkey.\n
b. Peter O'Toole.\n
c. Bonzo the Clown.\n
d. Marilyn Monroe."
%message 47
"The slogan \"It takes two hands to handle a whopper\" refers to\n\n
a. John Holmes.\n
b. a hamburger.\n
c. overstuffed grocery\n
bags.\n
d. fishing."
%message 48
"If you arrived at a party wearing your birthday suit, you would\n\n
a. make many new friends.\n
b. be thrown out.\n
c. fit right in.\n
d. It depends on the party."
%message 49
"Cesar Chavez led a boycott of\n\n
a. grapes.\n
b. X-rated movies.\n
c. dirty magazines.\n
d. goods from South Africa."
%message 50
"James Brown is often referred to as\n\n
a. the Chairman of the\n
Board.\n
b. a great athlete.\n
c. the Velvet Fog.\n
d. the Godfather of Soul."
%message 51
"Who lost a daughter but gained a \"meathead?\"\n\n
a. George Jefferson\n
b. Ronald Reagan\n
c. Archie Bunker\n
d. Ted Knight"
%message 52
"Which U. S. Secretary of State was born in Germany?\n\n
a. Dean Rusk\n
b. William Rogers\n
c. George Schultz\n
d. Henry Kissinger"
%message 53
"Who was the inventive genius behind the Apple computer?\n\n
a. Bill Gates\n
b. Steve Wozniak\n
c. Ken Williams\n
d. Steve Russell"
%message 60
"Dynamic logic = 2."
%message 61
"a"
%message 62
"b"
%message 63
"c"
%message 64
"d"
%message 65
"So far, so good.\n\n
Now for the final question."
%message 66
"Question #%v96. Correct answer is %v93."
%message 67
"Please answer a, b, c, or d: "
%message 69
"So far, so good.\n\n
Now for the final question."

62
RM20.CG Normal file
View File

@ -0,0 +1,62 @@
[logics for room 20 -- rmBoss
[ "Leisure-Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm20.msg"
%include "gamedefs.h"
if (initLog)
{
PreventInput();
Reset( enableMenu);
Set( handsOff);
Reset( soundOn);
Random( 1, 3, work);
if (work == 1) {picture = rmBoss;}
if (work == 2) {picture = picBoss2;}
if (work == 3) {picture = picBoss3;}
LoadPic( picture);
DrawPic( picture);
DiscardPic( picture);
Reset( clockOn);
StatusLineOff();
ShowPic( );
Return( );
} [ end initLOG
[*****
:handleInput
[*****
if (haveInput)
{
Print( 1);
RestoreGame();
}
[*****
:noInput
[*****
Reset( clockOn);
StatusLineOff();
if (HaveKey())
{
Print( 1);
RestoreGame();
}
[*****
:exit [ test for leaving the room
[*****

9
RM20.MSG Normal file
View File

@ -0,0 +1,9 @@
[messages for room 20 -- rmBoss
[ "Leisure-Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"Sorry, but you'll have to restore your game;
when you panic, I forget everything!"

775
RM21.CG Normal file
View File

@ -0,0 +1,775 @@
[logics for room 21 -- rmInside7_11
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm21.msg"
%include "gamedefs.h"
%define LEFT_WITHOUT_PAYING 0
%define ASKED_FOR_RUBBER 100
%define L_TALKING 0
%define L_SHOOTING 1
%define boughtRubber lf0
%define nearCounter lf2
%define nearMags lf3
%define waitingForResponse lf4
%define nearWine lf5
%define moneyOwed lv0 [ Don't change. See message 40.
%define pervertTimer lv1
%define talkTimer lv2
%object aClerk 1
%object aCustomer0 2
%object aCustomer1 3
%object aCustomer2 4
%object aCustomer3 5
%object aCustomer4 6
%object aCustomer5 7
if (initLog)
{
LoadPic( currentRoom);
DrawPic( currentRoom);
DiscardPic( currentRoom);
LoadView( v7_11Customers);
LoadView( v7_11Iranian);
LoadView( vEgoDead);
LoadView( vEgoCollapsing);
LoadView( vMagazines); [ watch
LoadView( v7_11Interior); [ out
AddToPic( v7_11Interior, 0, 0, 107, 148, 13, 4); [ for
AddToPic( v7_11Interior, 0, 1, 102, 134, 12, 4); [ discard
AddToPic( v7_11Interior, 0, 2, 97, 118, 11, 4); [ views
AddToPic( v7_11Interior, 0, 3, 62, 95, 11, 4); [ below
AddToPic( v7_11Interior, 0, 4, 61, 103, 12, 4); [
AddToPic( v7_11Interior, 1, 0, 16, 108, 4, 4); [
[
AddToPic( vMagazines, 0, 0, 63, 116, 13, 4); [
AddToPic( vMagazines, 0, 1, 71, 116, 13, 4); [
AddToPic( vMagazines, 0, 2, 63, 126, 13, 4); [
AddToPic( vMagazines, 0, 3, 69, 126, 13, 4); [
AddToPic( vMagazines, 0, 4, 79, 126, 13, 4); [
AddToPic( vMagazines, 0, 5, 79, 136, 13, 4); [
AddToPic( vMagazines, 0, 5, 71, 136, 13, 4); [
AddToPic( vMagazines, 0, 5, 64, 136, 13, 4); [
DiscardView( v7_11Interior); [
DiscardView( vMagazines); [
AnimateObj( aClerk);
SetView( aClerk, v7_11Iranian);
SetLoop( aClerk, L_TALKING);
SetCel( aClerk, 0);
Position( aClerk, 25, 113);
Draw( aClerk);
StopUpdate( aClerk);
AnimateObj( aCustomer0);
IgnoreBlocks( aCustomer0);
SetView( aCustomer0, v7_11Customers);
SetCel( aCustomer0, 0);
Position( aCustomer0, 52, 117);
StopCycling( aCustomer0);
AnimateObj( aCustomer1);
IgnoreBlocks( aCustomer1);
SetView( aCustomer1, v7_11Customers);
SetCel( aCustomer1, 1);
Position( aCustomer1, 73, 96);
StopCycling( aCustomer1);
AnimateObj( aCustomer2);
IgnoreBlocks( aCustomer2);
SetView( aCustomer2, v7_11Customers);
SetCel( aCustomer2, 2);
Position( aCustomer2, 136, 130);
StopCycling( aCustomer2);
AnimateObj( aCustomer3);
IgnoreBlocks( aCustomer3);
SetView( aCustomer3, v7_11Customers);
SetCel( aCustomer3, 3);
Position( aCustomer3, 108, 95);
StopCycling( aCustomer3);
AnimateObj( aCustomer4);
IgnoreBlocks( aCustomer4);
SetView( aCustomer4, v7_11Customers);
SetCel( aCustomer4, 4);
Position( aCustomer4, 88, 124);
StopCycling( aCustomer4);
AnimateObj( aCustomer5);
IgnoreObjs( aCustomer5);
SetView( aCustomer5, v7_11Customers);
SetCel( aCustomer5, 5);
Position( aCustomer5, 87, 109);
StopCycling( aCustomer5);
Position( ego, 15, 156);
Draw( ego);
ShowPic( );
Return( );
} [ end initLOG
Reset( nearCounter);
if (onWater)
{
Set( nearCounter);
Set( nearPerson);
}
Reset( nearWine);
if (Posn( ego, 50, 112, 81, 116))
{
Set( nearWine);
}
Reset( nearMags);
if (Posn( ego, 55, 150, 85, 157))
{
Set( nearMags);
}
[*****
:handleInput
[*****
if (!haveInput) {goto noInput;}
if ((Said( look) ||
Said( look, room) ||
Said( look, store)))
{
Print( 1);
}
if ((Said( look, counter) ||
Said( look, behind, counter)))
{
Print( 56);
}
if (Said( look, sign))
{
Print( 44);
}
if (Said( look, man))
{
Print( 45);
Print( 47);
}
if (Said( look, shelf))
{
if (nearMags)
{
Print( 2);
}
else
{
if (nearWine)
{
Print( 49);
}
else
{
if (nearCounter)
{
Print( 44);
}
else
{
Print( 6);
}
}
}
}
if ((Said( take, spray) ||
Said( ask, man, spray)))
{
if (!nearCounter)
{
Print( 51);
}
else
{
if (Has( iBreathSpray))
{
Print( 52);
}
else
{
Print( 53);
Get( iBreathSpray));
moneyOwed += 3;
sprayCount = 0;
}
}
}
if ((Said( take, wine) ||
Said( take, bottle, wine)))
{
if (!nearWine)
{
Print( 48);
}
else
{
if (Has( iWine))
{
Print( 55);
}
else
{
if (ObjInRoom( iWine, currentRoom))
{
currentScore += 1;
}
Get( iWine);
moneyOwed += 1;
Print( 42);
}
}
}
if (Said( take, magazine))
{
if (!nearMags)
{
Print( 36);
}
else
{
if (!ObjInRoom( iMagazine, currentRoom))
{
Print( 38);
}
else
{
Set( OK);
Get( iMagazine);
currentScore += 1;
moneyOwed += 2;
}
}
}
if ((Said( pay, wine) ||
Said( pay, spray) ||
Said( pay, magazine)))
{
if (moneyOwed)
{
Reset( haveMatch);
}
else
{
Print( 4);
}
}
if ((Said( pay, man) ||
Said( give, man, money) ||
Said( give, money, man) ||
Said( pay) ||
Said( pay, wine) ||
Said( pay, spray) ||
Said( pay, magazine)))
{
if (!nearCounter)
{
Print( 3);
}
else
{
if (!moneyOwed)
{
Print( 39);
--dollars;
}
else
{
if (dollars < moneyOwed)
{
Print( 32);
}
else
{
Print( 40);
Print( 41);
dollars -= moneyOwed;
moneyOwed = 0;
}
}
}
}
if ((Said( buy, rubber) ||
Said( ask, man, rubber, rol) ||
Said( ask, man, about, rubber, rol) ||
Said( get, rubber, rol) ||
Said( anyword, rubber, rol) ||
Said( rubber, rol) ||
Said( buy, one, rubber)))
{
if (!nearCounter)
{
Set( notCloseEnough);
}
else
{
if (Has( iRubber))
{
Print( 8);
}
else
{
script = ASKED_FOR_RUBBER;
Set( scriptDone);
}
}
}
[ Errors; clean up, fix up.
if ((Said( open, cooler, rol) ||
Said( open, door, rol)))
{
Print( 50);
}
if ((Said( take, booze) || [ Generic liquor.
Said( take, whiskey) ||
Said( take, beer)))
{
Print( 43);
}
if ((Said( get, card) ||
Said( get, rope) ||
Said( get, pills) ||
Said( get, whiskey) ||
Said( get, apple) ||
Said( get, hammer) ||
Said( buy, card) ||
Said( buy, rope) ||
Said( buy, pills) ||
Said( buy, whiskey) ||
Said( buy, apple) ||
Said( buy, hammer)))
{
Print( 57);
}
if ((Said( take, rol) ||
Said( buy, rol))) [ Clean up for anything else.
{
Print( 7);
}
if (!Has( iMagazine) &&
Said( look, magazine))
{
if (!nearMags)
{
Print( 36);
}
else
{
Print( 54);
}
}
if (Said( look, magazine, rack))
{
if (!nearMags)
{
Set( notCloseEnough);
}
else
{
if (!Has( iMagazine))
{
Print( 54);
}
else
{
Print( 38);
}
}
}
if ((Said( talk, man, rol) ||
Said( talk, about, rol)))
{
StartUpdate( aClerk);
talkTimer = 5;
}
[*****
:noInput
[*****
if (aSecondPassed)
{
--talkTimer;
if (talkTimer == 1)
{
StopUpdate( aClerk);
SetCel( aClerk, 0);
ForceUpdate( aClerk);
Random( 58, 64, message);
PrintV( message);
Print( 9);
}
}
if (hitSpecial && moneyOwed)
{
script = LEFT_WITHOUT_PAYING;
Set( scriptDone);
}
if (nearCounter &&
script == 109)
{
Set( scriptDone);
}
if (!haveMatch &&
script > 100 &&
haveInput)
{
Set( scriptDone);
}
if (scriptDone)
{
Reset( scriptDone);
++script;
if (script == 1) [ try to leave w/o paying
{
Set( ignoreSpecial);
PreventInput();
StopMotion( ego);
Set( programControl);
StartUpdate( aClerk);
SetLoop( aClerk, L_SHOOTING);
SetCel( aClerk, 0);
RepositionTo( aClerk, 23, 113);
CycleTime( aClerk, three);
StartCycling( aClerk);
EndOfLoop( aClerk, scriptDone);
}
if (script == 2)
{
Set( keepCycling);
SetView( ego, vEgoCollapsing);
SetCel( ego, 0);
RepositionTo( ego, 15, 159);
CycleTime( ego, two);
EndOfLoop( ego, scriptDone);
}
if (script == 3)
{
Reset( keepCycling);
SetView( ego, vEgoDead);
SetCel( ego, 0);
RepositionTo( ego, 12, 166);
if (egoX > 2)
{
egoX -= 3;
}
if (egoY < 160)
{
egoY += 7;
}
RepositionToV( ego, egoX, egoY);
Print( 19);
scriptTimer = 4;
}
if (script == 4)
{
CycleTime( ego, two);
Set( keepCycling);
EndOfLoop( ego, scriptDone);
}
if (script == 5)
{
newRoom = rmWorkshop;
}
if (script == 101) [ Buying a rubber.
{
Print( 18);
Print( 10);
Print( 11);
Print( 12); [ Smooth or ribbed?
SetString( 1, 34); [ Blank 'em out.
SetString( 2, 34);
SetString( 3, 34);
SetString( 4, 34);
SetString( 5, 34);
scriptTimer = 9;
}
if (script == 102)
{
if (Said( smooth))
{
SetString( 1, 21);
Print( 13);
}
if (Said( ribbed))
{
SetString( 1, 22);
Print( 13);
}
if (!haveMatch)
{
--script;
Set( haveMatch);
if (!typing)
{
Print( 12);
}
}
scriptTimer = 9;
}
if (script == 103)
{
if (Said( colored))
{
SetString( 2, 23);
Print( 14);
}
if (Said( plain))
{
SetString( 2, 24);
Print( 14);
}
if (!haveMatch)
{
--script;
Set( haveMatch);
if (!typing)
{
Print( 13);
}
}
scriptTimer = 9;
}
if (script == 104)
{
if (Said( lubricated))
{
SetString( 3, 25);
Print( 15);
}
if (Said( rough))
{
SetString( 3, 26);
Print( 15);
}
if (!haveMatch)
{
--script;
Set( haveMatch);
if (!typing)
{
Print( 14);
}
}
scriptTimer = 9;
}
if (script == 105)
{
if (Said( striped))
{
SetString( 4, 27);
Print( 16);
}
if (Said( plaid))
{
SetString( 4, 28);
Print( 16);
}
if (!haveMatch)
{
--script;
Set( haveMatch);
if (!typing)
{
Print( 15);
}
}
scriptTimer = 9;
}
if (script == 106)
{
if (Said( peppermint))
{
SetString( 5, 29);
Print( 20);
}
if (Said( spearmint))
{
SetString( 5, 30);
Print( 20);
}
scriptTimer = 3;
if (!haveMatch)
{
Set( haveMatch);
--script;
Set( haveMatch);
if (!typing)
{
Print( 16);
}
scriptTimer = 9;
}
}
if (script == 107)
{
PreventInput():
Print( 17);
StopUpdate( ego);
Draw( aCustomer0);
Draw( aCustomer1);
Draw( aCustomer2);
Draw( aCustomer3);
Draw( aCustomer4);
Draw( aCustomer5);
scriptTimer = 5;
}
if (script == 108)
{
PrintAt( 5, 5, 10, 25);
[msg #, row, col, width
Erase( aCustomer0);
Erase( aCustomer1);
Erase( aCustomer2);
Erase( aCustomer3);
Erase( aCustomer4);
Erase( aCustomer5);
StartUpdate( ego);
scriptTimer = 5;
}
if (script == 109)
{
if (!nearCounter)
{
Print( 46);
}
else
{
script = 110;
}
}
if (script == 110)
{
if (ObjInRoom( iRubber, currentRoom))[How cute. It's his first time!
{
currentScore += 4;
}
moneyOwed += 5;
Get( iRubber);
Set( boughtRubber);
Print( 31);
AcceptInput();
if (dollars < moneyOwed)
{
Print( 32);
}
else
{
Print( 33);
dollars -= moneyOwed;
moneyOwed = 0;
}
}
}
[*****
:exit [ test for leaving the room
[*****
if (edgeEgoHit == BOTTOM)
{
AcceptInput();
if (boughtRubber)
{
Print( 35);
}
newRoom = rmOutside7_11;
}

222
RM21.MSG Normal file
View File

@ -0,0 +1,222 @@
[messages for room 21 -- rmInside7_11
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"You are in a 24-hour convenience store.
There is a magazine rack near the front door, with a sign reading
\"This no library -- no leeding.\"
Except for the clerk standing behind the counter,
the store appears to be deserted. A small sign graces the counter."
%message 2
"There are many magazines on the rack,
but your eyes immediately go to the ones with the naked girls on the cover."
%message 3
"Move to the counter when you are ready to pay for your selections."
%message 4
"Shouldn't you TAKE your purchases before paying for them?"
%message 5
"\n\"WHAT A PERVERT!!!\"\n"
%message 6
"The shelves are filled with all the necessities of life:
\"Dwinkies,\" \"Wallo-Wars,\" \"Loritos,\" various colas,
cheap wine, and coffee.
You don't see anything you really need in this part of the store."
%message 7
"Nah. You'd just be wasting your money."
%message 8
"\"You haven't used your old one yet!\""
%message 9
"Apparently the clerk is new to this country.
He only knows a few English words."
%message 10
"\"Sure, we got lubbers!\""
%message 11
"(Obviously you've hit his area of expertise!)"
%message 12
"\"What kind lubber you want? Smooth or libbed?\""
%message 13
"\"Colored or plain?\""
%message 14
"\"Lubricated or rough-cut?\""
%message 15
"\"Striped or plaid?\""
%message 16
"\"Peppermint or spearmint flavor?\""
%message 17
"\"Hey, everybody!!
This weird-o just bought a %s5-flavored, %s4, %s3, %s2, %s1 lubber!!!\""
%message 18
"After looking around to make certain you're alone,
you quietly ask the clerk if he has any available behind the counter."
%message 19
"The clerk does not take kindly to your shoplifting.
His shotgun makes a permanent impression on you.
(And, IN you!)"
%message 20
"\"Oakie, doakie Meester!\""
%message 21
"smooth"
%message 22
"libbed"
%message 23
"colored"
%message 24
"plain"
%message 25
"lubricated"
%message 26
"rough-cut"
%message 27
"striped"
%message 28
"plaid"
%message 29
"peppermint"
%message 30
"spearmint"
%message 31
"He hands you the package, saying
\"All together, that will be $%v200.00, prease.\""
%message 32
"Unfortunately, you only have $%v90.00.
(Perhaps you can sneak out without paying.)"
%message 33
"You give him the money, with a pleasant \"Thanks a lot, big mouth!\""
%message 34 [ MUST remain 1 single space!!
" "
%message 35
"\"Hey, Meester!!\" yells the clerk.
\"I hope you enjoy your %s5-flavored, %s4, %s3, %s2, %s1 lubber!!!\""
%message 36
"The magazines are on the rack nearest the door."
%message 37
""
%message 38
"Nah. That's enough reading material for one game."
%message 39
"\"Ooooooh, Meester!
Thank you for free money.
What wonderful country thees is!!\""
%message 40
"\"Oakie, doakie Meester! That'll be $%v200.00.\""
%message 41
"\"Have a nice day.\""
%message 42
"You grab a bottle of cheap wine,
and wonder how they can make a profit selling this stuff for only a
dollar a gallon!"
%message 43
"Not here. This place is too expensive!"
%message 44
"A small, discreetly hand-lettered sign says:\n\n
\"Prophylactics For Sale\n
Ask Clerk\""
%message 45
"\"Nice turban, Leroy.\""
%message 46
"\"Hey, meester! Come over here, and get your lubber!!\""
%message 47
"He smiles back, pretending to understand."
%message 48
"The wine is on the left end of the back wall."
%message 49
"That extra large jug of wine looks like a bargain."
%message 50
"There's nothing of interest inside."
%message 51
"That is located behind the counter. Ask the clerk."
%message 52
"You still have some."
%message 53
"\"Here, Meester,\" he says. \"Thees smells like chur brand!\""
%message 54
"Hmm. That one looks particularly interesting."
%message 55
"Whew. One of those bottles is about all a guy needs, Larry."
%message 56
"The wall behind the clerk is blank and
the counter is completely bare, except for a small sign.
(You wonder where he keeps the slim jims.)"
%message 57
"\"Sorry, no gottee!\""
%message 58
"\"Fposwqa feinnzx. Ofewass gewyiu qfbva.\""
%message 59
"\"Poolskd asd woefpo lkjfq feps of foeps.\""
%message 60
"\"Owf wepa vpifk qpqwf? Qqwpp apifrp qp foiw!\""
%message 61
"\"Tqp nbq bqopni ba ajpqoi fqyq. HA HA HA!!\""
%message 62
"\"Pqwwo qfp qwfnbv qozdvie. Ppqow poqw fvzxc ioplhjk.\""
%message 63
"\"Qufe weax zxo zvp zvqiw vpozcvajpbnv wf, apoz. Wfipa?\""
%message 64
"\"Zxxz pofqsoo afpoistr zxcv.\""

959
RM22.CG Normal file
View File

@ -0,0 +1,959 @@
[logics for room 22 -- rmOutside7_11
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm22.msg"
%include "gamedefs.h"
%define DONE 255
%define wrongSideOfPole lf0
%define nearPole lf1
%define nearBum lf2
%define nearPhone lf3
%define bumDone lf4
%define hungUpPhone lf5
%define bumTimer lv1
%define bumScript lv3
%object aBum 1
if (initLog)
{
if (watchHours > 4 && [ Anything after 5 am.
watchHours < 10)
{
NewRoom( rmSunrise);
}
SetHorizon( 118);
LoadLogics( lgcStreet);
LoadSound( mRm22Drunk);
[
[ BE CAREFUL BELOW:
LoadView( v7_11Exterior); [ view.130
LoadPic( currentRoom); [
DrawPic( currentRoom); [
DiscardPic( currentRoom); [
AddToPic( v7_11Exterior, 0, 0, 44, 54, 12, 4);[
[view, loop, cel, x, y, obj priority, box priority
DiscardView( v7_11Exterior); [
[
if (currentStatus != STIFFED_CABBIE &&
!Has( iPocketKnife))
{
LoadView( v7_11Bum); [ view.93
AnimateObj( aBum);
SetView( aBum, v7_11Bum);
Position( aBum, 0, 135);
Random( 5, 15, bumTimer);
CycleTime( aBum, three);
StepTime( aBum, three);
}
if (answeredSurvey)
{
scriptTimer = 5;
script = 210;
}
if (previousRoom == rmInside7_11)
{
egoX = 36;
egoY = 115;
SetLoop( ego, FACING_FRONT);
}
else
{
if (previousRoom == rmDarkAlley)
{
egoX = 0;
egoY = 114;
}
else
{
if (previousRoom != rmOutsideDisco)
{
egoX = 77;
egoY = 146;
}
}
}
PositionV( ego, egoX, egoY);
IgnoreBlocks( ego);
Draw( ego);
Reset( noFawnInDisco); [ She'll be back now!
Call( lgcStreet);
ShowPic( );
Return( );
} [ end initLOG
Reset( nearPhone);
if (Posn( ego, 52, 126, 69, 150))
{
Set( nearPhone);
}
Reset( nearPole);
if (Posn( ego, 50, 125, 77, 142))
{
Set( nearPole);
}
Reset( wrongSideOfPole);
if (Posn( ego, 50, 143, 77, 167))
{
Set( wrongSideOfPole);
}
Reset( nearBum);
if (bumScript)
{
Distance( aBum, ego, work);
if (work < 25)
{
Set( nearBum);
Set( nearPerson);
}
}
[*****
:handleInput
[*****
if (!haveInput) {goto noInput;}
if ((Said( look) ||
Said( look, room)))
{
Print( 1);
}
if (Said( look, store))
{
Print( 34);
}
if (Said( open, door))
{
if (nearTaxi)
{
Reset( haveMatch);
}
else
{
Print( 67);
}
}
[ Telephone department.
if ((Said( use, phone) ||
Said( make, phone, call) ||
Said( dial, phone)))
{
if (!nearPhone)
{
Set( notCloseEnough);
}
else
{
if (handsOff)
{
Print( 73);
}
else
{
script = 0;
Set( scriptDone);
}
}
}
if ((Said( look, phone) ||
Said( look, side, phone) ||
Said( look, phone, book)))
{
if (!nearPhone)
{
Set( notCloseEnough);
}
else
{
Print( 22);
if (!readSideOfPhone)
{
Set( readSideOfPhone);
currentScore += 1;
}
}
}
if (Said( look, pole))
{
if (nearPole)
{
Print( 22);
}
else
{
if (wrongSideOfPole)
{
Print( 33);
}
else
{
Reset( haveMatch); [ So dynamic says "Taxi stand"
}
}
}
if ((Said( answer, phone) ||
Said( answer, phone, call) ||
Said( answer, phone) ||
Said( answer) ||
Said( get, phone)))
{
if (!nearPhone)
{
Set( notCloseEnough);
}
else
{
if (handsOff)
{
Print( 73);
}
else
{
if (script < 210)
{
Print( 50);
}
else
{
Print( 51);
script = 215;
Set( scriptDone);
}
}
}
}
[ Here's the bum stuff. (Not Bum Stuff!)
if (bumScript)
{
if (Said( look, man))
{
if (!nearBum)
{
Set( notCloseEnough);
}
else
{
Print( 32);
}
}
if ((Said( talk, man) ||
Said( talk)))
{
if (!nearBum)
{
Set( notCloseEnough);
}
else
{
Print( 23);
}
}
if (Said( no, rol))
{
Print( 28);
Set( bumDone);
bumScript = 4;
bumTimer = 0;
}
if ((Said( give, wine, man) ||
Said( give, wine) ||
Said( give, man, wine)))
{
if (!Has( iWine))
{
Set( dontHaveIt);
}
else
{
if (!nearBum)
{
Set( notCloseEnough);
}
else
{
Drop( iWine);
if (!ObjInRoom( iPocketKnife, currentRoom))
{
Print( 35);
}
else
{
Get( iPocketKnife);
currentScore += 5;
Print( 24);
Print( 25);
Print( 26);
Set( bumDone);
bumScript = 4;
bumTimer = 0;
}
}
}
}
if ((Said( give, whiskey, man) ||
Said( give, whiskey) ||
Said( give, man, whiskey)))
{
if (!Has( iWhiskey))
{
Set( dontHaveIt);
}
else
{
if (!nearBum)
{
Set( notCloseEnough);
}
else
{
Print( 2);
Drop( iWhiskey);
Set( bumDone);
bumScript = 4;
bumTimer = 0;
}
}
}
if ((Said( give, money, man) ||
Said( give, money) ||
Said( pay, man) ||
Said( pay, man, money) ||
Said( give, man, money)))
{
if (!nearBum)
{
Set( notCloseEnough);
}
else
{
dollars -= 1;
Print( 31);
Set( bumDone);
bumScript = 4;
bumTimer = 0;
}
}
if ((Said( smell, man) ||
Said( smell)))
{
Print( 29);
}
if (Said( search, man))
{
Print( 49);
}
if ((Said( give, man, bottle) ||
Said( give, bottle, man)))
{
Print( 41);
}
}
[ Generic problems, solved.
if (Said( dial, rol))
{
Print( 37);
}
if (Said( answer, rol))
{
Print( 39);
}
if (Said( anyword, phone, book))
{
Print( 38);
}
if ((Said( look, window) ||
Said( look$in, window)))
{
Print( 66);
}
[*****
:noInput
[*****
if (aSecondPassed)
{
if (scriptTimer == 1)
{
if ((script == 101 ||
script == 102))
{
script = 110; [ Waited too long. Hang up.
}
}
--bumTimer;
if (bumTimer == 1)
{
Set( bumDone);
}
}
if (bumScript > 4 && edgeObjHit && objHitEdge == aBum)
{
Set( bumDone);
}
if (bumDone)
{
Reset( bumDone);
++bumScript;
if (bumScript == 1)
{
Draw( aBum);
Sound( mRm22Drunk, done);
FollowEgo( aBum, 8, bumDone);
}
if (bumScript == 2)
{
StopMotion( aBum);
StopCycling( aBum);
Print( 27);
bumTimer = 9;
}
if (bumScript == 3) [ timer elapsed; ask for wine
{
Print( 48);
bumTimer = 9;
}
if (bumScript == 4) [ timer elapsed; bum splits!
{
Print( 28);
bumScript = 5;
}
if (bumScript == 5) [ player caused him to go.
{
StartCycling( aBum);
Wander( aBum);
}
if (bumScript == 6)
{
Erase( aBum);
bumScript = 0;
}
}
if (scriptDone)
{
Reset( scriptDone);
++script;
if (script == 1) [ Accept a phone number.
{
Set( handsOff);
PreventInput();
StopMotion( ego);
Set( programControl);
if (monitorType != MONO)
{
ClearLines( 23, 23, BG_COLOR);
}
SetString( 1, 52); [ " " default blank string;
GetString( 1, 30, 23, 0, 14);
[string#, prompt, row, col, max length
scriptTimer = 3; [ kill some time before deciding
}
[ Now, decide if he entered one of our many valid numbers.
if (script == 2) [ Accept a phone number.
{
SetString( 2, 56); [ Liquor store.
SetString( 3, 57);
if ((CompareStrings( 1, 2) ||
CompareStrings( 1, 3)))
{
script = 100;
}
SetString( 2, 58); [ Sex survey.
SetString( 3, 59);
if ((CompareStrings( 1, 2) ||
CompareStrings( 1, 3)))
{
if (answeredSurvey)
{
script = 110;
}
else
{
script = 200;
}
}
SetString( 2, 60); [ Sierra.
SetString( 3, 61);
SetString( 4, 62);
SetString( 5, 63);
SetString( 11, 64);
SetString( 12, 65);
if ((CompareStrings( 1, 2) ||
CompareStrings( 1, 3) ||
CompareStrings( 1, 4) ||
CompareStrings( 1, 5) ||
CompareStrings( 1, 11) ||
CompareStrings( 1, 12)))
{
script = 150;
}
if (monitorType != MONO)
{
ClearLines( 23, 23, BG_COLOR);
}
scriptTimer = 5;
Set( soundDone);
}
if (script == 3) [ Unsuccessful dialing experience.
{
Print( 42);
Print( 43);
script = DONE;
}
if (script == 101) [ "Hello. Ajax Liquor Store"
{
if (!fawnInRoom)
{
Print( 36);
script = DONE;
}
else
{
Print( 44);
Print( 45);
SetString( 11, 52);
if (monitorType != MONO)
{
ClearLines( 23, 23, BG_COLOR);
GetString( 11, 53, 23, 0, 38);
[ string#, prompt, row, col, max length
}
else
{
GetString( 11, 52, 23, 0, 28);
}
PreventInput();
AcceptInput();
Parse( 11);
if ((Said( wine) ||
Said( order, wine) ||
Said( deliver, wine)))
{
++script;
}
else
{
Set( haveMatch);
Print( 54); [ screwed up.
script = DONE;
}
}
}
if (script == 102)
{
Print( 46);
[ string#, prompt, row, col, max length
SetString( 11, 52);
if (monitorType != MONO)
{
ClearLines( 23, 23, BG_COLOR);
GetString( 11, 53, 23, 0, 38);
}
else
{
GetString( 11, 52, 23, 0, 28);
}
PreventInput();
AcceptInput();
Parse( 11);
if ((Said( anyword, honeymoon$suite) ||
Said( anyword, anyword, honeymoon$suite) ||
Said( honeymoon$suite, rol)))
{
++script;
}
else
{
Set( haveMatch);
Print( 55); [ screwed up.
script = DONE;
}
}
if (script == 103)
{
Print( 47);
Set( orderedWine);
if (!orderedWineFirstTime)
{
Set( orderedWineFirstTime);
currentScore += 5;
}
script = DONE;
}
if (script == 111) [ He dialed survey twice!
{
Print( 36);
script = DONE;
}
if (script == 151) [ He dialed Sierra.
{
Print( 68);
Print( 69);
Print( 70);
Print( 71);
Print( 72);
if (!dialedSierra)
{
Set( dialedSierra);
currentScore += 5;
}
script = DONE;
}
if (script == 201) [ Take the sex survey.
{
Print( 3);
SetString( 6, 52); [ Blank 'em out.
SetString( 7, 52);
SetString( 8, 52);
SetString( 9, 52);
SetString( 10, 52);
SetString( 11, 74); [ a NULL string.
Print( 4);
if (monitorType != MONO)
{
ClearLines( 23, 23, BG_COLOR);
GetString( 6, 53, 23, 0, 38);
ClearLines( 23, 23, BG_COLOR);
}
else
{
GetString( 6, 52, 23, 0, 28);
}
if (CompareStrings( 11, 6))
{
Set( hungUpPhone);
goto surveyDone;
}
Print( 5);
if (monitorType != MONO)
{
ClearLines( 23, 23, BG_COLOR);
GetString( 7, 53, 23, 0, 38);
ClearLines( 23, 23, BG_COLOR);
}
else
{
GetString( 7, 52, 23, 0, 28);
}
if (CompareStrings( 11, 7))
{
Set( hungUpPhone);
goto surveyDone;
}
Print( 6);
if (monitorType != MONO)
{
ClearLines( 23, 23, BG_COLOR);
GetString( 8, 53, 23, 0, 38);
ClearLines( 23, 23, BG_COLOR);
}
else
{
GetString( 8, 52, 23, 0, 28);
}
if (CompareStrings( 11, 8))
{
Set( hungUpPhone);
goto surveyDone;
}
Print( 7);
if (monitorType != MONO)
{
ClearLines( 23, 23, BG_COLOR);
GetString( 9, 53, 23, 0, 38);
ClearLines( 23, 23, BG_COLOR);
}
else
{
GetString( 9, 52, 23, 0, 28);
}
if (CompareStrings( 11, 9))
{
Set( hungUpPhone);
goto surveyDone;
}
Print( 8);
if (monitorType != MONO)
{
ClearLines( 23, 23, BG_COLOR);
GetString( 10, 53, 23, 0, 38);
ClearLines( 23, 23, BG_COLOR);
}
else
{
GetString( 10, 52, 23, 0, 28);
}
if (CompareStrings( 11, 10))
{
Set( hungUpPhone);
goto surveyDone;
}
:surveyDone;
if (hungUpPhone)
{
Reset( hungUpPhone);
Print( 75);
}
else
{
Print( 9);
Set( answeredSurvey);
if (!answeredSurveyFirstTime)
{
Set( answeredSurveyFirstTime);
currentScore += 2;
}
}
Print( 10);
Print( 11);
script = DONE;
}
if (script == 211) [ He's back in the room. Ring phone
{
scriptTimer = 5;
if (typing)
{
--script;
}
else
{
Print( 13);
}
}
if (script == 212)
{
scriptTimer = 5;
if (typing)
{
--script;
}
else
{
Print( 14);
}
}
if (script == 213)
{
scriptTimer = 5;
if (typing)
{
--script;
}
else
{
Print( 15);
}
}
if (script == 214)
{
scriptTimer = 5;
if (typing)
{
--script;
}
else
{
Print( 16);
}
}
if (script == 215)
{
scriptTimer = 5;
if (typing)
{
--script;
}
else
{
script = 210; [ keep repeating
Print( 17);
}
}
if (script == 216)
{
Reset( answeredSurvey);
if (!heardSurveyFirstTime)
{
Set( heardSurveyFirstTime);
currentScore += 5;
}
Print( 18);
Print( 19);
Print( 20);
Print( 21);
}
if (script == DONE)
{
script = 0;
Reset( handsOff);
if (monitorType != MONO)
{
ClearLines( 23, 23, BG_COLOR);
}
StartMotion( ego);
Reset( programControl);
PreventInput();
AcceptInput();
Reset( soundDone);
}
}
[*****
:exit [ test for leaving the room
[*****
Call( lgcStreet);
if (Said( call, operator))
{
Print( 40);
}
if ((Said( make, call) ||
Said( use, phone) ||
Said( make, phone, call) ||
Said( call, anyword))) [ Didn't call a cab!
{
Print( 37);
}
if (edgeEgoHit == RIGHT) {newRoom = rmOutsideDisco;}
if (edgeEgoHit == LEFT) {newRoom = rmDarkAlley;}
if (edgeEgoHit == TOP)
{
if (egoX > 27)
{
newRoom = rmInside7_11;
}
else
{
newRoom = rmDarkAlley;
}
}

261
RM22.MSG Normal file
View File

@ -0,0 +1,261 @@
[messages for room 22 -- rmOutside7_11
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"You are outside an all-night convenience store.
There is a telephone on the pole.
The portion of the telephone book that wasn't illegible from
being water-soaked has been torn out."
%message 2
"\"Slurp. Thanks, I needed that! See ya 'round!!\""
%message 3
"\"Hello, you have reached the National Hot Line Sex Survey.
Please answer the following questions.
There may be a wonderful prize waiting for you!!\""
%message 4
"\"What is the name of your favorite sex partner?\""
%message 5
"\"What's the best part of your partner's anatomy?\""
%message 6
"\"What do the two of you like to do together?\""
%message 7
"\"What is the best part of your body?\""
%message 8
"\"And, finally, name your partner's favorite object.\""
%message 9
"\"Thanks for participating. Your prize is...\""
%message 10
" \n
\n
\n"
%message 11
"Hum. Looks like they hung up on you.
Oh, well. It was probably a bummer prize anyway!"
%message 12
"Where?!"
%message 13
"\"Ring.\""
%message 14
"\"Ring ring.\""
%message 15
"\"Ring ring ring.\""
%message 16
"\"Ring ring ring ring.\""
%message 17
"How long are we going to do this before you type in \"answer phone?!\""
%message 18
"You pick up the telephone, and hear a woman's voice."
%message 19
"\"Hello, Larry! This is %s6. Why don't you forget this silly game,
and come over to my place so we can %s8?\""
%message 20
"\"After all, your %s9 has always turned me on! So bring along a %s10 and
come play with my %s7! Bye, now.\""
%message 21
"You hang up the telephone and wipe the sweat from your hands!"
%message 22
"There are some numbers scribbled on the side of the telephone.
The only thing legible (and printable) is: \"555-6969.\""
%message 23
"\"Howsha 'bout a drink, Shonney?\""
%message 24
"\"Why, thanshk, Shonney!\" (Glug, glug.)"
%message 25
"\"I ain't got no remote control, but, sssshay, I'll tell ya what:
here'ssh my trussshty ol' pocket knife.
Ya never know!
There are sssshome kinky girlssh in this town.
Sssshexy hunkssh like ussh might have to defend oursshelves sometime!\""
%message 26
"With that, he \"sssshtumbles\" off into the darkness."
%message 27
"\"Got any sshhpare change, buddy?\""
%message 28
"\"Al'right. Be that way!\""
%message 29
"Cheezzzz! He makes that dog smell refreshing!"
%message 30
"Please enter number: "
%message 31
"You fish a dollar out of your wallet, and hand it to the bum.
\"Gossshhh thanssskks, buddy,\" he says sarcastically.
\"With all thisssh, maybe I can finally invessst in sssome mutual fundsssh!\""
%message 32
"He looks like a man that could (ab)use a drink."
%message 33
"There's nothing to see on this side of the pole."
%message 34
"The store is open all night for your convenience.
That's why they call it an \"all-night convenience store,\" Larry!"
%message 35
"\"Why, thanshk, Shonney! Glug, glug.\""
%message 36
"All you get is a busy signal."
%message 37
"Try dialing the telephone."
%message 38
"What's left is illegible."
%message 39
"Try answering the telephone."
%message 40
"It's not that easy; you'll have to find the correct telephone
number yourself!"
%message 41
"Give him the bottle of what?"
%message 42
"\"I'm sorry, but you have reached a number that is disconnected, or
no longer in service. Please hang up and dial again.\""
%message 43
"\"This is a computer.\""
%message 44
"\"Hello. Ajax Liquor Store. We deliver!\""
%message 45
"\"So, what do you want to buy?\""
%message 46
"\"Fine. Where do you want it delivered?\""
%message 47
"\"Ok. We'll get it right there. Consider it done, and thanks for
calling!\""
%message 48
"\"Well, ok. Have ya got any spare wine, then?\""
%message 49
"You find a strong aroma, which you allow him to keep!"
%message 50
"It's not ringing."
%message 51
"\"Hello.\""
%message 52 [ This must REMAIN a single blank!
" "
%message 53 [ The phony prompt.
"]"
%message 54
"\"Sorry, by law all we can deliver is wine. Ok, talk to ya again
sometime. Bye!\""
%message 55
"\"Ok, I'll take it there, but I doubt if you ever see it! Bye!\""
%message 56
"555-8039"
%message 57
"5558039"
%message 58
"555-6969"
%message 59
"5556969"
%message 60
"(209) 683-6858"
%message 61
"209 683-6858"
%message 62
"209 683-6858"
%message 63
"2096836858"
%message 64
"209683-6858"
%message 65
"209 6836858"
%message 66
"You could see better if you'd walk inside."
%message 67
"It IS open."
%message 68
"\"Hello,\" a pleasant voice responds. \"Sierra On-Line.\""
%message 69
"\"We're not open right now, but if you'd call during business hours
(and stop using this pretend telephone),
we would be happy to sell you a 'Leisure Suit Larry Hint Book.'\""
%message 70
"\"Written by Al Lowe, the author of Leisure Suit Larry,
you know it at least tries to be humorous.
The answers are invisible, until you mark them with the special pen provided,
so you never have to worry about inadvertently learning something
you didn't want to know.\""
%message 71
"\"Thank you for calling Sierra On-Line, and for your purchase of
'Leisure Suit Larry in the Land of the Lounge Lizards.' Good bye.\""
%message 72
"Such blatant commercialism turns you on.
You make a mental note to purchase one of those great,
Al Lowe Hint Books!"
%message 73
"Now?!"
%message 74 "" [MUST REMAIN A NULL STRING!!
%message 75
"\"I guess that means you don't want to take the survey!\""

357
RM23.CG Normal file
View File

@ -0,0 +1,357 @@
[logics for room 23 -- rmOutsideDisco
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm23.msg"
%include "gamedefs.h"
%define nearBouncer lf0
%define readMessage lf1
%define preventBouncer lf2
%define stopBouncer lf3
%define bouncerWorking lf4
%object aSign1 1
%object aSign2 2
%object aSign3 3
%object aBouncer 4
if (initLog)
{
if (watchHours > 4 && [ Anything after 5 am.
watchHours < 10)
{
NewRoom( rmSunrise);
}
SetHorizon( 76);
LoadLogics( lgcStreet);
LoadPic( currentRoom);
DrawPic( currentRoom);
DiscardPic( currentRoom);
LoadView( vDiscoExterior);
LoadView( vDiscoBouncer);
if (slowProcessor)
{
AddToPic( vDiscoExterior, 0, 1, 64, 59, 15, 4);
[view, loop, cel, x, y, obj priority, box priority
}
else
{
AnimateObj( aSign1);
IgnoreHorizon( aSign1);
SetView( aSign1, vDiscoExterior);
SetLoop( aSign1, 0);
Position( aSign1, 64, 59);
SetPriority( aSign1, 15);
Draw( aSign1);
}
AnimateObj( aSign2);
IgnoreHorizon( aSign2);
SetView( aSign2, vDiscoExterior);
SetLoop( aSign2, 1);
SetCel( aSign2, 0);
Position( aSign2, 39, 66);
CycleTime( aSign2, two);
Draw( aSign2);
AnimateObj( aSign3);
IgnoreHorizon( aSign3);
SetView( aSign3, vDiscoExterior);
SetLoop( aSign3, 1);
SetCel( aSign3, 1);
Position( aSign3, 103, 66);
CycleTime( aSign3, two);
Draw( aSign3);
AnimateObj( aBouncer);
IgnoreBlocks( aBouncer);
SetView( aBouncer, vDiscoBouncer);
SetCel( aBouncer, 0);
if (previousRoom == rmInsideDisco)
{
IgnoreBlocks( ego);
Set( preventBouncer);
Position( aBouncer, 73, 120);
egoX = 77;
egoY = 83;
}
else
{
Position( aBouncer, 76, 120);
ObserveBlocks( ego);
if (previousRoom != rmOutside7_11 &&
previousRoom != rmDarkAlley)
{
egoX = 77;
egoY = 146;
}
}
PositionV( ego, egoX, egoY);
Draw( ego);
Draw( aBouncer);
StopUpdate( aBouncer);
Call( lgcStreet);
ShowPic( );
Return( );
} [ end initLOG
Reset( nearBouncer);
if (Posn( ego, 65, 120, 91, 127))
{
Set( nearBouncer);
Set( nearPerson);
}
[*****
:handleInput
[*****
if (!haveInput) {goto noInput;}
if ((Said( look) ||
Said( look, building) ||
Said( look, room) ||
Said( look, disco)))
{
Print( 1);
}
if (Said( look, light))
{
Print( 16);
}
if (Said( look, fireplug))
{
Print( 24);
}
if (Said( look, building))
{
Print( 14);
Print( 15);
}
[ Here's the bouncer's stuff:
if ((Said( talk, man) ||
Said( talk)))
{
if (!nearBouncer)
{
Set( notCloseEnough);
}
else
{
if (preventBouncer)
{
Print( 7);
}
else
{
Print( 2);
Print( 5);
}
}
}
if ((Said( look, man) ||
Said( look)))
{
if (preventBouncer)
{
Print( 10);
}
else
{
Print( 11);
}
}
if ((Said( move, man) ||
Said( push, man)))
{
if (!nearBouncer)
{
Set( notCloseEnough);
}
else
{
Print( 17);
}
}
if ((Said( hit, man) ||
Said( kill, man)))
{
Print( 12);
Print( 13);
}
if ((Said( offer, bouncer, money) ||
Said( offer, money, bouncer) ||
Said( bribe, bouncer)))
{
if (!nearBouncer)
{
Set( notCloseEnough);
}
else
{
Print( 22);
Print( 23);
}
}
if ((Said( buy, card, from, man) ||
Said( pay, man) ||
Said( ask, man, about, card) ||
Said( ask, man, card)))
{
if (!nearBouncer)
{
Set( notCloseEnough);
}
else
{
Print( 20);
Print( 21);
}
}
if ((Said( show, pass) ||
Said( give, pass, man) ||
Said( give, man, pass) ||
Said( give, pass) ||
Said( show, man, pass) ||
Said( show, pass, man)))
{
if (!Has( iDiscoPass))
{
Print( 6);
}
else
{
if (!nearBouncer)
{
Set( notCloseEnough);
}
else
{
if (preventBouncer)
{
Print( 8);
}
else
{
Print( 4);
Print( 3);
Set( preventBouncer);
StartUpdate( aBouncer);
SetCel( aBouncer, 0);
RepositionTo( aBouncer, 73, 120);
StopUpdate( aBouncer);
ForceUpdate( aBouncer);
IgnoreBlocks( ego);
if (!shownPassToBouncer)
{
Set( shownPassToBouncer);
currentScore += 5;
}
}
}
}
}
[ Errors, but still I'm gracious enough to handle them...
if ((Said( open, door) ||
Said( knock) ||
Said( knock, on, door) ||
Said( knock, door)))
{
if (nearTaxi)
{
Reset( haveMatch);
}
else
{
Print( 19);
}
}
[*****
:noInput
[*****
if (!preventBouncer)
{
if (nearBouncer && !bouncerWorking)
{
Set( bouncerWorking);
StartUpdate( aBouncer);
EndOfLoop( aBouncer, stopBouncer);
}
else
{
if (!nearBouncer && bouncerWorking)
{
Reset( bouncerWorking);
SetCel( aBouncer, 0);
ForceUpdate( aBouncer);
Set( stopBouncer);
}
}
if (stopBouncer)
{
Reset( stopBouncer);
StopUpdate( aBouncer);
if (!readMessage)
{
Set( readMessage);
Print( 9);
}
}
}
[*****
:exit [ test for leaving the room
[*****
Call( lgcStreet);
if (edgeEgoHit == LEFT) {newRoom = rmOutside7_11;}
if (edgeEgoHit == TOP) {newRoom = rmInsideDisco;}
if (edgeEgoHit == RIGHT) {newRoom = rmDarkAlley;}

89
RM23.MSG Normal file
View File

@ -0,0 +1,89 @@
[messages for room 23 -- rmOutsideDisco
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"You are outside a flashy disco. The bouncer does not look happy."
%message 2
"\"Either show your membership card, or get lost, Scum-Breath!\""
%message 3
"\"Good evening, Sir. I'm so sorry I didn't recognize you sooner.
Please, come right in!!\""
%message 4
"You whip out your \"borrowed\" membership card, and lay it on him."
%message 5
"It seems he's uninterested in idle chit-chat, Larry."
%message 6
"You don't have a membership card!"
%message 7
"\"We hope you enjoyed your visit tonight, Sir!\""
%message 8
"\"Oh, there's no need to do that, Sir!\" says the bouncer."
%message 9
"\"HALT!!\n\n
I'm sorry, Sir,\" says the bouncer, \"but this is a private club.\""
%message 10
"He seems glad to see you leave."
%message 11
"He's physically well-developed,
but you bet he's not as wise in the ways of women as you are."
%message 12
"Larry! How could you!"
%message 13
"You know he'd beat you to a pulp!"
%message 14
"Gazing up at the storefronts before you, a feeling comes over you.
Surely every one of those windows has a deep,
wonderful story hidden behind it.
There are millions of stories here in Lost Wages,
but you'll never know any of them.
Such is the fate of those who are morally-weak,
but financially-strong."
%message 15
"(What the hell was that all about????)"
%message 16
"Gaudy, aren't they?"
%message 17
"He's far too strong for you, Larry."
%message 18
""
%message 19
"All the stores are locked. But, that disco sure looks inviting."
%message 20
"\"You can only get a card if you already have a card,\" he laughs,
\"but then, of course, you wouldn't NEED a card.\""
%message 21
"\"So, beat it, Chump!\""
%message 22
"\"How's about a little green sliding across your palm?\"
you ask the bouncer."
%message 23
"\"How's about your rear end sliding across the pavement?\" he replies."
%message 24
"Why does the dog use you, and not it?"

898
RM24.CG Normal file
View File

@ -0,0 +1,898 @@
[logics for room 24 -- rmInsideDisco
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm24.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_DANCE_FLOOR 0
#define L_LIGHTS 1
#define TALK_TIME 4
#define L_FAWN_SITTING 0
#define L_EGO_SITTING 1
#define L_HEAD_RIGHT 1
#define L_HEAD_UP 2
%define cutToLongShot lf0
%define nearChair lf1
%define nearFawn lf2
%define fawnAtTable lf3
%define fawnCycling lf4
%define lookingAtFawn lf5
%define fawnOnDanceFloor lf6
%define cutToCloseup lf8
%define nearFawnChair lf10
%define fawnLeaving lf11
%define fawnScriptDone lf12
%define turnHeadsToFloor lf13
%define turnHeadsToTable lf14
%define fawnCycles lv0
%define fawnScript lv8
%object aFloor 1
%object aLights 2
%object aFawn 5
if (initLog)
{
SetHorizon( 1);
AcceptInput();
LoadPic( currentRoom);
DrawPic( currentRoom);
DiscardPic( currentRoom);
LoadView( vEgo);
LoadView( vEgoAndFawnSitting);
LoadView( vDiscoCustomers);
LoadView( vFawn);
[ Add the tables, and customer-bodies.
AddToPic( vDiscoCustomers, 0, 0, 115, 120, 11, 0);
AddToPic( vDiscoCustomers, 0, 1, 24, 132, 0, 0);
AddToPic( vDiscoCustomers, 0, 2, 24, 159, 0, 0);
AddToPic( vDiscoCustomers, 0, 3, 105, 108, 4, 4);
AddToPic( vDiscoCustomers, 0, 4, 49, 158, 0, 0);
AddToPic( vDiscoCustomers, 0, 5, 98, 108, 4, 4);
[view, loop, cel, x, y, obj priority, box priority
[ Add the customers-heads.
AddToPic( vDiscoCustomers, L_HEAD_RIGHT, 1, 24, 112, 12, 4);
AddToPic( vDiscoCustomers, L_HEAD_RIGHT, 2, 24, 139, 14, 4);
AddToPic( vDiscoCustomers, L_HEAD_RIGHT, 3, 105, 89, 4, 4);
AddToPic( vDiscoCustomers, L_HEAD_RIGHT, 4, 49, 138, 14, 4);
AddToPic( vDiscoCustomers, L_HEAD_RIGHT, 5, 98, 90, 4, 4);
if (makeFawnDance) [ This is it!
{
LoadSound( mDisco);
LoadView( vEgoDiscoing1);
LoadView( vEgoDiscoing2);
LoadView( vEgoFlingingFawn);
LoadView( vFawnDancing);
LoadView( vDiscoInterior);
AnimateObj( aFloor);
IgnoreBlocks( aFloor);
IgnoreObjs( aFloor);
SetView( aFloor, vDiscoInterior);
SetLoop( aFloor, L_DANCE_FLOOR);
SetCel( aFloor, 0);
Position( aFloor, 34, 123);
SetPriority( aFloor, 3);
AnimateObj( aLights);
SetView( aLights, vDiscoInterior);
SetLoop( aLights, L_LIGHTS);
SetPriority( aLights, 15);
Position( aLights, 47, 24);
}
AnimateObj( aFawn);
SetView( aFawn, vFawn);
ReleasePriority( aFawn);
StartCycling( aFawn);
CycleTime( aFawn, one);
Position( aFawn, 130, 122);
if (!gaveFawnEverything &&
!noFawnInDisco &&
!makeFawnDance &&
!makeFawnSplit) [ Sit her ass down!
{
Set( fawnAtTable);
SetView( aFawn, vEgoAndFawnSitting);
SetLoop( aFawn, L_FAWN_SITTING);
SetPriority( aFawn, 11);
Position( aFawn, 129, 119);
Draw( aFawn);
CycleTime( aFawn, two);
StopCycling( aFawn);
Random( 22, 44, fawnCycles);
}
if (previousRoom == rmFawnCloseup)
{
SetView( ego, vEgoAndFawnSitting);
SetLoop( ego, L_EGO_SITTING);
SetPriority( ego, 11);
StopMotion( ego);
Set( programControl);
currentStatus = SITTING;
egoX = 116;
egoY = 119;
if (makeFawnSplit)
{
Reset( makeFawnSplit);
Draw( aFawn);
Set( fawnScriptDone);
fawnScript = 100;
fawnCycles = 0;
}
if (makeFawnDance)
{
Reset( makeFawnDance);
Draw( aFawn);
Set( scriptDone);
script = 3;
}
}
else
{
moneyTimer = 0;
egoX = 76;
egoY = 167;
}
PositionV( ego, egoX, egoY);
Draw( ego);
ShowPic( );
Return( );
} [ end initLOG
Reset( nearChair);
if (Posn( ego, 112, 121, 123, 124))
{
Set( nearChair);
}
Reset( nearFawnChair);
if (Posn( ego, 124, 121, 141, 124))
{
Set( nearFawnChair);
}
Reset( nearFawn);
if (fawnAtTable)
{
if ((currentStatus == SITTING ||
Posn( ego, 120, 112, 142, 130)))
{
Set( nearFawn);
Set( nearPerson);
}
}
[*****
:handleInput
[*****
if (!haveInput) {goto noInput;}
if ((Said( sit) || [ Can only sit or stand if
Said( sit, with, girl, rol) || [ Fawn baby is dancing.
Said( sit, down, rol) ||
Said( sit, chair, rol) ||
Said( sit, table, rol)))
{
if (currentStatus == SITTING)
{
Print( 38);
}
else
{
if (nearFawnChair)
{
if (!fawnAtTable)
{
Print( 62);
}
else
{
Print( 66);
}
}
else
{
if (!nearChair)
{
Set( notCloseEnough);
}
else
{
if (!fawnAtTable)
{
Print( 53);
}
else
{
if (satWithFawn)
{
Set( OK);
}
else
{
Set( satWithFawn);
currentScore += 1;
Print( 29);
Print( 30);
Print( 31);
}
}
SetView( ego, vEgoAndFawnSitting);
SetLoop( ego, L_EGO_SITTING);
RepositionTo( ego, 116, 119);
SetPriority( ego, 11);
ForceUpdate( ego);
StopMotion( ego);
Set( programControl);
currentStatus = SITTING;
}
}
}
}
if ((Said( stand) ||
Said( get$up, rol) ||
Said( get, off, chair) ||
Said( stop, looking, fawn) ||
Said( look, away) ||
Said( look, away, from, fawn) ||
Said( leave, rol) ||
Said( stand, up, rol)))
{
if (currentStatus != SITTING)
{
Print( 39);
}
else
{
Set( OK);
Set( makeEgoRise);
}
}
if (!haveMatch &&
fawnOnDanceFloor) [ This catches all other messages
{ [ if Fawn is dancing.
Print( 2);
Set( haveMatch);
}
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 (fawnAtTable &&
(Said( look, fawn, rol) ||
Said( establish$eye$contact, rol)))
{
if (script)
{
Print( 6);
}
else
{
if (currentStatus != SITTING)
{
Print( 44);
}
else
{
Set( cutToCloseup);
}
}
}
if (noFawnInDisco)
{
if (Said( dance, rol))
{
Print( 54);
}
if ((Said( girl, rol) ||
Said( anyword, girl, rol)))
{
Print( 55);
}
}
if ((Said( look) ||
Said( look, room) ||
Said( look, tables) ||
Said( look, tables) ||
Said( look, disco)))
{
if (nearFawn)
{
Print( 61);
}
else
{
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 (fawnAtTable)
{
if ((Said( talk, fawn) ||
Said( say, anyword, fawn)))
{
if (currentStatus != SITTING)
{
Print( 44);
}
else
{
Print( 45);
}
}
if (nearFawn &&
(Said( touch, faith, rol) ||
Said( eat, faith, rol) ||
Said( hump, faith, rol) ||
Said( kiss, faith, rol) ||
Said( touch, tit, rol)))
{
Print( 60);
}
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, dance, with, me) ||
Said( you, dance, with, fawn) ||
Said( enjoy, dance) ||
Said( enjoy, dance, with, me) ||
Said( you, enjoy, dance, rol) ||
Said( ask, dance, fawn) ||
Said( ask, fawn, dance) ||
Said( ask, fawn, dance, rol) ||
Said( start, dance)))
{
if (dancedWithFawn)
{
Print( 59);
}
else
{
if (currentStatus != SITTING)
{
Print( 44);
}
else
{
Print( 45);
}
}
}
if ((Said( give, fawn, rose) ||
Said( give, rose, fawn)))
{
if (!Has( iRose))
{
Set( dontHaveIt);
}
else
{
if (currentStatus != SITTING)
{
Print( 44);
}
else
{
Print( 45);
}
}
}
if ((Said( give, fawn, candy) ||
Said( give, candy, fawn)))
{
if (!Has( iCandy))
{
Set( dontHaveIt);
}
else
{
if (currentStatus != SITTING)
{
Print( 44);
}
else
{
Print( 45);
}
}
}
if ((Said( give, fawn, ring) ||
Said( give, ring, fawn)))
{
if (!Has( iRing))
{
Set( dontHaveIt);
}
else
{
if (currentStatus != SITTING)
{
Print( 44);
}
else
{
Print( 45);
}
}
}
if ((Said( give, fawn, money) ||
Said( give, one, money, fawn) ||
Said( give, fawn, one, dollars) || [ this makes one hundred work
Said( give, money, fawn)))
{
if (currentStatus != SITTING)
{
Print( 44);
}
else
{
Print( 45);
}
}
}
[*****
:noInput
[*****
if (makeEgoRise)
{
Reset( makeEgoRise);
SetView( ego, vEgo);
SetLoop( ego, FACING_RIGHT);
RepositionTo( ego, 116, 121);
ReleasePriority( ego);
StartMotion( ego);
Reset( programControl);
currentStatus = NORMAL;
}
if (script == 6 && onWater) [ Larry finally got out there!
{
Set( scriptDone);
}
if (aSecondPassed)
{
--moneyTimer;
if (moneyTimer == 15)
{
Print( 21);
}
if (moneyTimer == 1)
{
Print( 22);
Set( noFawnInDisco); [ She's pissed.
Set( fawnScriptDone);
fawnScript = 100;
}
}
if (scriptDone)
{
Reset( scriptDone);
++script;
if (script == 4)
{
MoveObj( aFawn, 97, 143, 1, scriptDone);
}
if (script == 5)
{
MoveObj( aFawn, 67, 113, 1, scriptDone);
}
if (script == 6) [ She's on the dance floor.
{
Set( fawnOnDanceFloor);
Set( turnHeadsToFloor);
ObjectOnWater( aFawn);
SetView( aFawn, vFawnDancing);
Wander( aFawn);
Draw( aFloor);
Draw( aLights);
Set( musicDone);
if (!onWater) [ Larry's lagging behind
{
Print( 8);
}
else
{
script = 7;
}
}
if (script == 7) [ Larry finally got there, too.
{
ObserveObjs( aFawn);
Set( handsOff);
Set( keepCycling);
SetView( ego, vEgoDiscoing1);
Set( programControl);
PreventInput();
Wander( ego);
currentStatus = DANCING;
scriptTimer = 10; [ Dance a while.
}
if (script == 8) [ Get Larry in place for the toss.
{
MoveObj( ego, 53, 110, 1, scriptDone);
}
if (script == 9) [ Get her in place, too.
{
IgnoreObjs( aFawn);
MoveObj( aFawn, 58, 110, 1, scriptDone);
}
if (script == 10) [ Grab her, and toss her.
{
SetView( ego, vEgoFlingingFawn);
SetLoop( ego, 0);
SetCel( ego, 0);
RepositionTo( ego, 50, 110);
CycleTime( ego, three);
EndOfLoop( ego, scriptDone);
Erase( aFawn);
ObjectOnAnything( aFawn);
SetView( aFawn, vEgoFlingingFawn);
SetLoop( aFawn, 1);
FixLoop( aFawn);
SetCel( aFawn, 0);
StopCycling( aFawn);
Position( aFawn, 50, 80); [ draw later
}
if (script == 11) [ Draw her over his head. Go up!
{
SetLoop( ego, 2);
CycleTime( ego, one);
Draw( aFawn);
MoveObj( aFawn, 50, 16, 6, scriptDone);
}
if (script == 12) [She's in ceiling. He can let loose.
{
SetView( ego, vEgoDiscoing2);
Wander( ego);
Erase( aFawn);
SetCel( aFawn, 1);
scriptTimer = 12;
}
if (script == 13) [ Get in place for the catch.
{
MoveObj( ego, 53, 110, 1, scriptDone);
}
if (script == 14) [ Here she comes!
{
SetView( ego, vEgoFlingingFawn);
SetLoop( ego, 2);
RepositionTo( ego, 50, 110);
Draw( aFawn);
MoveObj( aFawn, 50, 80, 6, scriptDone);
}
if (script == 15) [ Got her!!
{
SetLoop( ego, 0);
LastCel( ego, work);
SetCelV( ego, work);
BeginningOfLoop( ego, scriptDone);
Erase( aFawn);
ObjectOnWater( aFawn);
SetView( aFawn, vFawnDancing);
ReleaseLoop( aFawn);
StartCycling( aFawn);
Position( aFawn, 59, 110);
ObserveObjs( aFawn);
}
if (script == 16) [ Dance together a little while.
{
SetView( ego, vEgoDiscoing1);
RepositionTo( ego, 51, 110);
Wander( ego);
Draw( aFawn);
Wander( aFawn);
scriptTimer = 8;
}
if (script == 17) [ It's over.
{
StopUpdate( aFloor);
Erase( aLights);
StopSound();
Reset( musicDone);
Reset( keepCycling);
SetView( ego, vEgo);
NormalMotion( ego);
StartMotion( ego);
Reset( programControl);
currentStatus = NORMAL;
ObjectOnAnything( aFawn);
SetView( aFawn, vFawn);
MoveObj( aFawn, 67, 113, 1, scriptDone);
Reset( fawnOnDanceFloor);
}
if (script == 18) [ "Please return to your seats!"
{
Reset( handsOff);
MoveObj( aFawn, 97, 143, 1, scriptDone);
}
if (script == 19)
{
MoveObj( aFawn, 119, 121, 1, scriptDone);
}
if (script == 20)
{
MoveObj( aFawn, 130, 121, 1, scriptDone);
}
if (script == 21) [ Sit and wiggle that leg, baby!
{
Set( turnHeadsToTable);
SetView( aFawn, vEgoAndFawnSitting);
SetLoop( aFawn, L_FAWN_SITTING);
RepositionTo( aFawn, 129, 119);
SetPriority( aFawn, 11);
CycleTime( aFawn, two);
Random( 22, 44, fawnCycles);
script = 0;
AcceptInput();
Set( fawnAtTable);
if (!dancedWithFawn)
{
Set( dancedWithFawn);
currentScore += 5;
}
}
}
if (fawnScriptDone)
{
Reset( fawnScriptDone);
++fawnScript;
if (fawnScript == 101) [ This takes the fawn out the door.
{
Set( handsOff);
Reset( fawnAtTable);
SetView( aFawn, vFawn);
ReleasePriority( aFawn);
StartCycling( aFawn);
StartMotion( aFawn);
fawnCycles = 0;
CycleTime( aFawn, one);
IgnoreObjs( aFawn);
RepositionTo( aFawn, 130, 123);
ForceUpdate( aFawn);
MoveObj( aFawn, 122, 123, 1, fawnScriptDone);
}
if (fawnScript == 102)
{
MoveObj( aFawn, 77, 167, 1, fawnScriptDone);
}
if (fawnScript == 103)
{
Reset( handsOff);
fawnScript = 0;
Erase( aFawn);
AcceptInput();
if (gaveFawnEverything)
{
Print( 19);
}
if (noFawnInDisco)
{
Print( 56);
}
}
}
if (!fawnLeaving &&
fawnAtTable)
{
--fawnCycles; [ Kick that leg
if (fawnCycles == 1)
{
Toggle( fawnCycling);
if (fawnCycling)
{
StartCycling( aFawn);
Random( 5, 22, fawnCycles);
}
else
{
StopCycling( aFawn);
Random( 22, 44, fawnCycles);
}
}
}
if (currentStatus == DANCING) [ leave this section below script!
{
ObjectOnWater( ego);
}
else
{
ObjectOnAnything( ego);
}
if (musicDone)
{
Sound( mDisco, musicDone);
}
if (turnHeadsToTable)
{
Reset( turnHeadsToTable);
AddToPic( vDiscoCustomers, L_HEAD_RIGHT, 1, 24, 112, 12, 4);
AddToPic( vDiscoCustomers, L_HEAD_RIGHT, 2, 24, 136, 14, 4);
AddToPic( vDiscoCustomers, L_HEAD_RIGHT, 3, 105, 89, 4, 4);
AddToPic( vDiscoCustomers, L_HEAD_RIGHT, 4, 49, 136, 14, 4);
AddToPic( vDiscoCustomers, L_HEAD_RIGHT, 5, 98, 90, 4, 4);
}
if (turnHeadsToFloor) {
AddToPic( vDiscoCustomers, L_HEAD_UP, 1, 24, 112, 12, 4);
AddToPic( vDiscoCustomers, L_HEAD_UP, 2, 24, 136, 14, 4);
AddToPic( vDiscoCustomers, L_HEAD_UP, 3, 105, 89, 4, 4);
AddToPic( vDiscoCustomers, L_HEAD_UP, 4, 49, 136, 14, 4);
AddToPic( vDiscoCustomers, L_HEAD_UP, 5, 98, 90, 4, 4);
Reset( turnHeadsToFloor);
}
[*****
:exit [ test for leaving the room
[*****
if (edgeEgoHit == BOTTOM) {newRoom = rmOutsideDisco;}
if (cutToCloseup)
{
newRoom = rmFawnCloseup;
if (!lookedAtFawn)
{
Set( lookedAtFawn);
currentScore += 1;
}
}

110
RM24.MSG Normal file
View File

@ -0,0 +1,110 @@
[messages for room 24 -- rmInsideDisco
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"The disco is filled with remarkably similar guys, all looking for girls."
%message 2
"Don't mess around, Larry. Get out there and dance with her!"
%message 5
"Perhaps they're waiting for Fawn to return."
%message 6
"Not now, you're busy."
%message 8
"\"Come on, Larry. What are you waiting for?
I'm hot to get it on with you!\""
%message 19
"(What are you into this time, Larry?)"
%message 21
"\"Either give me some money, or I'll leave without you.\""
%message 22
"\"That's it! See ya later, chump!\""
%message 29
"You smile at the girl and say, \"May I join you?\""
%message 30
"And, of course she replies, \"Why, am I coming apart?\""
%message 31
"(Drum fill)"
%message 38
"You are sitting."
%message 39
"You are standing."
%message 40
"The dance floor is lit from below with brightly colored lights.
It is presently unused."
%message 41
"Evidently every guy here has been turned down by the only girl in the place.
Her beauty has them frozen in their tracks."
%message 42
"There isn't one. This place is run by computer.
(Besides, at this time of night DJ should be home with Chris.)"
%message 44
"Perhaps you should sit with her first."
%message 45
"She might listen to you, if you can establish eye contact."
%message 52
"\"Oooh, you're so sweet. I just love "
%message 53
"Sitting here brings back fond memories of those minutes you spent with
Fawn."
%message 54
"Your heart just isn't in it."
%message 55
"You miss her, don't you?"
%message 56
"Gosh, Larry. Maybe you should have loaned her some money!"
%message 57
"Funny, this is a dry club."
%message 59
"\"Not again. That trip through the ceiling gave me a headache!\""
%message 60
"You're being a little too direct again, Larry."
%message 61
"There's a gorgeous blond sitting at the table, and she's all alone!"
%message 62
"You can't sit there; she would think you rude to take her chair."
%message 63
"They seem to be staring at something they all want."
%message 66
"You can't sit there; she would think you rude to sit on top of her."

672
RM25.CG Normal file
View File

@ -0,0 +1,672 @@
[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;
}

210
RM25.MSG Normal file
View File

@ -0,0 +1,210 @@
[messages for room 25 -- rmInsideDisco
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"The disco is filled with remarkably similar guys, all looking for girls."
%message 2
"What a knock-out!
She has bright blue eyes, and a dazzling smile.
Your eyes roam her body, and what you see, you like.
She's sensational!!"
%message 3
"Larry, this MUST be love!"
%message 4
"\"Please,\" she says coyly, \"stop staring there.\""
%message 5
"Perhaps they're waiting for Fawn to return."
%message 6
"Not now, you're busy."
%message 7
"%m52dancing. I thought you'd never ask! Come on!!\""
%message 8
""
%message 9
"%m52roses.\""
%message 10
"%m52candy.\""
%message 11
"%m52diamonds.\""
%message 12
"It appears Fawn has caught you a \"little short,\" Larry.
Better try the casino, and hope for a run of good luck!"
%message 13
"\"Well, really. I'm not that kind of girl!!\""
%message 14
"%m52money.\""
%message 15
"\"Thanks, Larry. You won't regret this.
Meet me at the Marriage Chapel near the Casino in a few minutes.
I'll get us a room. Hurry, Larry, I can hardly wait!\""
%message 16
"\"Oooh, you're so sweet. I just LOVE you!
Larry, I want you to make wild, passionate love to me!\""
%message 17
"(All right, Larry. At last, you're gonna get lucky!!)"
%message 18
"She continues, \"But first, we must get married.
I could never make love to a man not my husband.
If you would loan me a hundred dollars,
I'd rent the Honeymoon Suite at the Casino Hotel for us.
Then, after we're married, we'll celebrate there.\""
%message 19
"\"You seem like a sweet, old-fashioned kind of guy,\"
she says with a beautiful smile."
%message 20
"\"What! At a time like this?!\""
%message 21
"\"Either give me some money, or I'll leave without you.\""
%message 22
"\"That's it! See ya later, chump!\""
%message 23
"\"Hi ya, Baby. What say you and me get it on?\""
%message 24
"Those beautiful eyes tell you this doll requires
more than your usual smooth talk."
%message 25
"\"Bad breath's one thing, Larry, but you could knock a buzzard off
a manure truck!!\""
%message 26
"She smiles and says, \"I'm just a girl who can't say no..."
%message 27
"(All right, Larry; this is what you've been waiting for!)"
%message 28
"\"...to nice presents,\" she concludes."
%message 29
"Her hair is beautiful, not thinning like some people we know."
%message 30
"\"So what?\""
%message 31
"Her lips are moist and inviting, but remember that you also thought that
about old Mrs. Bradley, your homeroom teacher!"
%message 32
"\"What's your name, beautiful?\" you ask."
%message 33
"\"Fawn,\" she replies."
%message 34
"Somehow you knew that."
%message 35
"\"I'm sorry, but I'll need at least a hundred dollars,\"
she says with a coy smile."
%message 36
"You fervently hope she'll wait for your return."
%message 37
"Conveniently, she offers, \"I'll wait right here until you return.\""
%message 38
"I AM the marrying type, but you must convince me."
%message 39
"\"How nice,\" she says, \"I love me, too.\""
%message 40
"The dance floor is lit from below with brightly colored lights.
It is presently unused."
%message 41
"Evidently every guy here has been turned down by the only
girl in the place.
Her beauty has them frozen in their tracks."
%message 42
"There isn't one. This place is run by computer.
(Besides, at this time of night DJ should be home with Chris.)"
%message 43
"\"Say, Larry,\" she chuckles, glancing downward,
\"is that a pez dispenser in your pocket, or are you just lonely?\""
%message 44
"\"Perhaps we shall,\" she replies, \"if you play your cards right!\""
%message 46
"\"Get lost, creep.\""
%message 47
"\"Hey, sweetheart. What's your sign?\" you ask her."
%message 48
"\"Octagonal,\" she replies. \"Like in 'STOP!'\""
%message 49
"\"My name is Larry,\" you offer. \"Larry Laffer.\""
%message 50
"\"I'd really like to get to know you better,\" you say.
\"What kind of girl are you, anyway?\""
%message 51
"(Oops.)"
%message 52
"\"Oooh, you're so sweet. I just love "
%message 57
"Funny, this is a dry club."
%message 58
"\"So, how about it, Larry?\" Fawn says in her petite voice.
\"May I have a measly hundred bucks, or not?\""
%message 59
"\"Not again. That trip through the ceiling gave me a headache!\""
%message 60
"SLAP!"
%message 61
"SLAP!\n\n
SLAP!!"
%message 63
"They seem to be staring at something they all want."
%message 64
"\"Uh, gosh, Fawn,\" you mumble. \"I've only got %v90 bucks on me!\""
%message 65
"Gee, Larry, this is working out swell."

189
RM3.CG Normal file
View File

@ -0,0 +1,189 @@
[logics for room 3 -- lgcQuestions1
[ "Leisure-Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm3.msg"
%include "gamedefs.h"
%define FIRST_QUESTION 1
%define LAST_QUESTION 53
%define toldLastQuestion lf1
%define allsWell lv0
%define question1 lv1
%define question2 lv2
%define question3 lv3
%define question4 lv4
%define question5 lv5
if (initLog)
{
if (forceAtest)
{
Print( 60);
currentQuestion = FIRST_QUESTION;
}
} [ end initLOG
if (!forceAtest)
{
:askAgain;
Random( FIRST_QUESTION, LAST_QUESTION, currentQuestion);
if ((currentQuestion == question1 ||
currentQuestion == question2 ||
currentQuestion == question3 ||
currentQuestion == question4 ||
currentQuestion == question5))
{
goto askAgain;
}
else
{
if (question == 1) {question1 = currentQuestion};
if (question == 2) {question2 = currentQuestion};
if (question == 3) {question3 = currentQuestion};
if (question == 4) {question4 = currentQuestion};
if (question == 5) {question5 = currentQuestion};
if (question == 6) {questionStatus = allDone;}
if (question == 5 &&
!toldLastQuestion)
{
Set( toldLastQuestion);
Print( 69);
}
++question;
}
}
if (currentQuestion == 1) {correctAnswer = 3;}
if (currentQuestion == 2) {correctAnswer = 2;}
if (currentQuestion == 3) {correctAnswer = 4;}
if (currentQuestion == 4) {correctAnswer = 3;}
if (currentQuestion == 5) {correctAnswer = 2;}
if (currentQuestion == 6) {correctAnswer = 1;}
if (currentQuestion == 7) {correctAnswer = 4;}
if (currentQuestion == 8) {correctAnswer = 0;}
if (currentQuestion == 9) {correctAnswer = 1;}
if (currentQuestion == 10) {correctAnswer = 2;}
if (currentQuestion == 11) {correctAnswer = 4;}
if (currentQuestion == 12) {correctAnswer = 3;}
if (currentQuestion == 13) {correctAnswer = 3;}
if (currentQuestion == 14) {correctAnswer = 1;}
if (currentQuestion == 15) {correctAnswer = 4;}
if (currentQuestion == 16) {correctAnswer = 2;}
if (currentQuestion == 17) {correctAnswer = 0;}
if (currentQuestion == 18) {correctAnswer = 3;}
if (currentQuestion == 19) {correctAnswer = 1;}
if (currentQuestion == 20) {correctAnswer = 0;}
if (currentQuestion == 21) {correctAnswer = 4;}
if (currentQuestion == 22) {correctAnswer = 4;}
if (currentQuestion == 23) {correctAnswer = 4;}
if (currentQuestion == 24) {correctAnswer = 2;}
if (currentQuestion == 25) {correctAnswer = 2;}
if (currentQuestion == 26) {correctAnswer = 4;}
if (currentQuestion == 27) {correctAnswer = 3;}
if (currentQuestion == 28) {correctAnswer = 1;}
if (currentQuestion == 29) {correctAnswer = 3;}
if (currentQuestion == 30) {correctAnswer = 4;}
if (currentQuestion == 31) {correctAnswer = 0;}
if (currentQuestion == 32) {correctAnswer = 0;}
if (currentQuestion == 33) {correctAnswer = 2;}
if (currentQuestion == 34) {correctAnswer = 4;}
if (currentQuestion == 35) {correctAnswer = 4;}
if (currentQuestion == 36) {correctAnswer = 2;}
if (currentQuestion == 37) {correctAnswer = 4;}
if (currentQuestion == 38) {correctAnswer = 2;}
if (currentQuestion == 39) {correctAnswer = 2;}
if (currentQuestion == 40) {correctAnswer = 2;}
if (currentQuestion == 41) {correctAnswer = 3;}
if (currentQuestion == 42) {correctAnswer = 3;}
if (currentQuestion == 43) {correctAnswer = 3;}
if (currentQuestion == 44) {correctAnswer = 1;}
if (currentQuestion == 45) {correctAnswer = 2;}
if (currentQuestion == 46) {correctAnswer = 2;}
if (currentQuestion == 47) {correctAnswer = 3;}
if (currentQuestion == 48) {correctAnswer = 1;}
if (currentQuestion == 49) {correctAnswer = 2;}
if (currentQuestion == 50) {correctAnswer = 3;}
if (currentQuestion == 51) {correctAnswer = 2;}
if (currentQuestion == 52) {correctAnswer = 4;}
if (currentQuestion == 53) {correctAnswer = 1;}
if (questionStatus != allDone)
{
if (forceAtest)
{
ClearLines( 23, 23, 0);
Display( 23, 0, 66);
PrintV( currentQuestion);
++currentQuestion;
if (!currentQuestion > LAST_QUESTION)
{
questionStatus = waitAwhile;
scriptTimer = 2;
}
else
{
questionStatus = allDone;
}
}
else
{
AcceptInput();
CancelLine();
PreventInput();
ClearLines( 22, 24, BG_COLOR);
Set( leaveWindow);
PrintV( currentQuestion);
lastChar = 0;
Display( 23, 0, 67);
SetScanStart();
if (!lastChar)
{
Return();
}
if (lastChar > 64 && [ ABCD
lastChar < 69)
{
lastChar += 32; [ Convert to abcd (lower case).
}
if ((lastChar < 97 ||
lastChar > 100))
{
Sound( sError, done);
Return();
}
ResetScanStart(); [ We've got a valid letter.
answer = lastChar;
lastChar = 0;
answer -= 96; [ Now answer between a and d.
message = 60; [ 1 less than first message #
message += answer;
y = 23;
x = 29;
DisplayV( y, x, message);
questionStatus = waitAwhile;
scriptTimer = 3;
}
}
[*****
:exit [ test for leaving the room
[*****

461
RM3.MSG Normal file
View File

@ -0,0 +1,461 @@
[messages for room 3 -- lgcQuestions2
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"\"Close Encounters of the Third Kind\" is about\n\n
a. politics in third-world\n
countries.\n
b. homo- and heterosexual\n
sex.\n
c. creatures from outer\n
space.\n
d. a bicycle race across\n
Alaska."
%message 2
"IBM stands for\n\n
a. Ittsy Bittsy Men.\n
b. International Business\n
Machines.\n
c. Italian Branch of the\n
Mafia.\n
d. Iranian Broom Makers."
%message 3
"Who was NOT in the movie \"Easy Rider?\"\n\n
a. Peter Fonda\n
b. Dennis Hopper\n
c. Karen Black\n
d. Karen Carpenter"
%message 4
"Las Vegas is famous for\n\n
a. its beaches.\n
b. being the capital of\n
Arizona.\n
c. gambling.\n
d. its weather."
%message 5
"The term \"Working Girl\" refers to\n\n
a. a secretary.\n
b. a lady of negotiable\n
virtue.\n
c. an industrious woman.\n
d. an employed female."
%message 6
"Making a \"Hole in One\" is\n\n
a. every golfer's dream.\n
b. too dirty to discuss\n
here.\n
c. something carpenters do.\n
d. best done with scissors."
%message 7
"My boss is\n\n
a. a jerk.\n
b. a total jerk.\n
c. an absolute total jerk.\n
d. responsible for my\n
paycheck."
%message 8
"How many programmers does it take to screw in a light bulb?\n\n
a. None, it's a hardware\n
problem.\n
b. None, programmers can't\n
fit in light bulbs.\n
c. 100. One to hold the\n
bulb and 99 to\n
debug the house.\n
d. None so far, but they'll\n
get to it\n
Real Soon Now."
%message 9
"A hard disk is\n\n
a. better than a floppy.\n
b. embarrassing to have at\n
the office.\n
c. a state-of-the-art\n
frisbee.\n
d. what happens when you\n
leave your floppy out\n
in the sun too long."
%message 10
"In some personal ads, TV stands for\n\n
a. television.\n
b. transvestite.\n
c. trans-venereal.\n
d. terre-voracic."
%message 11
"Lucy, Ricky, Fred and\n\n
a. Barney.\n
b. Carol.\n
c. Alice.\n
d. Ethel."
%message 12
"Mel Brooks is\n\n
a. black.\n
b. Puerto Rican.\n
c. a comedian.\n
d. Catholic."
%message 13
"It is customary to tip about\n\n
a. 2 per cent.\n
b. 6 per cent.\n
c. 15 per cent.\n
d. 25 per cent."
%message 14
"Blackjack is\n\n
a. an ace and a face card.\n
b. used by policemen.\n
c. related to Caucasian\n
Tom.\n
d. a kind of car sold only\n
in Fresno."
%message 15
"Canada is\n\n
a. where Canadians live.\n
b. north of the U. S.\n
c. adjacent to the U. S.\n
d. All of the above."
%message 16
"Oral Roberts is\n\n
a. a thermometer technique.\n
b. an evangelist.\n
c. best done with a friend.\n
d. shy."
%message 17
"Richard Nixon was\n\n
a. an audio technician.\n
b. a plumber's friend.\n
c. a comedian.\n
d. a president."
%message 18
"A 747 is\n\n
a. a cocktail.\n
b. a perfect bowling score.\n
c. a large airplane.\n
d. a prime number."
%message 19
"Whips, chains and handcuffs are\n\n
a. kinky.\n
b. used by police\n
departments.\n
c. usually in text\n
adventures.\n
d. only permitted in\n
Eastern schools."
%message 20
"A Macintosh is\n\n
a. a kind of Apple.\n
b. a kind of apple.\n
c. an article of clothing.\n
d. All of the above."
%message 21
"My parents are\n\n
a. age 10 to 25.\n
b. age 25 to 30.\n
c. age 31 to 35.\n
d. 36 or over."
%message 22
"My favorite actor is\n\n
a. Pia Zadora.\n
b. Fred Flintstone.\n
c. Jim Bakker.\n
d. not listed here."
%message 23
"I have hair on my\n\n
a. head.\n
b. palms.\n
c. keyboard.\n
d. lottsa places."
%message 24
"When it's noon in California in August, in St. Louis it's\n\n
a. miserable.\n
b. 2:00 p.m.\n
c. 3:00 p.m.\n
d. time for a beer."
%message 25
"The best \"pick-up\" line is:\n\n
a. Hey baby, what's your\n
sign?\n
b. Want to go for a ride\n
in my Porsche?\n
c. For a fat girl, you\n
sure don't sweat much!\n
d. Do you know where I can\n
buy some Vaseline?"
%message 26
"The \"Mile-High Club\" is\n\n
a. a bird-watching society.\n
b. a Denver ski club.\n
c. a bar in East L. A.\n
d. open to those who have\n
performed aerial\n
acrobatics inside a\n
plane's rest room."
%message 27
"My sex life is best described as\n\n
a. non-existent and non-\n
contemplated.\n
b. what sex life?\n
c. none of your business!!\n
d. a ripening tomato."
%message 28
"Elizabeth Taylor is\n\n
a. an actress.\n
b. creator of a line of\n
cosmetics.\n
c. celebrating her silver\n
wedding anniversary.\n
d. a singer."
%message 29
"Joan Rivers is\n\n
a. the real name of\n
\"Dear Abby.\"\n
b. engaged to\n
Johnny Carson.\n
c. a former talk show\n
hostess.\n
d. polite to all\n
those around her."
%message 30
"Who starred in \"Bedtime for Bonzo?\"\n\n
a. Clint Eastwood\n
b. Fred Astaire\n
c. Cary Grant\n
d. Ronald Reagan"
%message 31
"Taxes should be\n\n
a. lower.\n
b. higher.\n
c. unchanged.\n
d. eliminated."
%message 32
"A moon is\n\n
a. an astronomical body.\n
b. a practical joke.\n
c. a form of pie.\n
d. all of the above."
%message 33
"Marlon Brando is\n\n
a. a singer.\n
b. an actor.\n
c. a politician.\n
d. a kind of soap."
%message 34
"I am presently\n\n
a. in elementary school.\n
b. in junior high.\n
c. fighting acne.\n
d. past puberty."
%message 35
"Herpes is\n\n
a. caught from toilet\n
seats.\n
b. a French dessert.\n
c. socially desirable.\n
d. fatal (if given to\n
your spouse)."
%message 36
"ERA is an abbreviation for\n\n
a. Earnest Realtors of\n
America.\n
b. Equal Rights Amendment.\n
c. Erogenous Readers\n
Association.\n
d. Error Recovery\n
Associates."
%message 37
"G. Gordon Liddy was associated with\n\n
a. the Mob.\n
b. Calvin Klein.\n
c. Elizabeth Taylor.\n
d. the Plumbers."
%message 38
"What was illegal during Prohibition?\n\n
a. aphrodisiacs\n
b. alcohol\n
c. abstinence\n
d. perversion"
%message 39
"Bonnie and\n\n
a. Ronnie\n
b. Clyde\n
c. Hubbard\n
d. Clod"
%message 40
"Who spends the most time in Las Vegas?\n\n
a. Michael J. Fox\n
b. Wayne Newton\n
c. J. Paul Getty\n
d. Paul Volcker"
%message 41
"Which U. S. President was not elected to office?\n\n
a. Johnson\n
b. Eisenhower\n
c. Ford\n
d. Cleveland"
%message 42
"Which is not a currency?\n\n
a. yen\n
b. lira\n
c. fennel\n
d. rupee"
%message 43
"Which is not a baseball team?\n\n
a. Blue Jays\n
b. Cardinals\n
c. Seahawks\n
d. Orioles"
%message 44
"Who made a record album with a cover that looked like a pair of blue jeans,
complete with a working zipper?\n\n
a. Rolling Stones\n
b. Boy George\n
c. Olivia Newton Jean\n
d. Madonna"
%message 45
"The American television debut of Bob Hope,
Dinah Shore, Elvis, and the Beatles was on\n\n
a. \"The Ed Sullivan Show.\"\n
b. \"Your Show of Shows.\"\n
c. \"The Tonight Show.\"\n
d. \"My Mother, the Car.\""
%message 46
"Michael Doonesbury founded\n\n
a. the American Nazi Party.\n
b. Walden Puddle Commune.\n
c. the Young Republicans.\n
d. the Grace Jones\n
Fan Club."
%message 47
"The first baseball player to challenge the reserve clause was\n\n
a. Philly Jo Jones.\n
b. Roger Maris.\n
c. Curt Flood.\n
d. Ted Williams."
%message 48
"The first Negro to play Major League Baseball was\n\n
a. Jackie Robinson.\n
b. Joe DiMaggio.\n
c. Benny Goodman.\n
d. Satchel Paige."
%message 49
"Former Congressman Wilbur Mills went for a dip in the Tidal Basin with\n\n
a. nothing on but his\n
pride.\n
b. a stripper named Fanne.\n
c. his dog Spot.\n
d. a 20-year-old secretary."
%message 50
"Martha Mitchell was\n\n
a. a porno star.\n
b. a famous author.\n
c. the outspoken wife of an\n
Attorney General.\n
d. All of the above."
%message 51
"The G-Spot is supposed to be\n\n
a. Ground Zero at a nuclear\n
blast.\n
b. a female erogenous zone.\n
c. an unexplained astro-\n
nomical discovery.\n
d. the place where the FBI\n
was first established."
%message 52
"Hugh Hefner is usually photographed in\n\n
a. the nude.\n
b. a hot tub.\n
c. his current lover's\n
arms.\n
d. pajamas."
%message 53
"The 1973 album \"Dark Side of the Moon\" was recorded by\n\n
a. Pink Floyd.\n
b. Deep Purple.\n
c. Bad News.\n
d. the Grateful Dead."
%message 60
"Dynamic logic = 3."
%message 61
"a"
%message 62
"b"
%message 63
"c"
%message 64
"d"
%message 65
"So far, so good.\n\n
Now for the final question."
%message 66
"Question #%v96. Correct answer is %v93."
%message 67
"Please answer a, b, c, or d: "
%message 69
"So far, so good.\n\n
Now for the final question."

302
RM31.CG Normal file
View File

@ -0,0 +1,302 @@
[logics for room 31 -- rmInsideCasino
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm31.msg"
%include "gamedefs.h"
%define L_21_PLAYERS 0
%define L_21_GIRL 1
%define L_SLOT_PLAYERS 2
%define L_SLOT_WINNER 3
%define nearWrong21 lf0
%define near21 lf1
%define nearSlots lf2
%define dealing lf3
[%define lf4
[%define lf5
%define bjTimer lv0
%define slotTimer lv1
[%define lv2
[%define lv3
[%define lv4
%object a21Game 1
%object aSlotWinner 2
[%object a 3
if (initLog)
{
SetHorizon( 91);
LoadPic( currentRoom);
DrawPic( currentRoom);
DiscardPic( currentRoom);
LoadView( vCasinoPatrons);
[ LoadView( v);
AnimateObj( a21Game);
IgnoreBlocks( a21Game);
IgnoreObjs( a21Game);
SetView( a21Game, vCasinoPatrons);
SetLoop( a21Game, L_21_PLAYERS);
SetCel( a21Game, 0);
SetPriority( a21Game, 12);
Position( a21Game, 39, 121);
Draw( a21Game);
StopUpdate( a21Game);
bjTimer = 21;
AnimateObj( aSlotWinner);
SetView( aSlotWinner, vCasinoPatrons);
SetLoop( aSlotWinner, L_SLOT_WINNER);
SetCel( aSlotWinner, 0);
Position( aSlotWinner, 113, 128);
Draw( aSlotWinner);
StopUpdate( aSlotWinner);
slotTimer = 0;
LoadView( vCasinoInterior);
AddToPic( vCasinoInterior, 0, 0, 92, 116, 11, 4);
AddToPic( vCasinoInterior, 0, 0, 111, 140, 13, 4);
DiscardView( vCasinoInterior);
AddToPic( vCasinoPatrons, L_SLOT_PLAYERS, 0, 101, 128, 11, 0);
AddToPic( vCasinoPatrons, L_SLOT_PLAYERS, 1, 138, 153, 13, 0);
AddToPic( vCasinoPatrons, L_SLOT_PLAYERS, 2, 125, 153, 13, 0);
AddToPic( vCasinoPatrons, L_SLOT_PLAYERS, 3, 107, 104, 11, 4);
AddToPic( vCasinoPatrons, L_SLOT_PLAYERS, 4, 123, 126, 13, 4);
AddToPic( vCasinoPatrons, L_SLOT_PLAYERS, 5, 114, 105, 11, 4);
AddToPic( vCasinoPatrons, L_21_GIRL, 0, 35, 127, 13, 4);
[view, loop, cel, x, y, obj priority, box priority
if (previousRoom == rmElevatorBottom)
{
egoX = 75;
egoY = 93;
}
else
{
if ((previousRoom == rmSlots ||
previousRoom == rmBlackjack))
{
egoX = sourceX;
egoY = sourceY;
}
else
{
egoX = 77;
egoY = 167;
}
}
PositionV( ego, egoX, egoY);
Draw( ego);
ShowPic( );
Return( );
} [ end initLOG
Reset( nearSlots);
if ((Posn( ego, 106, 137, 140, 143) ||
Posn( ego, 108, 153, 120, 157) ||
Posn( ego, 89, 128, 98, 133) ||
Posn( ego, 88, 116, 98, 119)))
{
Set( nearSlots);
Set( nearPerson);
}
Reset( near21);
if (Posn( ego, 18, 133, 47, 154))
{
Set( near21);
Set( nearPerson);
}
Reset( nearWrong21);
if (Posn( ego, 31, 121, 60, 136))
{
Set( nearWrong21);
Set( nearPerson);
}
[*****
:handleInput
[*****
if (!haveInput) {goto noInput;}
if ((Said( look) ||
Said( look, room) ||
Said( look, casino) ||
Said( look, hall)))
{
Print( 1);
}
if ((Said( talk, man) ||
Said( talk, women) ||
Said( talk, people)))
{
if (near21)
{
Print( 10);
}
else
{
Print( 9);
}
}
if ((Said( look, man) ||
Said( look, women) ||
Said( look, people)))
{
Print( 6);
}
if ((Said( talk, blackjack, man) ||
Said( talk, blackjack, women) ||
Said( talk, blackjack, people) ||
Said( look, blackjack, table) ||
Said( look, blackjack, man) ||
Said( look, blackjack, women) ||
Said( look, blackjack, people)))
{
Print( 8);
}
if ((Said( look, table) ||
Said( look, blackjack) ||
Said( look, blackjack, table)))
{
if (nearWrong21)
{
Print( 3);
}
else
{
Print( 2);
}
}
if (Said( look, slots))
{
Print( 5);
}
if ((Said( bet, money) ||
Said( play) ||
Said( gamble, rol)))
{
Print( 7);
}
if ((Said( play, blackjack) ||
Said( sit) ||
Said( sit, stool) ||
Said( sit, down)))
{
if (nearWrong21)
{
Print( 3);
}
else
{
if (!near21)
{
Set( notCloseEnough);
}
else
{
Set( OK);
sourceX = egoX;
sourceY = egoY;
newRoom = rmBlackjack;
}
}
}
if ((Said( use, slot) ||
Said( pull, handle) ||
Said( put, money, slot) ||
Said( put, money, machine) ||
Said( play, slots)))
{
if (!nearSlots)
{
Set( notCloseEnough);
}
else
{
Set( OK);
sourceX = egoX;
sourceY = egoY;
newRoom = rmSlots;
}
}
[*****
:noInput
[*****
--slotTimer;
if (slotTimer == 1)
{
SetCel( aSlotWinner, 0);
StopUpdate( aSlotWinner);
ForceUpdate( aSlotWinner);
Random( 33, 77, bjTimer);
}
if (slotTimer == 21)
{
StartUpdate( aSlotWinner);
}
--bjTimer;
if (bjTimer == 1)
{
Toggle( dealing);
if (!dealing)
{
SetCel( a21Game, 0);
StopUpdate( a21Game);
ForceUpdate( a21Game);
Random( 55, 222, slotTimer);
}
else
{
StartUpdate( a21Game);
Random( 11, 33, bjTimer);
}
}
[*****
:exit [ test for leaving the room
[*****
if (edgeEgoHit == BOTTOM) {newRoom = rmOutsideCasino;}
if (edgeEgoHit == TOP) {newRoom = rmElevatorBottom;}

40
RM31.MSG Normal file
View File

@ -0,0 +1,40 @@
[messages for room 31 -- rmInsideCasino
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"You are in the casino.
There are slot machines to the right, and blackjack tables to the left.
This place is a gambler's paradise!"
%message 2
"The front blackjack table is presently unoccupied."
%message 3
"The rear blackjack table is rather busy now. Try the front table."
%message 4
"Move to an unoccupied slot machine first."
%message 5
"At least one person appears to be winning at the slot machines.
Perhaps you could too."
%message 6
"They appear to be having a great time. Perhaps you'd like to join them?"
%message 7
"Move to a slot machine and put in some money.
Or, find an empty blackjack table and sit down."
%message 8
"You could, if you'd sit down first."
%message 9
"Don't interrupt them; they're trying to win."
%message 10
"Casino dealers are notoriously silent."

472
RM32.CG Normal file
View File

@ -0,0 +1,472 @@
[logics for room 32 -- rmOutsideCasino
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm32.msg"
%include "gamedefs.h"
%define L_SIGN 0
%define L_DOOR 1
%define L_DOOR_WITH_EGO 2
%define nearDoor lf0
%define doorsOpen lf1
%define manDone lf2
%define doorDone lf3
%define nearMan lf4
%define manOnScreen lf5
%define manScript lv0
%define manTimer lv1
%object aDoor1 1
%object aDoor2 2
%object aMan 3
%object aSign 4
if (initLog)
{
if (watchHours > 4 && [ Anything after 5 am.
watchHours < 10)
{
NewRoom( rmSunrise);
}
SetHorizon( 107);
LoadPic( currentRoom);
DrawPic( currentRoom);
DiscardPic( currentRoom);
LoadLogics( lgcStreet);
LoadView( vCasinoExterior);
Random( 1, 3, work);
[ Set( forceAtest);
if (forceAtest)
{
work = 1;
}
if (currentStatus == NORMAL &&
work == 1 &&
ObjInRoom( iApple, currentRoom))
{
LoadView( vCasinoManInBarrel);[ View.132
AnimateObj( aMan);
SetView( aMan, vCasinoManInBarrel);
Position( aMan, 120, 131);
Random( 4, 7, manTimer);
ObjectOnLand( aMan);
}
AnimateObj( aDoor1);
IgnoreBlocks( aDoor1);
IgnoreObjs( aDoor1);
SetView( aDoor1, vCasinoExterior);
SetLoop( aDoor1, L_DOOR);
FixLoop( aDoor1);
SetCel( aDoor1, 0);
StopCycling( aDoor1);
AnimateObj( aDoor2);
IgnoreBlocks( aDoor2);
IgnoreObjs( aDoor2);
SetView( aDoor2, vCasinoExterior);
SetLoop( aDoor2, L_DOOR);
FixLoop( aDoor2);
SetCel( aDoor2, 1);
StopCycling( aDoor2);
if (slowProcessor)
{
AddToPic( vCasinoExterior, L_SIGN, 1, 51, 61, 4, 4);
[view, loop, cel, x, y, obj priority, box priority
}
else
{
AnimateObj( aSign);
IgnoreHorizon( aSign);
IgnoreBlocks( aSign);
IgnoreObjs( aSign);
SetView( aSign, vCasinoExterior);
SetLoop( aSign, L_SIGN);
Position( aSign, 51, 61);
Draw( aSign);
}
if (previousRoom == rmInsideCasino)
{
egoX = 75;
egoY = 109;
SetLoop( ego, FACING_FRONT);
Position( aDoor1, 57, 108);
Position( aDoor2, 88, 108);
Draw( aDoor1);
Draw( aDoor2);
Set( doorsOpen);
}
else
{
Position( aDoor1, 67, 108);
Draw( aDoor1);
Position( aDoor2, 78, 108);
Draw( aDoor2);
if (previousRoom == rmDarkAlley)
{
egoX = 0;
egoY = 141;
}
else
{
if (previousRoom != rmOutsideChapel)
{
egoX = 77;
egoY = 155;
}
}
}
PositionV( ego, egoX, egoY);
Draw( ego);
ObjectOnAnything( ego);
Call( lgcStreet);
ShowPic( );
Return( );
} [ end initLOG
Reset( nearMan);
Distance( aMan, ego, work);
if (manOnScreen && work < 25)
{
Set( nearMan);
}
Reset( nearDoor);
if (Posn( ego, 63, 100, 86, 113))
{
Set( nearDoor);
}
if (manScript == 3) [ Waiting to buy apple.
{
Distance( aMan, ego, work);
if (work < ERROR &&
work > 20) [ Ego walked away from him.
{
Print( 10);
Set( manDone);
manScript = 1;
manTimer = 0;
}
}
[*****
:handleInput
[*****
if (!haveInput) {goto noInput;}
if ((Said( look) ||
Said( look, building) ||
Said( look, room) ||
Said( look, casino) ||
Said( look, hotel)))
{
Print( 1);
}
if ((Said( look, plant) ||
Said( look$in, plant) ||
Said( look$in, pot) ||
Said( look, pot)))
{
Print( 15);
}
if (Said( open, door))
{
if (nearTaxi)
{
Reset( haveMatch);
}
else
{
Print( 16);
}
}
if (Said( look, wall))
{
Print( 20);
}
if ((Said( look, window) ||
Said( look, glass) ||
Said( look, door) ||
Said( look, glass, door) ||
Said( look$in, glass)))
{
Print( 17);
}
if (manOnScreen)
{
if (Said( look, man))
{
Print( 5);
}
if (Said( talk, man))
{
if (!nearMan)
{
Set( notCloseEnough);
}
else
{
if (Has( iApple))
{
Print( 19);
}
else
{
if (manScript < 3)
{
Print( 18);
}
else
{
Print( 6);
}
}
}
}
if ((Said( ask, name) ||
Said( ask, man, his, name) ||
Said( get, name) ||
Said( ask, his, name) ||
Said( ask, man, name) ||
Said( name) ||
Said( name, man) ||
Said( man, name)))
{
if (!nearMan)
{
Set( notCloseEnough);
}
else
{
Print( 7);
}
}
if ((manScript == 2 ||
manScript == 3))
{
if ((Said( no) ||
Said( get, lost, rol) ||
Said( go, away, rol) ||
Said( hump, off, rol) ||
Said( no, thanks)))
{
Print( 12);
Set( manDone);
manScript = 3;
manTimer = 0;
}
}
if ((Said( ask, last, name) ||
Said( last, name) ||
Said( last, name, man) ||
Said( man, last, name)))
{
if (!nearMan)
{
Set( notCloseEnough);
}
else
{
Print( 8);
}
}
if (Said( take, barrel))
{
if (!nearMan)
{
Set( notCloseEnough);
}
else
{
Print( 13);
}
}
if (Said( look$in, barrel))
{
if (!nearMan)
{
Set( notCloseEnough);
}
else
{
Print( 14);
}
}
if ((Said( buy, rol) ||
Said( give, money, man) ||
Said( pay, rol)))
{
if (!nearMan)
{
Set( notCloseEnough);
}
else
{
if (!ObjInRoom( iApple, currentRoom))
{
Print( 11);
}
else
{
currentScore += 3;
Print( 9);
Get( iApple);
--dollars;
Set( manDone);
manTimer = 0;
manScript = 3;
}
}
}
}
[*****
:noInput
[*****
if (aSecondPassed)
{
--manTimer;
if (manTimer == 1)
{
Set( manDone);
}
}
if (manScript == 3 && edgeEgoHit)
{
Print( 4);
}
if (manScript == 4 && objHitEdge == aMan)
{
Set( manDone);
}
if (manDone)
{
Reset( manDone);
++manScript;
if (manScript == 1)
{
Draw( aMan);
Set( manOnScreen);
manScript = 2; [ So we can make him chase ego again later.
}
if (manScript == 2)
{
StartCycling( aMan);
FollowEgo( aMan, 8, manDone);
}
if (manScript == 3)
{
manTimer = 11;
StopCycling( aMan);
Print( 2);
Print( 3);
Set( nearPerson);
}
if (manScript == 4)
{
StartCycling( aMan);
Wander( aMan);
}
if (manScript == 5)
{
Erase( aMan);
Reset( manOnScreen);
manScript = 0;
}
}
if (nearDoor)
{
IgnoreBlocks( ego);
ObserveObjs( aDoor1);
ObserveObjs( aDoor2);
ObserveObjs( ego);
if (!doorsOpen)
{
Set( doorsOpen);
MoveObj( aDoor1, 57, 108, 1, done);
MoveObj( aDoor2, 88, 108, 1, done);
}
}
else
{
ObserveBlocks( ego);
if (doorsOpen)
{
Reset( doorsOpen);
IgnoreObjs( aDoor1);
IgnoreObjs( aDoor2);
MoveObj( aDoor1, 67, 108, 1, done);
MoveObj( aDoor2, 78, 108, 1, done);
}
}
[*****
:exit [ test for leaving the room
[*****
Call( lgcStreet);
if (edgeEgoHit == TOP) {newRoom = rmInsideCasino;}
if (edgeEgoHit == RIGHT) {newRoom = rmOutsideChapel;}
if (edgeEgoHit == LEFT) {newRoom = rmDarkAlley;}

75
RM32.MSG Normal file
View File

@ -0,0 +1,75 @@
[messages for room 32 -- rmOutsideCasino
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"It's a casino!"
%message 2
"\"Hello, sir.
Would you help out a poor unfortunate by purchasing an apple?\""
%message 3
"\"The price is reasonable: only $1.00.\""
%message 4
"\"I take that as a 'No,'\" he says pleasantly.
\"Very well then, perhaps some other time.\""
%message 5
"He's yet another poor soul who donated his everything so the shrine
of Lost Wages could continue to flourish."
%message 6
"\"My pleasure was always the slot machines,\" he says.
\"Say, are we going to stand here and chitchat all night,
or am I going to make a sale?\""
%message 7
"\"Why, Steve. Nice of you to ask,\" he responds."
%message 8
"\"Well, my friends call me 'Woz,' but I don't consider you a friend.\""
%message 9
"\"Thank you very much, sir.
Please call again, whenever you are in the neighborhood,\"
says the man. And with that, he walks away into the night."
%message 10
"\"Hey, come back!\" says the man.
\"Are you sure you don't want to buy an apple?\""
%message 11
"\"You know,\" says the man, peering deep into his barrel,
\"I'm all out! But thank you for your continued interest.\""
%message 12
"\"Ok, be that way!\" he says, and disappears into the night."
%message 13
"\"Oh no, you don't!\" exclaims the man."
%message 14
"\"Say, you really did lose everything,\" you tell the man."
%message 15
"They are nicely manicured, but of no help to you."
%message 16
"They're automatic. Get closer."
%message 17
"Pretty flashy, eh?"
%message 18
"\"Apples. Apples! APPLES for sale!!\""
%message 19
"\"Thanks a lot. See you later, pal.\""
%message 20
"Isn't it wonderful what can be done with a few light bulbs?"

252
RM33.CG Normal file
View File

@ -0,0 +1,252 @@
[logics for room 33 -- rmOutsideChapel
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm33.msg"
%include "gamedefs.h"
[ %define L_DOORS 2
%define nearDoor lf0
%define doorOpenDone lf1
%define nearFlasher lf2
%define coatOpen lf3
%object aDoor 1
%object aSign 2
%object aFlasher 3
if (initLog)
{
if (watchHours > 4 && [ Anything after 5 am.
watchHours < 10)
{
NewRoom( rmSunrise);
}
LoadPic( currentRoom);
DrawPic( currentRoom);
DiscardPic( currentRoom);
LoadLogics( lgcStreet);
LoadView( vChapelExterior);
LoadView( vFlasher);
AnimateObj( aFlasher);
SetView( aFlasher, vFlasher);
SetCel( aFlasher, 0);
Position( aFlasher, 129, 145);
Draw( aFlasher);
StopCycling( aFlasher);
AnimateObj( aDoor);
IgnoreHorizon( aDoor);
IgnoreBlocks( aDoor);
IgnoreObjs( aDoor);
SetView( aDoor, vChapelExterior);
SetLoop( aDoor, 2);
SetCel( aDoor, 0);
Position( aDoor, 83, 114);
Draw( aDoor);
work = DOOR_CYCLE_TIME;
CycleTime( aDoor, work);
StopUpdate( aDoor);
AddToPic( vChapelExterior, 1, 0, 63, 60, 4, 4);
[view, loop, cel, x, y, obj priority, box priority
AnimateObj( aSign);
IgnoreHorizon( aSign);
IgnoreBlocks( aSign);
IgnoreObjs( aSign);
SetView( aSign, vChapelExterior);
SetLoop( aSign, 0);
Position( aSign, 86, 42);
CycleTime( aSign, two);
Draw( aSign);
if (previousRoom == rmInsideChapel)
{
egoX = 93;
egoY = 116;
SetLoop( ego, FACING_FRONT);
Reset( programControl);
}
else
{
if (previousRoom == rmDarkAlley)
{
egoX = 153;
egoY = 138;
}
}
PositionV( ego, egoX, egoY);
Draw( ego);
Call( lgcStreet);
ShowPic( );
Return( );
} [ end initLOG
Reset( nearDoor);
if (Posn( ego, 80, 115, 105, 120))
{
Set( nearDoor);
}
Reset( nearFlasher);
if (Posn( ego, 120, 129, 142, 144))
{
Set( nearFlasher);
Set( nearPerson);
}
[*****
:handleInput
[*****
if (!haveInput) {goto noInput;}
if ((Said( look) ||
Said( look, room) ||
Said( look, building) ||
Said( look, chapel)))
{
Print( 1);
}
if (Said( look, man))
{
if (!coatOpen)
{
Print( 4);
}
else
{
Print( 5);
}
}
if (Said( talk, man, anyword, rol))
{
Print( 12);
}
if (Said( talk, man))
{
if (!coatOpen)
{
Print( 6);
Print( 7);
}
else
{
Print( 8);
if (!talkedToFlasher)
{
Set( talkedToFlasher);
currentScore += 1;
}
}
}
if ((Said( get, coat, rol) ||
Said( anyword, man, rol)))
{
Print( 9);
}
if (Said( look, door))
{
if (nearTaxi)
{
Reset( haveMatch);
}
else
{
Print( 2);
}
}
if (Said( open, door))
{
if (nearTaxi)
{
Reset( haveMatch);
}
else
{
if (!nearDoor)
{
Set( notCloseEnough);
}
else
{
Set( OK);
StopMotion( ego);
Set( programControl);
StartUpdate( aDoor);
EndOfLoop( aDoor, doorOpenDone);
}
}
}
if ((Said( look, fence) ||
Said( climb, fence) ||
Said( climb, over, fence) ||
Said( look, over, fence)))
{
Print( 10);
}
[*****
:noInput
[*****
if (nearFlasher)
{
if (!coatOpen)
{
Set( coatOpen);
EndOfLoop( aFlasher, done);
}
}
else
{
if (coatOpen)
{
Reset( coatOpen);
BeginningOfLoop( aFlasher, done);
}
}
[*****
:exit [ test for leaving the room
[*****
Call( lgcStreet);
if (doorOpenDone)
{
Reset( programControl);
newRoom = rmInsideChapel;
}
if (edgeEgoHit == LEFT) {newRoom = rmOutsideCasino;}
if (edgeEgoHit == RIGHT) {newRoom = rmDarkAlley;}

42
RM33.MSG Normal file
View File

@ -0,0 +1,42 @@
[messages for room 33 -- rmOutsideChapel
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"You are outside a romantic, quickie marriage parlor."
%message 2
"It's a door. Try opening it."
%message 3
"Funny. No one knocks back."
%message 4
"It's a guy wearing a trench coat."
%message 5
"It's obvious he doesn't have much to hide!"
%message 6
"You greet the stranger in the trench coat."
%message 7
"\"Hey, sonny! Come over here!!\" he replies."
%message 8
"\"Say,\" you ask him. \"By any chance, is your name Shorty?\""
%message 9
"You have better things to do than mess around with this pervert."
%message 10
"It's there to keep you from going that way!"
%message 11
"Strange, you think."
%message 12
"He doesn't reply."

448
RM34.CG Normal file
View File

@ -0,0 +1,448 @@
[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);
}
}

147
RM34.MSG Normal file
View File

@ -0,0 +1,147 @@
[messages for room 34 -- rmInsideChapel
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"You are in a quickie marriage parlor.
A flashing neon sign on the rear wall asks:
\"Why wait? Marry the girl of your dreams, today!
You provide the girl, we'll do the rest for only $100!!\""
%message 2
"Fawn is waiting for you at the altar. Go for it, Larry!"
%message 3
"The minister intones in his basso voice..."
%message 4
"\"Dearly beloved, we are gathered together today in the sight of,
er, ah, um... each other,
to enter these two people into the eternal bonds of marriage.\""
%message 5
"\"But before we really get rollin', I'd like to say a few words.\n\n
Many's the marriage that I've performed here, in this little chapel,
wearing this cheap suit, before those shiny plastic-covered pews,
with these electric candles,
looking at those genuine plexiglas stained-glass windows,
for these measly few bucks...\""
%message 6
"(He pauses for another nip from his pocket flask.)"
%message 7
"\"Where was I?\" he hiccups."
%message 8
"\"Digressing,\" you answer."
%message 9
"\"Oh, well, have you got a ring?\" he asks."
%message 10
"\"Yep,\" you reply. \"She's wearing it.\""
%message 11
"\"Good enough for me! Have you got a hundred bucks?\""
%message 12 [ Skip to message 21, if dollars > 100
"\"Of course,\" you reply, forking over your dough."
%message 13
"\"Not me,\" you reply. \"I thought this was a temple of love!\""
%message 14
"\"Sorry, buddy, you two are SOL until you can come back here with
100 cold, hard ones!\" he says indignantly, as he pushes between you
and heads for the door."
%message 15
"Well, Larry, it looks like you're going to have to leave your new bride
waiting at the altar, while you generate a little positive cash flow!"
%message 16
"As you leave, she says, \"Hurry back, Larry, I don't know how long I
can wait before I have you!\""
%message 17
"\"By the way, Larry,\" she asks. \"What does SOL stand for?\""
%message 18
"\"Why, Sierra On-Line, I presume!\" you respond."
%message 19
"(Drum fill)"
%message 20
"\"Wait here, Fawn baby! I'll be back in a flash!!\""
%message 21
"\"Ok, close enough.
I now pronounce you man and wife, till death do you part,
or until you get tired of each other,
per the currently acceptable social standards!\""
%message 22
"\"You may kiss the bride,\" he says,
scurrying out the door to refill his flask."
%message 23
"\"Not now; that can wait,\" Fawn says with a smile.
\"I'll meet you at the Casino Hotel's honeymoon suite,
and give you a lot more than kisses, my big, strong, handsome sweetheart!!\""
%message 24
"\"Hey!\" you shout, \"Wait for me!!\""
%message 25
"Somehow this entire ceremony was less than you expected.
The sacred bonds of marriage certainly get tied loosely in this joint!"
%message 26
"It's customary to position yourself to the bride's right."
%message 27
"\"So... shall we try again?\""
%message 28
"You can't see through the \"stained glass\" windows.
They're fake, like everything else about this place."
%message 29
"Seems like everything here is covered in plastic."
%message 30
"The plastic covers are so slick, you'd probably slide right off."
%message 31
"Perhaps you should find a mate, mate!"
%message 32
"You can barely tell they're made from pressed sawdust."
%message 33
"Who'd want them?"
%message 34
"He looks a lot like his brother,
the bad comedian in the Lizard Lounge."
%message 35
"\"Make up your mind, son. Time is money!\""
%message 36
"\"Don't stand around talking, Larry,\" says Fawn. \"Let's get married!!\""
%message 37
"What an old romantic!"
%message 38
"You wonder why Michelangelo didn't use dropped fluorescents on
his big ceiling job."
%message 39
"It's not your birthday!"

570
RM35.CG Normal file
View File

@ -0,0 +1,570 @@
[logics for room 35 -- rmElevators
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm35.msg"
%include "gamedefs.h"
[ There is an ashtray near the planter. Look ash tray. "get passcard"
[ script == 0 begins the raise elevator sequence;
[ script == 100 lowers the elevator to the bottom and releases ego.
[ #define L_EMPTY 0
[ #define L_FLOOR 1
[ #define L_DOORS 2
[ #define L_WITH_EGO 3
%define CEILING_Y 37
%define FLOOR_Y 118
%define inElevator lf0
%define nearAshTray lf1
%define elevatorMoving lf4
%define nearBrokenPhone lf5
%object aElevator 1
%object aDoor 2
%object aFloor 3
%object aNumber 4
%object aAshtray 5
if (initLog)
{
SetHorizon( 1);
LoadPic( currentRoom);
DrawPic( currentRoom);
DiscardPic( currentRoom);
LoadView( vElevator);
LoadView( vElevatorNumbers);
LoadView( vEgoPushingElevator);
LoadView( vEgo);
LoadView( vAshtray);
[ LoadView( v);
AnimateObj( aAshtray);
IgnoreBlocks( aAshtray);
SetView( aAshtray, vAshtray);
if (ObjInRoom( iDiscoPass, currentRoom))
{
SetCel( aAshtray, 0);
}
else
{
SetCel( aAshtray, 1);
}
Position( aAshtray, 77, 159);
StopCycling( aAshtray);
Draw( aAshtray);
StopUpdate( aAshtray);
AnimateObj( aNumber);
IgnoreBlocks( aNumber);
IgnoreObjs( aNumber);
SetView( aNumber, vElevatorNumbers);
SetPriority( aNumber, 5);
Position( aNumber, 73, 91);
SetCel( aNumber, 1);
StopCycling( aNumber);
AnimateObj( aDoor);
IgnoreBlocks( aDoor);
IgnoreObjs( aDoor);
SetView( aDoor, vElevator);
SetLoop( aDoor, L_DOORS);
FixLoop( aDoor);
SetPriority( aDoor, 4);
Position( aDoor, 73, 108);
work = DOOR_CYCLE_TIME;
CycleTime( aDoor, work);
AnimateObj( aFloor);
IgnoreBlocks( aFloor);
IgnoreObjs( aFloor);
SetView( aFloor, vElevator);
SetLoop( aFloor, L_FLOOR);
FixLoop( aFloor);
Position( aFloor, 73, 118);
SetPriority( aFloor, 5);
AnimateObj( aElevator);
IgnoreBlocks( aElevator);
IgnoreObjs( aElevator);
SetView( aElevator, vElevator);
SetPriority( aElevator, 11);
FixLoop( aElevator);
StepSize( aElevator, two);
if (currentStatus == IN_ELEVATOR)
{
Set( elevatorMoving);
currentStatus = IN_ELEVATOR;
SetLoop( aElevator, L_WITH_EGO);
LastCel( aElevator, work);
SetCelV( aElevator, work);
StopCycling( aElevator);
Position( aElevator, 73, 36);
Draw( aElevator);
MoveObj( aElevator, 73, 118, 2, scriptDone);
script = 100;
Draw( aDoor);
StopUpdate( aDoor);
Draw( aNumber);
SetView( ego, vEgo);
SetLoop( ego, FACING_FRONT);
SetPriority( ego, 12);
egoX = 75;
egoY = 119;
[ Don't Draw ego!
}
else
{
Draw( aFloor);
StopUpdate( aFloor);
SetLoop( aElevator, L_EMPTY);
SetCel( aElevator, 0);
Position( aElevator, 73, 118);
Draw( aElevator);
StopUpdate( aElevator);
if (previousRoom == rmLounge)
{
egoX = 128;
egoY = 104;
SetLoop( ego, FACING_LEFT);
PositionV( ego, egoX, egoY);
Draw( ego);
StartMotion( ego);
}
else
{
if (!previousRoom)
{
egoX = 75;
egoY = 115;
}
PositionV( ego, egoX, egoY);
Draw( ego);
}
}
IgnoreObjs( ego);
ShowPic( );
Return( );
} [ end initLOG
Reset( inElevator);
if (Posn( ego, 70, 110, 83, 120))
{
Set( inElevator);
}
Reset( nearBrokenPhone);
if (Posn( ego, 96, 101, 111, 106))
{
Set( nearBrokenPhone);
}
Reset( nearAshTray);
if (Posn( ego, 62, 155, 87, 163))
{
Set( nearAshTray);
}
if (egoY > 119 && egoY < 133)
{
SetPriority( ego, 12);
}
else
{
ReleasePriority( ego);
}
[*****
:handleInput
[*****
if (!haveInput) {goto noInput;}
if (elevatorMoving && !haveMatch)
{
if ((Said( listen) ||
Said( sing) ||
Said( sing, along)))
{
Print( 7);
}
else
{
Set( haveMatch);
Print( 5);
}
}
if ((Said( up) ||
Said( down)))
{
Print( 4);
}
if ((Said( look) ||
Said( look, room) ||
Said( look, wall) ||
Said( look, elevator)))
{
if (inElevator)
{
Print( 2);
Print( 3);
}
else
{
Print( 1);
}
}
if (Said( look$in, plants))
{
if (inElevator)
{
Set( notCloseEnough);
}
else
{
Print( 10);
}
}
if (Said( look, plants))
{
if (inElevator)
{
Print( 6);
Print( 8);
}
else
{
Print( 10);
}
}
if (Said( close, door))
{
if (inElevator)
{
Print( 15);
}
else
{
Print( 16);
}
}
if ((Said( look, ashtray) ||
Said( look$in, ashtray)))
{
if (egoY < 150)
{
Print( 14);
}
else
{
if (ObjInRoom( iDiscoPass, currentRoom))
{
Print( 12);
}
else
{
Print( 13);
}
}
}
if (Said( anyword, ashtray))
{
if (egoY < 150)
{
Print( 14);
}
else
{
if (ObjInRoom( iDiscoPass, currentRoom))
{
Print( 12);
}
else
{
Print( 18);
}
}
}
if ((Said( get, pass) ||
Said( get, card)))
{
if (!nearAshTray)
{
Set( notCloseEnough);
}
else
{
if (!ObjInRoom( iDiscoPass, currentRoom))
{
Set( alreadyGotIt);
}
else
{
SetCel( aAshtray, 1);
ForceUpdate( aAshtray);
Get( iDiscoPass);
currentScore += 1;
Set( OK);
}
}
}
if ((Said( look, phone) ||
Said( use, phone) ||
Said( make, phone, call) ||
Said( dial, phone)))
{
if (!nearBrokenPhone)
{
Set( notCloseEnough);
}
else
{
Print( 21);
}
}
if ((Said( get, gum) ||
Said( remove, gum)))
{
if (!nearBrokenPhone)
{
Set( notCloseEnough);
}
else
{
Print( 22);
}
}
if ((Said( look, phone, book) ||
Said( look, book)))
{
if (!nearBrokenPhone)
{
Set( notCloseEnough);
}
else
{
Print( 20);
}
}
if ((Said( answer, phone) ||
Said( get, phone) ||
Said( answer)))
{
if (!nearBrokenPhone)
{
Set( notCloseEnough);
}
else
{
Print( 19);
}
}
if (!script && inElevator)
{
if ((Said( press, one) ||
Said( press, button, one) ||
Said( one)))
{
destinationFloor = 1;
Set( scriptDone);
}
if ((Said( press, two) ||
Said( press, button, two) ||
Said( two)))
{
destinationFloor = 2;
Set( scriptDone);
}
if ((Said( press, three) ||
Said( press, button, three) ||
Said( three)))
{
destinationFloor = 3;
Set( scriptDone);
}
if ((Said( press, four) ||
Said( press, button, four) ||
Said( four)))
{
destinationFloor = 4;
Set( scriptDone);
}
if ((Said( press, five) ||
Said( press, button, five) ||
Said( five)))
{
destinationFloor = 5;
Set( scriptDone);
}
if ((Said( press, six) ||
Said( press, button, six) ||
Said( six)))
{
destinationFloor = 6;
Set( scriptDone);
}
if ((Said( press, seven) ||
Said( press, button, seven) ||
Said( seven)))
{
destinationFloor = 7;
Set( scriptDone);
}
if ((Said( press, eight) ||
Said( press, button, eight) ||
Said( eight)))
{
destinationFloor = 8;
Set( scriptDone);
}
if ((Said( push, rol) ||
Said( push, button, rol)))
{
Print( 4);
}
}
[*****
:noInput
[*****
if (scriptDone)
{
Reset( scriptDone);
++script;
if (script == 1)
{
Set( elevatorMoving);
currentStatus = IN_ELEVATOR;
StopMotion( ego);
Set( programControl);
SetView( ego, vEgoPushingElevator);
SetCel( ego, 0);
RepositionTo( ego, 76, 117);
CycleTime( ego, three);
Set( keepCycling);
EndOfLoop( ego, scriptDone);
}
if (script == 2)
{
Erase( ego);
SetView( ego, vEgo);
SetLoop( aElevator, L_WITH_EGO);
SetCel( aElevator, 0);
CycleTime( aElevator, three);
EndOfLoop( aElevator, scriptDone);
}
if (script == 3)
{
Erase( aFloor);
Draw( aDoor);
Draw( aNumber);
StopCycling( aElevator);
if (destinationFloor == 1)
{
Print( 9);
script = 101; [ We'll catch it immediately.
}
else
{
MoveObj( aElevator, 73, 36, 2, scriptDone);
}
}
if (script == 4)
{
newRoom = rmElevators;
}
if (script == 101) [ He's at bottom; let him out.
{
Erase( aDoor);
Erase( aNumber);
CycleTime( aElevator, two);
StartCycling( aElevator);
BeginningOfLoop( aElevator, scriptDone);
}
if (script == 102)
{
Reset( elevatorMoving);
currentStatus = NORMAL;
destinationFloor = 0;
script = 0;
SetLoop( aElevator, L_EMPTY);
Draw( aFloor);
SetView( ego, vEgo);
SetLoop( ego, FACING_FRONT);
SetCel( ego, 0);
Position( ego, 76, 116);
Draw( ego);
StartMotion( ego);
Reset( programControl);
CycleTime( ego, one);
Reset( keepCycling);
}
}
[*****
:exit [ test for leaving the room
[*****
if (edgeEgoHit == BOTTOM) {newRoom = rmInsideCasino;}
if (Posn( ego, 131, 101, 132, 106)) {newRoom = rmLounge;}

79
RM35.MSG Normal file
View File

@ -0,0 +1,79 @@
[messages for room 35 -- rmElevators
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"The entrance to the Cabaret Lounge is to the right, by the telephone.
A glass elevator awaits you.
An ashtray is in front of the planter."
%message 2
"You are inside the glass elevator.
Your favorite kind of music is playing.
You hum along, insipidly."
%message 3
"There are buttons labeled \"one\" through \"eight.\""
%message 4
"Type a word, like \"one\" or \"two.\""
%message 5
"Whee!"
%message 6
"You know, the people on those plants look like ants from up here."
%message 7
"\"strangers in the night, da da da dee da...\""
%message 8
"Those ARE ants, you fool; we haven't left the ground yet!"
%message 9
"Wasn't that a fast ride!"
%message 10
"They're of your favorite species: polyvinyl chloride.
There is an ashtray in front of the planter."
%message 11
"You carefully remove the card from the cancerous remains in the ashtray.
It's a valid pass to the disco!"
%message 12
"There's some kind of card in the ashtray."
%message 13
"Yuck!"
%message 14
"Where?"
%message 15
"The doors close whenever you choose a floor."
%message 16
"Go inside and push a button."
%message 17
"It's of no interest."
%message 18
"The ashtray is of no further interest since you have the card."
%message 19
"It's not ringing."
%message 20
"All the pages are torn out."
%message 21
"Somebody filled the coin slot with chewing gum."
%message 22
"You can't. It's so firmly embedded, nothing will get it out.
You'll just have to find another telephone."

869
RM36.CG Normal file
View File

@ -0,0 +1,869 @@
[logics for room 36 -- rmLounge
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm36.msg"
%include "gamedefs.h"
%include "iv_views.h"
%define GIRL_Y 93
%define JOKE_MAX 37 [ number of gags in repetoire
%define ZINGER_MIN 21 [ number of first zinger message
%define ZINGER_MAX 26 [ number of last zinger message
%define mcOnStage lf0
%define girlsOnStage lf1
%define girlsAtRight lf2
%define girlsAtLeft lf3
%define nearChair lf4
%define egoSitDone lf5
%define egoStandDone lf6
%define drummerDone lf7
%define outOfJokes lf8
%define cushionDone lf9
%define doMagicTrick lf10
%define heardJoke1 lf11
%define heardJoke2 lf12
%define heardJoke3 lf13
%define heardJoke4 lf14
%define heardJoke5 lf15
%define heardJoke6 lf16
%define heardJoke7 lf17
%define heardJoke8 lf18
%define heardJoke9 lf19
%define heardJoke10 lf20
%define heardJoke11 lf21
%define heardJoke12 lf22
%define heardJoke13 lf23
%define heardJoke14 lf24
%define heardJoke15 lf25
%define heardJoke16 lf26
%define heardJoke17 lf27
%define heardJoke18 lf28
%define heardJoke19 lf29
%define heardJoke20 df0
%define heardJoke21 df1
%define heardJoke22 df2
%define heardJoke23 df3
%define heardJoke24 df4
%define heardJoke25 df5
%define heardJoke26 df6
%define heardJoke27 df7
%define heardJoke28 df8
%define heardJoke29 df9
%define heardJoke30 df10
%define heardJoke31 df11
%define heardJoke32 df12
%define heardJoke33 df13
%define heardJoke34 df14
%define heardJoke35 df15
%define heardJoke36 df16
%define heardJoke37 df17
%define heardJoke38 df18
%define heardJoke39 df19
[ %define heardJoke40 df20
[ %define heardJoke41 df21
[ %define heardJoke42 df22
[ %define heardJoke43 df23
[ %define heardJoke44 df24
[ %define heardJoke45 df25
%define joke lv0
%define zinger lv1
%define trickTimer lv2
%object aMC 1
%object aGirls 2
%object aCandle1 3
%object aCandle2 4
%object aCandle3 5
%object aCandle4 6
%object aCandle5 7
%object aDrummer 8
if (initLog)
{
LoadPic( currentRoom);
DrawPic( currentRoom);
DiscardPic( currentRoom);
LoadView( vLoungeCandles);
LoadView( vEgoSittingLounge);
LoadSound( sWhoopieCushion);
AnimateObj( aCandle1);
IgnoreObjs( aCandle1);
SetView( aCandle1, vLoungeCandles);
SetCel( aCandle1, 0);
SetPriority( aCandle1, 11);
Position( aCandle1, 41, 110);
Draw( aCandle1);
AnimateObj( aCandle2);
IgnoreObjs( aCandle2);
SetView( aCandle2, vLoungeCandles);
SetCel( aCandle2, 1);
SetPriority( aCandle2, 11);
Position( aCandle2, 78, 110);
Draw( aCandle2);
AnimateObj( aCandle3);
IgnoreObjs( aCandle3);
SetView( aCandle3, vLoungeCandles);
SetCel( aCandle3, 2);
SetPriority( aCandle3, 11);
Position( aCandle3, 115, 110);
Draw( aCandle3);
AnimateObj( aCandle4);
IgnoreObjs( aCandle4);
SetView( aCandle4, vLoungeCandles);
SetCel( aCandle4, 0);
SetPriority( aCandle4, 14);
Position( aCandle4, 58, 140);
Draw( aCandle4);
AnimateObj( aCandle5);
IgnoreObjs( aCandle5);
SetView( aCandle5, vLoungeCandles);
SetCel( aCandle5, 1);
SetPriority( aCandle5, 14);
Position( aCandle5, 98, 140);
Draw( aCandle5);
Random( 1, 2, work);
if (work == 1)
{
Random( 1, 3, work);
if (work == 1)
{
Set( doMagicTrick);
Random( 20, 40, trickTimer);
}
Set( mcOnStage);
LoadView( vLoungeComedian);
LoadView( vDrummer);
LoadSound( sDrummer);
AnimateObj( aMC);
SetView( aMC, vLoungeComedian);
SetCel( aMC, 0);
Position( aMC, 77, 93);
Draw( aMC);
StopUpdate( aMC);
scriptCycles = 51;
AnimateObj( aDrummer);
SetView( aDrummer, vDrummer);
SetCel( aDrummer, 0);
Position( aDrummer, 41, 92);
Draw( aDrummer);
StopUpdate( aDrummer);
}
else
{
Set( girlsOnStage);
LoadView( vLoungeDancers);
LoadSound( mCanCan);
AnimateObj( aGirls);
SetView( aGirls, vLoungeDancers);
Position( aGirls, 70, 93);
Draw( aGirls);
Set( girlsAtRight);
Set( musicDone);
}
egoX = 25;
egoY = 167;
SetLoop( ego, FACING_BACK);
PositionV( ego, egoX, egoY);
Draw( ego);
StartMotion( ego);
ShowPic( );
Return( );
} [ end initLOG
Reset( nearChair);
if (Posn( ego, 100, 145, 114, 163))
{
Set( nearChair);
}
if (mcOnStage &&
secondsInRoom > 15)
{
Set( nearPerson);
}
[*****
:handleInput
[*****
if (!haveInput) {goto noInput;}
if ((Said( look) ||
Said( look, room)))
{
Print( 1);
Print( 2);
}
if (mcOnStage &&
(Said( heckle, comic) ||
Said( talk, comic) ||
Said( yell, comic)))
{
Print( 13);
Print( 14);
}
if (Said( applaud, rol))
{
if (mcOnStage)
{
Print( 111);
}
else
{
Print( 112);
}
}
if ((Said( name, room) ||
Said( name, place)))
{
Print( 15);
Print( 2);
}
if ((Said( look, top, table) ||
Said( look, table) ||
Said( look, chair)))
{
Print( 6);
}
if (Said( look, ashtray))
{
Print( 77);
}
if (Said( look, candle))
{
Print( 7);
Print( 8);
}
if (Said( look, stage))
{
if (mcOnStage)
{
Print( 9);
}
else
{
Print( 10);
}
}
if (Said( look, man))
{
if (mcOnStage)
{
Print( 9);
}
else
{
Print( 11);
}
}
if ((Said( look, girl) ||
Said( look, dancers) ||
Said( look, show, girls)))
{
if (mcOnStage)
{
Print( 12);
}
else
{
Print( 10);
}
}
if (mcOnStage &&
Said( anyword, drummer, rol))
{
Print( 18);
}
if ((Said( wave, girls, rol) ||
Said( wave, comic, rol) ||
Said( whistle, girls, rol)||
Said( whistle, comic, rol)))
{
if (mcOnStage)
{
Print( 19);
Print( 20);
}
else
{
Print( 78);
Print( 79);
}
}
if ((Said( buy, drink) ||
Said( call, waiter) ||
Said( order, rol) ||
Said( get, drink)))
{
if (currentStatus != SITTING)
{
Print( 16);
}
else
{
Print( 17);
}
}
if ((Said( sit) ||
Said( sit, table) ||
Said( sit, chair) ||
Said( sit, down)))
{
if (currentStatus == SITTING)
{
Print( 3);
}
else
{
if (!nearChair)
{
Print( 5);
}
else
{
currentStatus = SITTING;
StopMotion( ego);
Set( programControl);
SetView( ego, vEgoSittingLounge);
SetCel( ego, 0);
SetPriority( ego, 15);
RepositionTo( ego, 107, 152);
StopSound();
Sound( sWhoopieCushion, musicDone);
EndOfLoop( ego, cushionDone);
Set( keepCycling);
}
}
}
if ((Said( stand) ||
Said( leave, table) ||
Said( rise) ||
Said( stand, up)))
{
if (currentStatus != SITTING)
{
Print( 4);
}
else
{
Set( OK);
Reset( keepCycling);
SetView( ego, vEgo);
ReleasePriority( ego);
RepositionTo( ego, 107, 151);
Reset( programControl);
StartMotion( ego);
currentStatus = NORMAL;
}
}
if ((Said( climb, stage) ||
Said( climb, on, stage) ||
Said( jump, on, stage) ||
Said( sit, on, stage) ||
Said( sing, rol) ||
Said( dance, rol) ||
Said( go, stage)))
{
Print( 80);
}
if (Said( throw, rose, rol))
{
Print( 81);
Drop( iRose);
}
if (Said( get, rose))
{
Print( 100);
}
[*****
:noInput
[*****
if (cushionDone)
{
Reset( cushionDone);
Print( 75);
StopCycling( ego);
Reset( keepCycling);
if (!satOnWhoopieCushion)
{
Set( satOnWhoopieCushion);
currentScore += 1;
}
}
if (girlsAtRight)
{
Reset( girlsAtRight);
MoveObj( aGirls, 47, GIRL_Y, 1, girlsAtLeft);
}
if (girlsAtLeft)
{
Reset( girlsAtLeft);
MoveObj( aGirls, 93, GIRL_Y, 1, girlsAtRight);
}
if (scriptDone)
{
Reset( scriptDone);
++script;
if (script == 1)
{
Random( 12, 22, scriptCycles);
if (typing)
{
--script; [ Try again in a little while.
}
else
{
StartUpdate( aMC);
}
}
if (script == 2)
{
Random( 8, 14, scriptCycles);
if (typing)
{
--script; [ Try again in a little while.
}
else
{
SetCel( aMC, 0);
StopUpdate( aMC);
ForceUpdate( aMC);
if ((!heardJoke1 ||
!heardJoke2 ||
!heardJoke3 ||
!heardJoke4 ||
!heardJoke5 ||
!heardJoke6 ||
!heardJoke7 ||
!heardJoke8 ||
!heardJoke9 ||
!heardJoke10 ||
!heardJoke11 ||
!heardJoke12 ||
!heardJoke13 ||
!heardJoke14 ||
!heardJoke15 ||
!heardJoke16 ||
!heardJoke17 ||
!heardJoke18 ||
!heardJoke19 ||
!heardJoke20 ||
!heardJoke21 ||
!heardJoke22 ||
!heardJoke23 ||
!heardJoke24 ||
!heardJoke25 ||
!heardJoke26 ||
!heardJoke27 ||
!heardJoke28 ||
!heardJoke29 ||
!heardJoke30 ||
!heardJoke31 ||
!heardJoke32 ||
!heardJoke33 ||
!heardJoke34 ||
!heardJoke35 ||
!heardJoke36 ||
!heardJoke37)) [ ||
[ !heardJoke38 ||
[ !heardJoke39)) ||
[ !heardJoke40 ||
[ !heardJoke41 ||
[ !heardJoke42 ||
[ !heardJoke43 ||
[ !heardJoke44 ||
[ !heardJoke45))
{
:pickAJoke;
Random( 1, JOKE_MAX, joke);
work = joke;
work += 210; [ Because flags are 211-255.
if (IssetV( work)) [ Be sure it's a new one.
{
goto pickAJoke;
}
SetV( work);
if (joke == 1)
{
Print( 27);
Print( 28);
}
if (joke == 2)
{
Print( 29);
Print( 30);
}
if (joke == 3)
{
Print( 31);
Print( 32);
}
if (joke == 4)
{
Print( 33);
Print( 34);
}
if (joke == 5)
{
Print( 35);
Print( 36);
}
if (joke == 6)
{
Print( 37);
Print( 38);
}
if (joke == 7)
{
Print( 39);
Print( 40);
}
if (joke == 8)
{
Print( 41);
Print( 42);
}
if (joke == 9)
{
Print( 43);
}
if (joke == 10)
{
Print( 44);
Print( 45);
}
if (joke == 11)
{
Print( 46);
}
if (joke == 12)
{
Print( 47);
}
if (joke == 13)
{
[ Print( 48);
Print( 109);
Print( 110);
}
if (joke == 14)
{
Print( 49);
Print( 50);
}
if (joke == 15)
{
Print( 51);
}
if (joke == 16)
{
Print( 52);
}
if (joke == 17)
{
Print( 53);
Print( 54);
Print( 55);
Print( 56);
Print( 57);
}
if (joke == 18)
{
Print( 58);
Print( 59);
}
if (joke == 19)
{
Print( 60);
Print( 61);
}
if (joke == 20)
{
Print( 62);
Print( 76);
}
if (joke == 21)
{
Print( 63);
Print( 64);
}
if (joke == 22)
{
Print( 65);
}
if (joke == 23)
{
Print( 66);
Print( 67);
}
if (joke == 24)
{
Print( 68);
Print( 69);
}
if (joke == 25)
{
Print( 70);
}
if (joke == 26)
{
Print( 71);
}
if (joke == 27)
{
Print( 72);
Print( 73);
}
if (joke == 28)
{
Print( 74);
Print( 93);
}
if (joke == 29)
{
Print( 94);
Print( 95);
}
if (joke == 30)
{
Print( 96);
Print( 97);
}
if (joke == 31)
{
Print( 98);
Print( 99);
}
if (joke == 32)
{
Print( 96);
Print( 97);
}
if (joke == 33)
{
Print( 98);
Print( 99);
}
if (joke == 34)
{
Print( 101);
Print( 102);
}
if (joke == 35)
{
Print( 103);
Print( 104);
}
if (joke == 36)
{
Print( 105);
Print( 106);
}
if (joke == 37)
{
Print( 107);
Print( 108);
}
[ if (joke == 38)
[ {
[ }
[ if (joke == 39)
[ {
[ Print( );
[ Print( );
[ }
[
[ if (joke == 40)
[ {
[ Print( );
[ Print( );
[ }
[
}
else
{
Set( outOfJokes);
Print( 113);
SetCel( aMC, 0);
StopUpdate( aMC);
ForceUpdate( aMC);
script = 0;
scriptTimer = 0;
scriptCycles = 0;
}
}
}
if (script == 3)
{
StartUpdate( aDrummer);
Sound( sDrummer, done);
EndOfLoop( aDrummer, scriptDone);
}
if (script == 4)
{
SetCel( aDrummer, 0);
StopUpdate( aDrummer);
ForceUpdate( aDrummer);
StartUpdate( aMC);
Random( 11, 22, scriptCycles);
}
if (script == 5)
{
Random( 4, 7, scriptTimer); [ Time before next joke.
if (typing)
{
--script; [ Try again in a little while.
}
else
{
script = 0;
SetCel( aMC, 0);
StopUpdate( aMC);
ForceUpdate( aMC);
if (!outOfJokes)
{
Random( ZINGER_MIN, ZINGER_MAX, zinger);
PrintV( zinger);
}
}
}
}
if (musicDone && girlsOnStage)
{
Sound( mCanCan, musicDone);
}
if (aSecondPassed && trickTimer)
{
--trickTimer;
if (trickTimer == 1)
{
if (script)
{
trickTimer = 2;
}
else
{
message = 82;
:mrLooper;
PrintV( message);
++message;
if (!message > 92)
{
goto mrLooper;
}
ShowObj( ivWallet);
}
}
}
[*****
:exit [ test for leaving the room
[*****
if (edgeEgoHit == BOTTOM) {newRoom = rmElevatorBottom;}

383
RM36.MSG Normal file
View File

@ -0,0 +1,383 @@
[messages for room 36 -- rmLounge
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"This looks like a great place to be from."
%message 2
"(You wonder where they keep the lizards.)"
%message 3
"You are sitting."
%message 4
"You are standing."
%message 5
"You can't. The card on the table says \"Reserved.\""
%message 6
"Looks like you won't have any trouble getting a seat tonight!"
%message 7
"You wonder who invented that little plastic net surrounding the glass."
%message 8
"And, how come it doesn't melt?"
%message 9
"Evidently, HE thinks he's funny!"
%message 10
"Wouldn't you think they'd get tired of just going left and right?"
%message 11
"You think they look like men?"
%message 12
"Do you know something about his sexual habits that the rest of us don't?"
%message 13
"You shout to the comedian, \"This ain't funny!\""
%message 14
"The comedian retorts, \"But you are!!\""
%message 15
"The Lizard Lounge."
%message 16
"You're not seated."
%message 17
"There's no one to take your order."
%message 18
"It's a living."
%message 19
"You whistle loudly at the comic."
%message 20
"\"Hey, buddy, will ya hold it down?\" says the comic.
\"I'm tryin' to earn a living up here!\""
%message 21
"\"Whaddsa' matter, folks? Am I keeping you up?\""
%message 22
"\"You know, folks, it just don't get much better than this!\""
%message 23
"\"Waddaya out there, a painting?\""
%message 24
"\"Tough crowd. Tough crowd.\""
%message 25
"\"I shoulda never given up my day gig!\""
%message 26
"\"Waddaya waitin' for folks? This IS the 'A' stuff!\""
%message 27
"\"I just flew in from Coarsegold...\""
%message 28
"\"...and, boy, are my arms tired!\""
%message 29
"\"I told my doctor my sex life was boring.
He said 'You need to add the element of surprise.
Go right home this afternoon, grab your wife,
and immediately make love to her, no matter what she's doing.' So I did!\""
%message 30
"\"It was still the same old boring stuff;
but her bridge club got a tremendous kick out of it!!\""
%message 31
"\"You know how I can tell when my wife has an orgasm?\""
%message 32
"\"She drops her nail file!!\""
%message 33
"\"My wife is so ugly...\""
%message 34
"\"...the picture of her in my wallet is an X-ray!\""
%message 35
"\"I told my psychiatrist 'Nobody pays any attention to me.'\""
%message 36
"\"He looks at me and says, 'When did you get here?'\""
%message 37
"\"Didja hear about the clumsy female lawyer?\""
%message 38
"\"She dropped her briefs!\""
%message 39
"\"A man walks into a doctor's office with a frog on his head.
The doctor says, 'May I help you?'\""
%message 40
"\"The frog says, 'Yeah, doc, take this wart off my butt!\""
%message 41
"\"Did you hear about the new, chocolate-flavored, contraceptive,
breakfast drink?\""
%message 42
"\"It's called Ovumteen.\""
%message 43
"\"My secretary is both ambitious and horny. Today she asked me for a salary
on next week's advance.\""
%message 44
"\"Down the street there's a new, live gay sex show.\""
%message 45
"\"It's called 'Anus and Andy.'\""
%message 46
"\"Have ya seen that new R-rated movie about midgets.
It features full runtal nudity.\""
%message 47
"\"My uncle is a hit man for the Mob. What a great job!
He only goes to work when it's time to knock off.\""
%message 48
""
%message 49
"\"When I got married I asked my bride, 'Do you perform fellatio?'\""
%message 50
"\"She says it depends on the fella.\""
%message 51
"\"Have you been by the wedding chapel next door?
They've got this impotent flasher out front.
We just call him our 'public futility.'\""
%message 52
"\"I hear the pimp at Lefty's won't let his girls perform oral sex.
They call him the 'Headless Whoresman.'\""
%message 53
"\"What do lesbians like most about their kind of sex?\""
%message 54
"\"Tastes great.\""
%message 55
"\"Less filling.\""
%message 56
"\"Tastes great!\""
%message 57
"\"Less filling!\""
%message 58
"\"Why don't sharks attack divorce lawyers?\""
%message 59
"\"Professional courtesy.\""
%message 60
"\"My wife and I have a new system: if she wants sex, she reaches over
and strokes me once.\""
%message 61
"\"If she doesn't, she reaches over and strokes me 300 times.\""
%message 62
"\"My son just got kicked out of his co-ed college boarding house."
%message 63
"\"My daughter came home from school today and tells me,
'Eli Whitney invented the cotton gin.'\""
%message 64
"\"I said, 'Who wants a fluffy martini?'\""
%message 65
"\"The shop teacher asked the high school girl if she knew the difference
between a screw, a nail and a bolt. She told him she'd never been bolted.\""
%message 66
"\"Have you heard about the new urologist's training film?\""
%message 67
"\"It's called, 'E.T., the Extra Testicle.'\""
%message 68
"\"Have you heard about the new film for marching band musicians?\""
%message 69
"\"It's called, 'Desperately Seeking Sousa.'\""
%message 70
"\"My son has a problem with compulsive masturbation.
His psychiatrist says he's gone completely whacky.\""
%message 71
"\"My grandpa, the farmer, finally got himself one of those latex ladies.
I heard him singing about it the other day:
'The farmer in the doll, the farmer in the doll...'\""
%message 72
"\"Our local inventor just came up with a new, vibrating tampon.\""
%message 73
"\"He says if women have to be miserable once a month,
they might as well enjoy it.\""
%message 74
"\"My wife just loves going to the movies to watch
teenagers get laid for the first time.\""
%message 75
"At least the comic's whoopie cushion doesn't smell!"
%message 76
"\"He got caught spreading roomers.\""
%message 77
"This must be a \"No Smoking\" lounge."
%message 78
"You whistle loudly at the girls."
%message 79
"You're not sure, but you suppose they enjoy it."
%message 80
"You're no star!"
%message 81
"You toss the rose on the stage.
It falls where you will not be able to retrieve it."
%message 82
"\"And, now, ladi... uh, gentleman,\" announces the comic,
\"we're proud to present the Magic portion of our act.\""
%message 83
"\"Let me just pick someone at random from our audience...\""
%message 84
"\"How about you,\" he says looking directly at you.
\"Would you like to participate in a little experiment in telepathy?\""
%message 85
"(Of course he's looking at you! You're the only one here!)
You're game, so you answer, \"Sure.\""
%message 86
"\"Great! Now Paul, my drummer and musical conductor for all these many years,
will read your mind,\" says the comic.
\"Come on, Paul, show him your stuff!\""
%message 87
"\"I want you to concentrate on your billfold,\" Paul says.
\"Clear your mind, and think solely about the contents of your wallet.\""
%message 88
"Since clearing your mind is no problem for you, Larry,
you do so easily."
%message 89
"\"I'm getting a message... I see something...\""
%message 90
"\"I've GOT IT!\" he exclaims. \"If you open your billfold
you'll discover some wrinkled business cards, lots of notes,
some credit cards (which won't work in this game),
and exactly $%v90.00 in cash!!\""
%message 91
"\"Ladi... uh, GENTLEMAN!\" shouts the comic.
\"PAUL THE MAGNIFICENT has done it again!!\""
%message 92
"Just to make sure, you take out your wallet and look inside..."
%message 93
"\"Sometimes, she even watches the screen!\""
%message 94
"\"I asked my wife,
'How come you never tell me when you're having an orgasm?'\""
%message 95
"\"She replied, 'Cause you're never around!\""
%message 96
"\"My wife just loves to experiment.
Last week she mixed speed with her Midol.\""
%message 97
"\"She had her period six times in one day!\""
%message 98
"\"My wife is a lot like Halley's Comet.\""
%message 99
"\"They both come once every 76 years!\""
%message 100
"Remember: you can't get it!"
%message 101
"\"My son is becoming a real computer wiz!\""
%message 102
"\"His teacher called him a 'master byter.'\""
%message 103
"\"My uncle, the inventor, crossed a cucumber with a Mexican jumping bean.\""
%message 104
"\"He calls it the world's first organic vibrator!\""
%message 105
"\"Last week, I got arrested by a female cop.
She asked me, 'Are you carrying a concealed weapon?'\""
%message 106
"\"I replied, 'Keep frisking me, and I soon will be!'\""
%message 107
"\"My best sexual encounter was in the South Sea Islands...\""
%message 108
"\"I pushed a volcano into a virgin!\""
%message 109
"\"Didja hear about the copier company that bought out
a musical instrument maker?\""
%message 110
"\"They're gonna market a new, reproductive organ!\""
%message 111
"\"Thank you, thank you!\""
%message 112
"The girls' smiles beam!"
%message 113
"\"Well, that's all I know, folks,\" the comic says.
\"Come back for the next show, and you can hear 'em all again!\""

414
RM37.CG Normal file
View File

@ -0,0 +1,414 @@
[logics for room 37 -- rmSlots
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm37.msg"
%include "gamedefs.h"
%include "contrlrs.h"
%include "slots.h"
[ RESULTS PAYS\n
[ |--------------------------------|\n
[ | Cherry | | | 1 |\n
[ | Cherry | Cherry | | 2 |\n
[ | Cherry | Cherry | Cherry | 4 |\n
[ |--------|--------|--------|-----|\n
[ | Orange | Orange | | 2 |\n
[ | Orange | Orange | Orange | 4 |\n
[ |--------|--------|--------|-----|\n
[ | Seven | Seven | | 3 |\n
[ | Seven | Seven | Seven | 5 |\n
[ |--------|--------|--------|-----|\n
[ | Bar | Bar | Bar | 7 |\n
[ |--------------------------------|\n
%define MIN_CYCLES 8 [ These must be 3 apart since
%define MAX_CYCLES 11 [ we have 4 cells / wheel.
%define C_CHERRY 0
%define C_ORANGE 1
%define C_SEVEN 2
%define C_BAR 3
%define cDecreaseBet cF4
%define cIncreaseBet cF6
%define cPullHandle cF8
if (initLog)
{
Reset( xyOn);
LoadView( vSlots);
LoadView( vWinner);
LoadLogics( lgcSlots);
LoadSound( sSlots);
LoadSound( sSlotsWinner);
LoadPic( currentRoom);
DrawPic( currentRoom);
DiscardPic( currentRoom);
AnimateObj( aWinner);
SetPriority( aWinner, 15);
SetView( aWinner, vSlots);
SetLoop( aWinner, 2);
Position( aWinner, 56, 106);
AnimateObj( aWheel1);
SetView( aWheel1, vSlots);
SetLoop( aWheel1, 0);
SetCel( aWheel1, C_BAR);
Position( aWheel1, 46, 87);
Draw( aWheel1);
StopCycling( aWheel1);
AnimateObj( aWheel2);
SetView( aWheel2, vSlots);
SetLoop( aWheel2, 0);
SetCel( aWheel2, C_BAR);
Position( aWheel2, 69, 87);
Draw( aWheel2);
StopCycling( aWheel2);
AnimateObj( aWheel3);
SetView( aWheel3, vSlots);
SetLoop( aWheel3, 0);
SetCel( aWheel3, C_BAR);
Position( aWheel3, 93, 87);
Draw( aWheel3);
StopCycling( aWheel3);
AnimateObj( aLights);
IgnoreHorizon( aLights);
SetView( aLights, vSlots);
SetLoop( aLights, 1);
Position( aLights, 50, 10);
ShowPic( );
bet = 1;
Set( readyToPlay);
Set( handsOff);
function = UPDATE_STATUS;
Call( lgcSlots);
PrintAt( 2, 2, 2, 36);
[msg #, row, col, width
Print( 1);
Set( noScript);
Return( );
} [ end initLOG
Set( nearPerson);
if (readyToPlay &&
Controller( cDecreaseBet))
{
--bet;
function = UPDATE_STATUS;
Call( lgcSlots);
}
if (readyToPlay &&
Controller( cIncreaseBet))
{
if (bet < 20)
{
++bet;
}
else
{
Print( 6);
}
function = UPDATE_STATUS;
Call( lgcSlots);
}
if (readyToPlay &&
Controller( cPullHandle))
{
Set( pulledHandle);
}
[*****
:handleInput
[*****
if (!haveInput) {goto noInput;}
if ((Said( play) ||
Said( pull, handle) ||
Said( play, slots)))
{
Set( pulledHandle);
}
if (Said( odds))
{
function = UPDATE_STATUS;
Call( lgcSlots);
PrintAt( 2, 2, 2, 36);
}
if ((Said( look) ||
Said( look, slot)))
{
Print( 8);
}
if ((Said( leave) ||
Said( look, room) ||
Said( leave, slots) ||
Said( stand) ||
Said( walk, away) ||
Said( walk) ||
Said( quit, playing) ||
Said( quit, game) ||
Said( quit) ||
Said( quit, playing, slots) ||
Said( go, casino) ||
Said( look, casino)))
{
Set( OK);
Set( readyToLeave);
}
[*****
:noInput
[*****
if (pulledHandle)
{
Reset( pulledHandle);
if (!readyToPlay)
{
Random( 11, 13, work);
PrintV( work);
}
else
{
if (!bet)
{
Print( 3);
Print( 4);
Print( 5);
}
else
{
if (bet > dollars)
{
Print( 7);
}
else
{
script = 0;
Set( scriptDone);
}
}
}
}
if (scriptDone)
{
Reset( scriptDone);
++script;
if (script == 1)
{
Reset( readyToPlay);
Set( preventSaveGame);
Set( betInProgress);
StopSound( );
Reset( soundDone);
Sound( sSlots, done);
dollars -= bet;
function = UPDATE_STATUS;
Call( lgcSlots);
StartCycling( aWheel1);
StartCycling( aWheel2);
StartCycling( aWheel3);
Random( MIN_CYCLES, MAX_CYCLES, scriptCycles);
}
if (script == 2)
{
StopCycling( aWheel1);
CurrentCel( aWheel1, wheel1);
Random( MIN_CYCLES, MAX_CYCLES, scriptCycles);
}
if (script == 3)
{
StopCycling( aWheel2);
CurrentCel( aWheel2, wheel2);
Random( MIN_CYCLES, MAX_CYCLES, scriptCycles);
}
if (script == 4)
{
StopCycling( aWheel3);
CurrentCel( aWheel3, wheel3);
[ Determine if we hit anything.
multiple = 0;
if (wheel1 == C_CHERRY)
{
multiple = 1;
if (wheel2 == wheel1)
{
multiple = 2;
if (wheel3 == wheel1)
{
multiple = 4;
}
}
}
if (wheel1 == C_ORANGE &&
wheel2 == wheel1)
{
multiple = 2;
if (wheel3 == wheel1)
{
multiple = 4;
}
}
if (wheel1 == C_SEVEN &&
wheel2 == wheel1)
{
multiple = 3;
if (wheel3 == wheel1)
{
multiple = 5;
}
}
if (wheel1 == C_BAR &&
wheel2 == wheel1 &&
wheel3 == wheel1)
{
multiple = 7;
}
[ Now, are we gonna flash lights, and pay off?
if (!multiple)
{
Set( readyToPlay); [ Nope, this guy's a loser.
}
else
{
function = PAY_WINNER;
Call( lgcSlots);
if (multiple == 1)
{
Set( readyToPlay); [ A small win, not worth mentioning.
}
else
{
Draw( aWinner); [ Ok, maybe a little.
Set( soundDone);
if (multiple > 1 &&
multiple < 4)
{
scriptCycles = 22;
}
else
{
Draw( aLights); [ Let's go all out for this guy!
if (multiple < 7)
{
scriptCycles = 22;
}
else
{
scriptCycles = 44;
}
}
}
}
}
[ We only get here if the "WINNER" object is drawn.
if (script == 5)
{
Erase( aLights);
Erase( aWinner);
Set( readyToPlay);
}
if (readyToPlay)
{
script = 0;
Reset( preventSaveGame);
Reset( betInProgress);
if (!dollars)
{
Reset( readyToPlay);
}
}
}
if (soundDone && !readyToPlay)
{
Sound( sSlotsWinner, soundDone);
}
if ((Controller( cHelp) ||
showOdds))
{
Reset( showOdds);
function = UPDATE_STATUS;
Call( lgcSlots);
PrintAt( 2, 2, 2, 36);
Print( 1);
}
if (restoreInProgress)
{
function = UPDATE_STATUS;
Call( lgcSlots);
}
[*****
:exit [ test for leaving the room
[*****
if (readyToLeave)
{
Reset( handsOff);
Reset( noScript);
Reset( preventSaveGame);
Reset( betInProgress);
newRoom = rmInsideCasino;
}

65
RM37.MSG Normal file
View File

@ -0,0 +1,65 @@
[messages for room 37 -- rmSlots
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"\n
Press F4 to decrease bet.\n\n
Press F6 to increase bet.\n\n
Press F8 to pull handle.\n
"
%message 2
"\n
RESULTS PAYS\n
|--------------------------------|\n
| Cherry | | | 1 |\n
| Cherry | Cherry | | 2 |\n
| Cherry | Cherry | Cherry | 4 |\n
|--------|--------|--------|-----|\n
| Orange | Orange | | 2 |\n
| Orange | Orange | Orange | 4 |\n
|--------|--------|--------|-----|\n
| Seven | Seven | | 3 |\n
| Seven | Seven | Seven | 5 |\n
|--------|--------|--------|-----|\n
| Bar | Bar | Bar | 7 |\n
|--------------------------------|\n
"
%message 3
"You insert zero dollars, and pretend to pull the handle."
%message 4
"You win zero dollars!"
%message 5
"Is this your idea of a good time?"
%message 6
"This machine has a $20.00 limit."
%message 7
"You can't bet more than you have."
%message 8
"It's an electronic slot machine.
When you tire of playing, just type \"stop.\""
%message 9
""
%message 10
""
%message 11
"Don't be in such a hurry!"
%message 12
"Slow down!"
%message 13
"What are you? A \"Type-A\" personality?"

1625
RM38.CG Normal file

File diff suppressed because it is too large Load Diff

168
RM38.MSG Normal file
View File

@ -0,0 +1,168 @@
[messages for room 38 -- rmBlackjack
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"You are sitting at a blackjack table in the casino.
There is a sign on the table titled \"House Rules.\""
%message 2
"Do you want insurance? "
%message 3
"Amount in dollars: $"
%message 4
"Please bet an even number of dollars (2, 4, 6, etc.).
The house does not keep half-dollars."
%message 5
"The dealer has blackjack!"
%message 6
"Surrendering your cards, you are refunded half of your bet."
%message 7
"You bet zero dollars, receive zero cards, and win zero dollars and
zero cents."
%message 8
"You can play all night like this!"
%message 9
"Your insurance bet pays 2 to 1."
%message 10
"Please answer \"y\" or \"n\"."
%message 11
"You are busted."
%message 12
"The dealer busted."
%message 13
"She's a beautiful young lady,
but you vow to keep your thoughts on the game."
%message 14
"It's a push!"
%message 15
"\"Thanks for playing,\" says the dealer, finally cracking a smile.
\"Come back anytime.\""
%message 16
"You lose!"
%message 17
"You have blackjack."
%message 18
"Six cards make a winner."
%message 19
"You can only "
%message 20
" when you have two cards."
%message 21
"\"Please, no talking at the tables.\""
%message 22
"That's not a pair."
%message 23
"\"I'm sorry, Sir. We're not permitted to accept gratuities!\""
%message 24
"%m19double when you have 10 or 11 points."
%message 25
"%m19split%m20"
%message 26
"%m19surrender%m20"
%message 27
"You don't have enough money!"
%message 28
"Don't be in such a hurry. Finish this hand first!"
%message 29
"It's too late now. This hand is already being played."
%message 30
"You can't bet more than you have."
%message 31
"$20.00 is the maximum bet at this table."
%message 32
""
%message 33
""
%message 34
"Your first hand "
%message 35
"%m34is a push!"
%message 36
"%m34wins!"
%message 37
"%m34loses!"
%message 38
"%m34busted!"
%message 39
"%m43is a push!"
%message 40
"%m43wins!"
%message 41
"%m43loses!"
%message 42
"%m43busted!"
%message 43
"Your split hand "
%message 44
"Please wait until it's your turn."
%message 45
"\n
HOUSE RULES\n\n
This table has a $20.00 limit.
Bets must be a multiple of $2.00.\n\n
Dealer must hit 16, and must stand on 17.\n\n
Blackjack pays 1-1/2 to 1 odds.\n\n
Any six cards under 22 wins.\n
"
%message 46
"\n
Insurance bets are offered whenever the dealer shows an ace.
They are half your bet, and pay 2 to 1 odds.\n\n
You may split a pair or surrender whenever you have only two cards.\n\n
You may double down if your cards total 10 or 11 points.\n
"
%message 47
"\n
Press F4 when ready to play.\n\n
Press F6 for another card.\n\n
Press F8 to stand.\n\n
To change the amount of your bet, type \"change bet.\"\n"

189
RM4.CG Normal file
View File

@ -0,0 +1,189 @@
[logics for room 4 -- lgcQuestions1
[ "Leisure-Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm4.msg"
%include "gamedefs.h"
%define FIRST_QUESTION 1
%define LAST_QUESTION 53
%define toldLastQuestion lf1
%define allsWell lv0
%define question1 lv1
%define question2 lv2
%define question3 lv3
%define question4 lv4
%define question5 lv5
if (initLog)
{
if (forceAtest)
{
Print( 60);
currentQuestion = FIRST_QUESTION;
}
} [ end initLOG
if (!forceAtest)
{
:askAgain;
Random( FIRST_QUESTION, LAST_QUESTION, currentQuestion);
if ((currentQuestion == question1 ||
currentQuestion == question2 ||
currentQuestion == question3 ||
currentQuestion == question4 ||
currentQuestion == question5))
{
goto askAgain;
}
else
{
if (question == 1) {question1 = currentQuestion};
if (question == 2) {question2 = currentQuestion};
if (question == 3) {question3 = currentQuestion};
if (question == 4) {question4 = currentQuestion};
if (question == 5) {question5 = currentQuestion};
if (question == 6) {questionStatus = allDone;}
if (question == 5 &&
!toldLastQuestion)
{
Set( toldLastQuestion);
Print( 69);
}
++question;
}
}
if (currentQuestion == 1) {correctAnswer = 2;}
if (currentQuestion == 2) {correctAnswer = 3;}
if (currentQuestion == 3) {correctAnswer = 4;}
if (currentQuestion == 4) {correctAnswer = 3;}
if (currentQuestion == 5) {correctAnswer = 4;}
if (currentQuestion == 6) {correctAnswer = 1;}
if (currentQuestion == 7) {correctAnswer = 3;}
if (currentQuestion == 8) {correctAnswer = 4;}
if (currentQuestion == 9) {correctAnswer = 4;}
if (currentQuestion == 10) {correctAnswer = 4;}
if (currentQuestion == 11) {correctAnswer = 3;}
if (currentQuestion == 12) {correctAnswer = 3;}
if (currentQuestion == 13) {correctAnswer = 3;}
if (currentQuestion == 14) {correctAnswer = 3;}
if (currentQuestion == 15) {correctAnswer = 3;}
if (currentQuestion == 16) {correctAnswer = 4;}
if (currentQuestion == 17) {correctAnswer = 1;}
if (currentQuestion == 18) {correctAnswer = 3;}
if (currentQuestion == 19) {correctAnswer = 3;}
if (currentQuestion == 20) {correctAnswer = 2;}
if (currentQuestion == 21) {correctAnswer = 1;}
if (currentQuestion == 22) {correctAnswer = 3;}
if (currentQuestion == 23) {correctAnswer = 1;}
if (currentQuestion == 24) {correctAnswer = 2;}
if (currentQuestion == 25) {correctAnswer = 4;}
if (currentQuestion == 26) {correctAnswer = 4;}
if (currentQuestion == 27) {correctAnswer = 3;}
if (currentQuestion == 28) {correctAnswer = 4;}
if (currentQuestion == 29) {correctAnswer = 0;}
if (currentQuestion == 30) {correctAnswer = 4;}
if (currentQuestion == 31) {correctAnswer = 2;}
if (currentQuestion == 32) {correctAnswer = 3;}
if (currentQuestion == 33) {correctAnswer = 2;}
if (currentQuestion == 34) {correctAnswer = 3;}
if (currentQuestion == 35) {correctAnswer = 4;}
if (currentQuestion == 36) {correctAnswer = 1;}
if (currentQuestion == 37) {correctAnswer = 3;}
if (currentQuestion == 38) {correctAnswer = 1;}
if (currentQuestion == 39) {correctAnswer = 2;}
if (currentQuestion == 40) {correctAnswer = 3;}
if (currentQuestion == 41) {correctAnswer = 1;}
if (currentQuestion == 42) {correctAnswer = 2;}
if (currentQuestion == 43) {correctAnswer = 4;}
if (currentQuestion == 44) {correctAnswer = 4;}
if (currentQuestion == 45) {correctAnswer = 3;}
if (currentQuestion == 46) {correctAnswer = 4;}
if (currentQuestion == 47) {correctAnswer = 2;}
if (currentQuestion == 48) {correctAnswer = 4;}
if (currentQuestion == 49) {correctAnswer = 3;}
if (currentQuestion == 50) {correctAnswer = 2;}
if (currentQuestion == 51) {correctAnswer = 3;}
if (currentQuestion == 52) {correctAnswer = 1;}
if (currentQuestion == 53) {correctAnswer = 4;}
if (questionStatus != allDone)
{
if (forceAtest)
{
ClearLines( 23, 23, 0);
Display( 23, 0, 66);
PrintV( currentQuestion);
++currentQuestion;
if (!currentQuestion > LAST_QUESTION)
{
questionStatus = waitAwhile;
scriptTimer = 2;
}
else
{
questionStatus = allDone;
}
}
else
{
AcceptInput();
CancelLine();
PreventInput();
ClearLines( 22, 24, BG_COLOR);
Set( leaveWindow);
PrintV( currentQuestion);
lastChar = 0;
Display( 23, 0, 67);
SetScanStart();
if (!lastChar)
{
Return();
}
if (lastChar > 64 && [ ABCD
lastChar < 69)
{
lastChar += 32; [ Convert to abcd (lower case).
}
if ((lastChar < 97 ||
lastChar > 100))
{
Sound( sError, done);
Return();
}
ResetScanStart(); [ We've got a valid letter.
answer = lastChar;
lastChar = 0;
answer -= 96; [ Now answer between a and d.
message = 60; [ 1 less than first message #
message += answer;
y = 23;
x = 29;
DisplayV( y, x, message);
questionStatus = waitAwhile;
scriptTimer = 3;
}
}
[*****
:exit [ test for leaving the room
[*****

434
RM4.MSG Normal file
View File

@ -0,0 +1,434 @@
[messages for room 4 -- lgcQuestions3
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"When playing \"Monopoly\" you\n\n
a. hope for a straight\n
flush.\n
b. must own four houses\n
before building\n
a hotel.\n
c. need a black jack to\n
win.\n
d. win with a seven and\n
a five."
%message 2
"Which is not in Hawaii?\n\n
a. Oahu\n
b. Kauai\n
c. Fiji\n
d. Maui"
%message 3
"Which is not a car?\n\n
a. Ferrari\n
b. Porsche\n
c. Corvair\n
d. Toshiba"
%message 4
"President Eisenhower's nickname was\n\n
a. Tink.\n
b. Blackjack.\n
c. Ike.\n
d. Tina."
%message 5
"Bourbon Street is in\n\n
a. Whiskeyville, Indiana.\n
b. Jackass Flats, Idaho.\n
c. \"Monopoly.\"\n
d. New Orleans, Louisiana."
%message 6
"Does a pair of queens beat three deuces?\n\n
a. Yes, in blackjack.\n
b. Yes, in poker.\n
c. No, in canasta.\n
d. It depends on what the\n
three deuces said."
%message 7
"Calvin Klein is\n\n
a. married to\n
Brooke Shields.\n
b. a movie star.\n
c. a clothing designer.\n
d. President of the\n
Coarsegold Chamber\n
of Commerce."
%message 8
"Two bits is\n\n
a. all it takes to consume\n
a \"Big Mac.\"\n
b. computer talk.\n
c. about a dollar.\n
d. the former cost for a\n
shave and a haircut."
%message 9
"Charlie McCarthy and\n\n
a. John Lennon\n
b. Louis Pasteur\n
c. Albert Einstein\n
d. Edgar Bergen"
%message 10
"Who is not a famous musician?\n\n
a. Lawrence Welk\n
b. Tommy Dorsey\n
c. Les Brown\n
d. Steve Garvey"
%message 11
"Which is non-alcoholic?\n\n
a. whiskey\n
b. Grand Marnier\n
c. Perrier\n
d. tequila"
%message 12
"Who was not a politician?\n\n
a. Richard Nixon\n
b. Ronald Reagan\n
c. W. C. Fields\n
d. George Bush"
%message 13
"The last name of Annette (on the original Mickey Mouse Club) was\n\n
a. Funnicular.\n
b. that WAS her last name.\n
c. Funicello.\n
d. Avalon."
%message 14
"\"Tiptoe Through the Tulips\" was recorded by\n\n
a. Alice Cooper.\n
b. Alice B. Toklas.\n
c. Tiny Tim.\n
d. Big Tiny Little."
%message 15
"Which one of these was not a war?\n\n
a. Crimean\n
b. Korean\n
c. Chinese\n
d. Vietnamese"
%message 16
"Who's buried in Grant's tomb?\n\n
a. Grant Tinker\n
b. Land Grant\n
c. NSF Grant\n
d. Mrs. Grant"
%message 17
"John F. Kennedy drove a\n\n
a. PT boat.\n
b. spike faster than a\n
steam driver.\n
c. battleship.\n
d. Ferrari."
%message 18
"Peter Piper picked a peck of pickled\n\n
a. pips.\n
b. pipers.\n
c. peppers.\n
d. peekers."
%message 19
"A result of Watergate was\n\n
a. the loss of water.\n
b. Jimmy Carter quit.\n
c. Richard Nixon quit.\n
d. Gerald Ford quit."
%message 20
"I find computer games with adult content\n\n
a. offensive.\n
b. acceptable.\n
c. repulsive.\n
d. under my bed."
%message 21
"The Atlantic and Pacific Oceans are connected by the\n\n
a. Panama Canal.\n
b. Snake River.\n
c. hips.\n
d. Isthmus of Panama."
%message 22
"The most likely place to find virgins is\n\n
a. The Virgin Islands.\n
b. Virginia.\n
c. St. Mary's Girls School.\n
d. Hollywood."
%message 23
"Who wrote \"To be, or not to be?\"\n\n
a. Bill Shakespeare.\n
b. Paul McCartney.\n
c. George Bernard Shaw.\n
d. Tennessee Williams."
%message 24
"The largest state is\n\n
a. California.\n
b. Alaska.\n
c. Rhode Island.\n
d. Texas."
%message 25
"Utah is full of\n\n
a. fresh water.\n
b. Jews.\n
c. Catholics.\n
d. None of the above."
%message 26
"The leader of Nazi Germany was\n\n
a. Boris Godunov.\n
b. Mussolini.\n
c. Oleg Cassinni.\n
d. Adolph Hitler."
%message 27
"Lee Harvey Oswald killed\n\n
a. Harvey Milk.\n
b. Charles Nelson Reilly.\n
c. John Fitzgerald Kennedy.\n
d. William Randolph Hearst."
%message 28
"How many molecules are in a glass of water?\n\n
a. one million\n
b. one trillion\n
c. one million trillion\n
d. as many as there are\n
glasses of water\n
in the whole world"
%message 29
"If a physician were stranded on a desert island with Bo Derek, he would
probably\n\n
a. build a boat.\n
b. take two aspirins.\n
c. overcharge her.\n
d. thank God."
%message 30
"If Bo Derek were here, I'd ask her to\n\n
a. leave.\n
b. respect my privacy.\n
c. help me with my\n
homework.\n
d. stop playing computer\n
games."
%message 31
"Joe DiMaggio played\n\n
a. pool.\n
b. baseball.\n
c. basketball.\n
d. trumpet."
%message 32
"The most populous city in the United States is\n\n
a. Los Angeles.\n
b. Mexico City.\n
c. New York.\n
d. Chicago."
%message 33
"A nehru jacket is\n\n
a. made from tanned nehru\n
hides.\n
b. out of date.\n
c. a Middle Eastern\n
prophylactic.\n
d. around a car's radiator."
%message 34
"Sergeant Pepper was\n\n
a. the Beatles' chauffeur.\n
b. Elvis' manager.\n
c. the leader of the Lonely\n
Hearts Club Band.\n
d. hung for treason."
%message 35
"Which is not an American armed force?\n\n
a. the Army\n
b. the Navy\n
c. the National Guard\n
d. the National League"
%message 36
"The most effective form of birth control is\n\n
a. abstinence.\n
b. the Rhythm Method.\n
c. the Pill.\n
d. dating ugly people."
%message 37
"Which is not a city in Mexico?\n\n
a. Tijuana\n
b. Puerto Vallarta\n
c. San Diego\n
d. Mexico City"
%message 38
"Herb Alpert and the _____ Brass\n\n
a. Tijuana\n
b. Boss\n
c. Canadian\n
d. Top"
%message 39
"\"It's not nice to fool\"\n\n
a. Mother Hubbard.\n
b. Mother Nature.\n
c. the government.\n
d. Mayor Daly."
%message 40
"\"Where's the\"\n\n
a. catsup?\n
b. toilet?\n
c. beef?\n
d. rest of this game?"
%message 41
"Who was not an astronaut?\n\n
a. John Milton\n
b. John Glenn\n
c. Neil Armstrong\n
d. Richard Gordon"
%message 42
"Who has not been a\n
U. S. Attorney General?\n\n
a. John Mitchell\n
b. Sam Shepard\n
c. Ramsey Clark\n
d. Herbert Browner"
%message 43
"Which is not a cheese?\n\n
a. Jarlsburg\n
b. Mozzarella\n
c. Brie\n
d. Reisling"
%message 44
"Captain Kangaroo's sidekick was\n\n
a. Mr. Potato Head.\n
b. Winnie the Pooh.\n
c. Mr. Rogers.\n
d. Mr. Greenjeans."
%message 45
"Mohammed Ali is\n\n
a. a ballet star.\n
b. an Arab terrorist.\n
c. a professional boxer.\n
d. a singer."
%message 46
"Who is not a mass murderer?\n\n
a. Charlie Manson\n
b. Ted Bundy\n
c. Jack the Ripper\n
d. Timothy Leary"
%message 47
"There are about _____ calories in a can of beer.\n\n
a. 15\n
b. 150\n
c. 1500\n
d. 15000"
%message 48
"John Belushi was on\n\n
a. \"Mr. Rogers.\"\n
b. \"The PTL club.\"\n
c. \"My Mother the Car.\"\n
d. \"Saturday Night Live.\""
%message 49
"James Earl Jones was the voice of\n\n
a. Jason in \"Friday\n
the 13th.\"\n
b. Freddie in \"Nightmare on\n
Elm Street.\"\n
c. Darth Vader in\n
\"Star Wars.\"\n
d. Kriswell in \"Plan 9 From\n
Outer Space.\""
%message 50
"Doonesbury's \"Uncle Duke\" is based on\n\n
a. Jeffrey Hunter.\n
b. Hunter S. Thompson.\n
c. Huntz Hall.\n
d. None of the above."
%message 51
"In Westworld, \"where nothing can go wrong,\" guests were entertained by\n\n
a. Stephen Wright.\n
b. X-rated movies.\n
c. robots.\n
d. Rodney Dangerfield."
%message 52.
"Mork was from the planet\n\n
a. Ork.\n
b. Vulcan.\n
c. Krypton.\n
d. Pluto."
%message 53
"Who was banned from \"Saturday Night Live\" because he lost a telephone poll?\n\n
a. John Belushi\n
b. Dan Akroyd\n
c. Chevy Chase\n
d. Andy Kaufman"
%message 60
"Dynamic logic = 4."
%message 61
"a"
%message 62
"b"
%message 63
"c"
%message 64
"d"
%message 65
"So far, so good.\n\n
Now for the final question."
%message 66
"Question #%v96. Correct answer is %v93."
%message 67
"Please answer a, b, c, or d: "
%message 69
"So far, so good.\n\n
Now for the final question."

634
RM40.CG Normal file
View File

@ -0,0 +1,634 @@
[logics for room 40 -- rmElevators
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm40.msg"
%include "gamedefs.h"
[ Vertical elevator maze. One floor has the honeymoon suite entrance,
#define L_HALL_DOOR 0
#define HONEYMOON_FLOOR 4
%define nearTHEDoor lf0
%define doorDone lf2
%define elevatorMoving lf4
%define inElevator lf5
%define goingDown lf6
%define currentFloor lv0
%object aElevator 1
%object aDoors 2
%object aFloor 3
%object aDoor 4
%object aNumber 6
if (initLog)
{
SetHorizon( 1);
LoadPic( currentRoom);
DrawPic( currentRoom);
DiscardPic( currentRoom);
LoadView( vElevator);
LoadView( vElevatorNumbers);
LoadView( vHoneymoonHallwayDoor);
LoadView( vEgoPushingElevator);
LoadView( vEgo);
IgnoreObjs( ego);
AnimateObj( aDoor);
IgnoreBlocks( aDoor);
IgnoreObjs( aDoor);
SetView( aDoor, vHoneymoonHallwayDoor);
SetCel( aDoor, 0);
SetPriority( aDoor, 10);
Position( aDoor, 6, 134);
work = DOOR_CYCLE_TIME;
CycleTime( aDoor, work);
AnimateObj( aNumber);
IgnoreBlocks( aNumber);
IgnoreObjs( aNumber);
SetView( aNumber, vElevatorNumbers);
SetPriority( aNumber, 5);
Position( aNumber, 73, 100);
StopCycling( aNumber);
AnimateObj( aDoors);
IgnoreBlocks( aDoors);
IgnoreObjs( aDoors);
SetView( aDoors, vElevator);
SetLoop( aDoors, L_DOORS);
FixLoop( aDoors);
SetPriority( aDoors, 4);
Position( aDoors, 73, 120);
work = DOOR_CYCLE_TIME;
CycleTime( aDoors, work);
AnimateObj( aFloor);
IgnoreBlocks( aFloor);
IgnoreObjs( aFloor);
SetView( aFloor, vElevator);
SetLoop( aFloor, L_FLOOR);
FixLoop( aFloor);
Position( aFloor, 73, 128);
SetPriority( aFloor, 5);
AnimateObj( aElevator);
IgnoreBlocks( aElevator);
IgnoreObjs( aElevator);
SetView( aElevator, vElevator);
SetPriority( aElevator, 12);
FixLoop( aElevator);
StepSize( aElevator, two);
if (currentStatus == IN_ELEVATOR)
{
if (previousRoom == rmSecurityDesk)
{
Set( goingDown);
currentFloor = 7;
Position( aElevator, 73, 36);
}
else
{
currentFloor = 2;
Position( aElevator, 73, 167);
}
Set( elevatorMoving);
currentStatus = IN_ELEVATOR;
SetLoop( aElevator, L_WITH_EGO);
LastCel( aElevator, work);
SetCelV( aElevator, work);
StopCycling( aElevator);
if (destinationFloor > currentFloor)
{
MoveObj( aElevator, 73, 36, 2, scriptDone);
script = 200;
}
else
{
if (destinationFloor < currentFloor)
{
MoveObj( aElevator, 73, 167, 2, scriptDone);
script = 200;
}
else
{
MoveObj( aElevator, 73, 128, 2, scriptDone);
script = 100;
}
}
Draw( aElevator);
Draw( aDoors);
StopUpdate( aDoors);
SetCelV( aNumber, currentFloor);
Draw( aNumber);
SetView( ego, vEgo);
SetLoop( ego, FACING_FRONT);
SetPriority( ego, 12);
egoX = 76;
egoY = 126;
PositionV( ego, egoX, egoY);
[ Don't Draw ego!
}
else [ NOT in elevator.
{
Draw( aFloor);
StopUpdate( aFloor);
SetLoop( aElevator, L_EMPTY);
SetCel( aElevator, 0);
Position( aElevator, 73, 128);
Draw( aElevator);
StopUpdate( aElevator);
currentFloor = HONEYMOON_FLOOR;
Draw( aDoor);
StopUpdate( aDoor);
SetLoop( ego, FACING_RIGHT);
egoX = 9;
egoY = 132;
PositionV( ego, egoX, egoY);
Draw( ego);
StartMotion( ego);
}
ShowPic( );
if (previousRoom == rmHoneymoonSuite)
{
Print( 18);
}
Return( );
} [ end initLOG
Reset( inElevator);
if (Posn( ego, 73, 119, 83, 127))
{
Set( inElevator);
}
if (inElevator)
{
SetPriority( ego, 11);
}
else
{
ReleasePriority( ego);
}
Reset( nearTHEDoor);
if (currentFloor == HONEYMOON_FLOOR &&
Posn( ego, 6, 126, 15, 135))
{
Set( nearTHEDoor);
}
[*****
:handleInput
[*****
if (!haveInput) {goto noInput;}
if (elevatorMoving && !haveMatch)
{
if ((Said( listen) ||
Said( listen, elevator) ||
Said( listen, music) ||
Said( sing, music) ||
Said( sing) ||
Said( sing, along)))
{
Print( 7);
}
else
{
Set( haveMatch);
Print( 5);
}
}
if ((Said( look) ||
Said( look, room) ||
Said( look, floor) ||
Said( look, hotel)))
{
Print( 1);
if (currentFloor == HONEYMOON_FLOOR)
{
Print( 2);
}
if (inElevator)
{
Print( 20);
}
}
if (Said( look, elevator))
{
if (inElevator)
{
Print( 20);
}
else
{
Print( 22);
}
}
if (Said( look, plants))
{
Print( 16);
}
if (Said( look, door))
{
if (nearTHEDoor)
{
Print( 11);
}
else
{
Print( 12);
}
}
if (Said( anyword, heart, rol))
{
if (nearTHEDoor)
{
Print( 23);
}
else
{
Print( 24);
}
}
if ((Said( knock) ||
Said( knock, on, door) ||
Said( knock, door)))
{
if (!nearTHEDoor)
{
Print( 32);
Random( 34, 50, message);
PrintV( message);
Print( 33);
}
else
{
if (!fawnInRoom)
{
Print( 4);
}
else
{
if (orderedWine && !seenDeliveryBoyGag)
{
Print( 25);
Print( 26);
}
else
{
Print( 6);
Print( 8);
}
Print( 10);
StartUpdate( aDoor);
EndOfLoop( aDoor, doorDone);
StopMotion( ego);
Set( programControl);
}
}
}
if (Said( open, door))
{
if (!nearTHEDoor)
{
Print( 17);
}
else
{
Print( 9);
}
}
if ((Said( open, door, use, rol) ||
Said( break, door, rol)))
{
Print( 27);
}
if ((Said( unlock, door, rol) ||
Said( use, key, rol)))
{
if (!nearTHEDoor)
{
Set( notCloseEnough);
}
else
{
Print( 21);
}
}
if (Said( jump, rol))
{
Print( 31);
}
if ((Said( look, down) ||
Said( spit)))
{
Print( 28);
Print( 29);
Print( 30);
}
if (!script && inElevator)
{
if ((Said( press, one) ||
Said( press, button, one) ||
Said( one)))
{
destinationFloor = 1;
Set( scriptDone);
}
if ((Said( press, two) ||
Said( press, button, two) ||
Said( two)))
{
destinationFloor = 2;
Set( scriptDone);
}
if ((Said( press, three) ||
Said( press, button, three) ||
Said( three)))
{
destinationFloor = 3;
Set( scriptDone);
}
if ((Said( press, four) ||
Said( press, button, four) ||
Said( four)))
{
destinationFloor = 4;
Set( scriptDone);
}
if ((Said( press, five) ||
Said( press, button, five) ||
Said( five)))
{
destinationFloor = 5;
Set( scriptDone);
}
if ((Said( press, six) ||
Said( press, button, six) ||
Said( six)))
{
destinationFloor = 6;
Set( scriptDone);
}
if ((Said( press, seven) ||
Said( press, button, seven) ||
Said( seven)))
{
destinationFloor = 7;
Set( scriptDone);
}
if ((Said( press, eight) ||
Said( press, button, eight) ||
Said( eight)))
{
destinationFloor = 8;
Set( scriptDone);
}
if ((Said( push, rol) ||
Said( push, button, rol)))
{
Print( 19);
}
}
[*****
:noInput
[*****
if (doorDone)
{
Reset( programControl);
newRoom = rmHoneymoonSuite;
}
if (scriptDone)
{
Reset( scriptDone);
++script;
if (script == 1)
{
Set( elevatorMoving);
currentStatus = IN_ELEVATOR;
StopMotion( ego);
Set( programControl);
SetView( ego, vEgoPushingElevator);
SetCel( ego, 0);
RepositionTo( ego, 76, 126);
CycleTime( ego, three);
Set( keepCycling);
EndOfLoop( ego, scriptDone);
}
if (script == 2)
{
Erase( ego);
SetView( ego, vEgo);
SetLoop( aElevator, L_WITH_EGO);
SetCel( aElevator, 0);
CycleTime( aElevator, three);
EndOfLoop( aElevator, scriptDone);
}
if (script == 3)
{
Erase( aFloor);
Draw( aDoors);
SetCelV( aNumber, currentFloor);
Draw( aNumber);
script = 200;
StopCycling( aElevator);
if (destinationFloor > currentFloor)
{
Reset( goingDown);
MoveObj( aElevator, 73, 36, 2, scriptDone);
script = 200;
}
else
{
if (destinationFloor < currentFloor)
{
Set( goingDown);
MoveObj( aElevator, 73, 167, 2, scriptDone);
script = 200;
}
else
{
Print( 3);
script = 101; [ We'll catch it immediately.
}
}
}
if (script == 101) [ He's at the floor he wants.
{
Erase( aDoors);
Erase( aNumber);
CycleTime( aElevator, two);
StartCycling( aElevator);
BeginningOfLoop( aElevator, scriptDone);
}
if (script == 102) [ Let him out.
{
Reset( elevatorMoving);
currentStatus = NORMAL;
destinationFloor = 0;
script = 0;
SetLoop( aElevator, L_EMPTY);
Draw( aFloor);
SetView( ego, vEgo);
SetLoop( ego, FACING_FRONT);
SetCel( ego, 0);
Position( ego, 76, 126);
Draw( ego);
StartMotion( ego);
CycleTime( ego, one);
Reset( keepCycling);
Reset( programControl);
}
if (script == 201)
{
if (goingDown)
{
--currentFloor;
if (currentFloor == 1)
{
newRoom = rmElevatorBottom;
Return();
}
}
else
{
++currentFloor;
if (currentFloor == 8)
{
newRoom = rmSecurityDesk;
Return();
}
}
if (goingDown)
{
RepositionTo( aElevator, 73, 36);
}
else
{
RepositionTo( aElevator, 73, 167);
}
if (currentFloor != HONEYMOON_FLOOR)
{
Erase( aDoor);
}
else
{
Draw( aDoor);
StopUpdate( aDoor);
}
SetCelV( aNumber, currentFloor);
if (destinationFloor > currentFloor)
{
MoveObj( aElevator, 73, 36, 2, scriptDone);
script = 200;
}
else
{
if (destinationFloor < currentFloor)
{
MoveObj( aElevator, 73, 167, 2, scriptDone);
script = 200;
}
else
{
MoveObj( aElevator, 73, 128, 2, scriptDone);
script = 100;
}
}
}
}
[*****
:exit [ test for leaving the room
[*****

171
RM40.MSG Normal file
View File

@ -0,0 +1,171 @@
[messages for room 40 -- rmElevatorMaze
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"You are in the Casino's hotel.
Doors line each side, many with \"Do Not Disturb\" signs on their doorknobs."
%message 2
"There's a door with a heart on it to the west."
%message 3
"Not one for those long elevator rides, eh, Larry?"
%message 4
"You rap your knuckles on the door.
There is no response, but now your knuckles hurt."
%message 5
"Whee!"
%message 6
"Fawn's delicate voice booms out across the hotel:\n\n
\"Just a minute, Larry!\""
%message 7
"\"strangers in the night, da da da dee da...\""
%message 8
"There's a click as she unlocks the door, then a piercing
\"Come on in. The door's open.\""
%message 9
"You can't. This door is locked."
%message 10
"Subtly, you shout, \"Here I come, baby!\""
%message 11
"It's a door not unlike all the others, except this one has a cute,
trite, cracked, little, plastic heart stuck to it with a thumbtack."
%message 12
"It's a door just like all the others."
%message 13
""
%message 14
""
%message 15
""
%message 16
"They almost look real, don't they?"
%message 17
"You seem surprised that the door is locked."
%message 18
"You close the door behind you, and jiggle the knob to confirm it is locked."
%message 19
"Type a word, like \"one\" or \"two.\""
%message 20
"There are buttons labeled \"one\" through \"eight.\""
%message 21
"You can't. There's no key in this game!"
%message 22
"Isn't it funny how the elevator is always waiting for you?"
%message 23
"The cheap, plastic heart is not worth the bother."
%message 24
"Where?"
%message 25
"Fawn's sexy voice oozes through the door,
\"Oh, baby, it's you! You're back!!\""
%message 26
"There's a click as she unlocks the door.
\"Come on in, you wonderful hunk!\""
%message 27
"It's no good. The door resists all of your efforts."
%message 28
"You contemplate expec- toration, but remember that discretion is the better
part of valium."
%message 29
"...or helium,"
%message 30
"...or something."
%message 31
"Suicide is illegal here."
%message 32
"You rap your knuckles on the nearest door."
%message 33
"This must not be the right door, Larry."
%message 34
"\"Hey, Scott, the girls are here!!\""
%message 35
"\"It says 'Do NOT Disturb!' Can't you read?\""
%message 36
"You hear some extremely heavy breathing."
%message 37
"\"Go away! I gave at the office!\""
%message 38
"\"Oh, Russ, there's someone at the door!\"\n\n
\"They're gonna have to wait, Kim Baby!
It's too late for me to stop now!!\""
%message 39
"\"Baaaaah. Baaaaah!\"\n\n
Don't even ask, Larry!"
%message 40
"\"Oh, Bruce!\n
Oh, Howard!\n\n
Oh, Terri!\n
Oh, Carrie!\""
%message 41
"\"Ken! Get off me, Ken!!\""
%message 42
"\"Oh, gawd, Ed!! Get in the closet. It's my husband!!\""
%message 43
"\"Bobbit, is that you?\""
%message 44
"\"Not now; I've got wessonality!\""
%message 45
"\"Is that Room Service? I didn't order anchovies.\""
%message 46
"An eye appears at the peephole.
\"Hey, Mary! Isn't it a little early for Trick or Treaters?\""
%message 47
"\"Oh, gawd, Ed!! Get in the closet. It's my wife!!\""
%message 48
"Hmmm. Is that the smell of burning rubber?"
%message 49
"\"Oh, Jeff. You really know how to hurt a guy!\""
%message 50
"\"Get away from him, you big bully! He's mine.\""

751
RM41.CG Normal file
View File

@ -0,0 +1,751 @@
[logics for room 41 -- rmHoneymoonSuite
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm41.msg"
%include "gamedefs.h"
%define nearBed lf0
%define pouredWine lf1
%define nearRadio lf2
%define nearDoor lf3
%define radioOn lf4
%define doorDone lf5
%define fawnCycling lf6
%define egoCycling lf7
%define nearWine lf8
%define radioTimer lv0
%define knifeTimer lv1
%define fawnCycles lv2
%define egoTiedCycles lv3
%object aDoor 1
%object aFawn 2
%object aWine 3
%object aRope 4
if (initLog)
{
LoadPic( currentRoom);
DrawPic( currentRoom);
DiscardPic( currentRoom);
LoadView( vFireworks);
LoadView( vHoneymoonSuiteStuff);
LoadView( vFawn);
LoadView( vEgoWithFawnRm41);
LoadView( vEgoTiedOnBed);
[ LoadView( v);
AnimateObj( aDoor);
IgnoreBlocks( aDoor);
IgnoreObjs( aDoor);
SetView( aDoor, vHoneymoonSuiteStuff);
SetLoop( aDoor, 1);
SetCel( aDoor, 0);
SetPriority( aDoor, 10);
Position( aDoor, 113, 131);
work = DOOR_CYCLE_TIME;
CycleTime( aDoor, work);
Draw( aDoor);
StopUpdate( aDoor);
Set( fawnInRoom); [ Redundant, since can't enter
if (fawnInRoom) [ unless she is in the room!
{
AnimateObj( aFawn);
IgnoreBlocks( aFawn);
Position( aFawn, 91, 120);
SetView( aFawn, vHoneymoonSuiteStuff);
SetLoop( aFawn, 2);
Draw( aFawn);
StopCycling( aFawn);
Random( 22, 44, fawnCycles);
}
if (orderedWine)
{
AnimateObj( aWine);
SetView( aWine, vHoneymoonSuiteStuff);
SetLoop( aWine, 0);
Position( aWine, 89, 95);
Draw( aWine);
StopUpdate( aWine);
}
AnimateObj( aRope);
SetView( aRope, vHoneymoonSuiteStuff);
SetLoop( aRope, 3);
Position( aRope, 74, 124);
if (ropeOnBed)
{
Draw( aRope);
StopUpdate( aRope);
}
egoX = 124;
egoY = 129;
PositionV( ego, egoX, egoY);
Draw( ego);
StartMotion( ego);
ShowPic( );
if (orderedWine && !seenDeliveryBoyGag)
{
Set( seenDeliveryBoyGag);
Print( 48);
}
Return( );
} [ end initLOG
Reset( nearRadio);
if (Posn( ego, 50, 117, 60, 125))
{
Set( nearRadio);
}
Reset( nearDoor);
if (Posn( ego, 116, 129, 125, 136))
{
Set( nearDoor);
}
Reset( nearBed);
if (Posn( ego, 54, 117, 98, 140))
{
Set( nearBed);
}
if (nearBed && fawnInRoom)
{
Set( nearPerson);
}
Reset( nearWine);
if (Posn( ego, 92, 117, 103, 126))
{
Set( nearWine);
}
[*****
:handleInput
[*****
if (!haveInput) {goto noInput;}
if ((Said( look) ||
Said( look, room) ||
Said( look, hotel, room) ||
Said( look, casino, hotel, room) ||
Said( look, suite) ||
Said( look, hotel, suite) ||
Said( look, casino, hotel, suite) ||
Said( look, bedroom)))
{
if (fawnInRoom)
{
Print( 1);
}
else
{
Print( 2);
}
}
if (Said( look, bed))
{
Print( 55);
}
if (Said( take, bucket))
{
Print( 56);
}
if ((Said( sit) ||
Said( sit, down) ||
Said( sit, on, bed) ||
Said( sit, bed)))
{
Print( 43);
}
if (Said( open, window))
{
Print( 44);
}
if ((Said( look, window) ||
Said( look, out, window)))
{
Print( 47);
}
if ((Said( break, window) ||
Said( hit, window)))
{
Print( 52);
}
if ((Said( call, room$service) ||
Said( dial, phone) ||
Said( use, phone) ||
Said( call, phone) ||
Said( call, liquor) ||
Said( call, liquor, store) ||
Said( room$service) ||
Said( order, room$service) ||
Said( dial, room$service)))
{
Print( 35);
}
if ((Said( look, wine, rol) ||
Said( look, bucket, rol)))
{
if (!orderedWine)
{
Print( 31);
}
else
{
Print( 49);
}
}
if ((Said( serve, wine) ||
Said( get, wine, rol) ||
Said( open, wine, rol) ||
Said( fill, glasses) ||
Said( pour, wine, into, glasses) ||
Said( open, bottle, rol) ||
Said( pour, wine, glasses) ||
Said( give, fawn, wine) ||
Said( give, wine, fawn) ||
Said( drink, wine, rol) ||
Said( pour, wine)))
{
if (!orderedWine)
{
Print( 31);
}
else
{
if (currentStatus == TIED_TO_BED)
{
Print( 32);
}
else
{
if (!nearWine)
{
Set( notCloseEnough);
}
else
{
if (!fawnInRoom)
{
Print( 33);
}
else
{
Print( 34);
Set( pouredWine);
}
}
}
}
}
if (fawnInRoom)
{
if (Said( look, fawn))
{
if (pouredWine)
{
Print( 20);
}
else
{
if (orderedWine)
{
Print( 30);
}
else
{
Print( 17);
}
}
}
if ((Said( talk, fawn) ||
Said( touch, fawn) ||
Said( lick, fawn) ||
Said( eat, fawn) ||
Said( kiss, fawn)))
{
if (!orderedWine)
{
Random( 18, 19, message);
PrintV( message);
}
else
{
if (!pouredWine)
{
Print( 28);
}
else
{
Print( 29);
}
}
}
if ((Said( hump, rol) ||
Said( get, naked) ||
Said( hump, pussy) ||
Said( sleep, fawn) ||
Said( go, sleep) ||
Said( sleep, with, fawn) ||
Said( remove, clothes, rol) ||
Said( strip, rol) ||
Said( go, bed) ||
Said( climb, bed) ||
Said( undress, rol) ||
Said( remove, clothes, rol) ||
Said( remove, girl, clothes, rol) ||
Said( get, on, bed) ||
Said( get, bed) ||
Said( lie, on, bed) ||
Said( lie, bed) ||
Said( lie, down) ||
Said( climb, on, rol)))
{
if (!orderedWine)
{
Print( 10);
}
else
{
if (!pouredWine)
{
Print( 28);
}
else
{
if (!nearBed)
{
Set( notCloseEnough);
}
else
{
script = 0;
Set( scriptDone);
}
}
}
}
}
if (Said( look, radio))
{
Print( 36);
}
if (Said( take, radio))
{
Print( 50);
Print( 51);
}
if ((Said( turn, channel, rol) ||
Said( turn, dial, rol) ||
Said( change, channel, rol)))
{
if (radioOn)
{
Print( 45);
}
else
{
Print( 46);
}
}
if ((Said( turn, on, radio) ||
Said( listen, radio) ||
Said( turn, knob, on, radio) ||
Said( turn, knob, on, radio, on) ||
Said( turn, knob, radio) ||
Said( turn, knob) ||
Said( turn, on, knob) ||
Said( turn, knob, on) ||
Said( turn, radio, knob) ||
Said( turn, radio, knob, on) ||
Said( turn, radio, on)))
{
if (!nearRadio)
{
Set( notCloseEnough);
}
else
{
if (radioOn)
{
Print( 38);
}
else
{
Set( radioOn);
Print( 7);
if (!orderedWine)
{
Random( 5, 15, radioTimer);
}
}
}
}
if ((Said( turn, off, radio) ||
Said( turn, knob, on, radio, off) ||
Said( turn, radio, knob, off) ||
Said( stop, listen, radio) ||
Said( turn, radio, off)))
{
if (!nearRadio)
{
Set( notCloseEnough);
}
else
{
if (!radioOn)
{
Print( 37);
}
else
{
Reset( radioOn);
Print( 9);
radioTimer = 0;
}
}
}
if (currentStatus == TIED_TO_BED)
{
if ((Said( untie, ropes) ||
Said( loosen, ropes)))
{
Print( 15);
}
if ((Said( use, knife) ||
Said( use, knife, cut, rope) ||
Said( open, knife, rol) ||
Said( get, knife, rol) ||
Said( cut, rope, rol)))
{
if (!Has( iPocketKnife))
{
Print( 11);
}
else
{
Print( 12);
ReleasePriority( ego);
Reset( handsOff);
Reset( programControl);
StartMotion( ego);
SetView( ego, vEgo);
SetLoop( ego, FACING_RIGHT);
RepositionTo( ego, 89, 130);
Reset( keepCycling);
currentStatus = NORMAL;
currentScore += 10;
egoTiedCycles = 0;
Draw( aRope);
StopUpdate( aRope);
Set( ropeOnBed);
Print( 24);
}
}
if (Said( yell))
{
Print( 57);
Print( 58);
}
if (!haveMatch)
{
Print( 16);
Set( haveMatch);
}
}
if (ropeOnBed &&
(Said( get, rope) ||
Said( take, rope, from, bed) ||
Said( take, rope, off, bed) ||
Said( take, rope, bed)))
{
if (!nearBed)
{
Set( notCloseEnough);
}
else
{
Reset( ropeOnBed);
currentScore += 3;
Get( iRope);
StartUpdate( aRope);
Erase( aRope);
Print( 13);
}
}
if (Said( open, door))
{
if (!nearDoor)
{
Print( 54);
}
else
{
Set( OK);
StartUpdate( aDoor);
EndOfLoop( aDoor, doorDone);
StopMotion( ego);
Set( programControl);
}
}
if (Said( break, bottle, rol))
{
Print( 53);
}
[*****
:noInput
[*****
if (aSecondPassed)
{
--radioTimer;
if (radioTimer == 1)
{
Print( 4);
Print( 5);
Print( 6);
Print( 8);
Random( 60, 120, radioTimer);
if (!heardLiquorStoreNumber)
{
Set( heardLiquorStoreNumber);
currentScore += 1;
}
}
--knifeTimer;
if (knifeTimer == 1)
{
Print( 14);
Set( certainDeath);
}
}
if (scriptDone)
{
Reset( scriptDone);
++script;
if (script == 1)
{
Print( 21);
Print( 22);
Erase( aFawn);
SetView( aFawn, vFawn);
SetLoop( aFawn, FACING_RIGHT);
Position( aFawn, 89, 129);
IgnoreObjs( aFawn);
fawnCycles = 0;
StopMotion( ego);
SetPriority( ego, 15);
SetView( ego, vEgoWithFawnRm41);
SetCel( ego, 0);
Set( handsOff);
RepositionTo( ego, 62, 125);
Set( programControl);
Reset( keepCycling);
PreventInput();
currentStatus = TIED_TO_BED;
scriptTimer = 7;
}
if (script == 2)
{
Print( 23);
scriptTimer = 5;
}
if (script == 3)
{
Print( 39);
Print( 59);
scriptTimer = 5;
}
if (script == 4)
{
Print( 40);
scriptTimer = 4;
}
if (script == 5)
{
Print( 42);
SetCel( ego, 2);
scriptTimer = 6;
}
if (script == 6)
{
Print( 26);
if (dollars > 10)
{
dollars = 10;
}
else
{
dollars = 1;
}
SetView( ego, vEgoTiedOnBed);
Set( handsOff);
RepositionTo( ego, 64, 133);
egoTiedCycles = 2;
Draw( aFawn);
StartCycling( aFawn);
MoveObj( aFawn, 118, 129, 1, scriptDone);
}
if (script == 7)
{
StopCycling( aFawn);
StartUpdate( aDoor);
EndOfLoop( aDoor, scriptDone);
}
if (script == 8)
{
Print( 27);
StartCycling( aFawn);
MoveObj( aFawn, 129, 129, 1, scriptDone);
}
if (script == 9)
{
Erase( aFawn);
BeginningOfLoop( aDoor, scriptDone);
}
if (script == 10)
{
script = 0;
Print( 60);
Print( 61);
AcceptInput();
Reset( fawnInRoom);
StopUpdate( aDoor);
if (!Has( iPocketKnife))
{
knifeTimer = 30;
}
}
}
--egoTiedCycles;
if (egoTiedCycles == 1)
{
Toggle( egoCycling);
if (egoCycling)
{
Set( keepCycling);
Random( 5, 22, egoTiedCycles);
}
else
{
Reset( keepCycling);
Random( 22, 44, egoTiedCycles);
}
}
--fawnCycles;
if (fawnCycles == 1)
{
Toggle( fawnCycling);
if (fawnCycling)
{
StartCycling( aFawn);
Random( 5, 22, fawnCycles);
}
else
{
StopCycling( aFawn);
Random( 22, 44, fawnCycles);
}
}
[*****
:exit [ test for leaving the room
[*****
if (doorDone)
{
Reset( programControl);
Reset( handsOff);
newRoom = rmElevators;
}

230
RM41.MSG Normal file
View File

@ -0,0 +1,230 @@
[messages for room 41 -- rmHoneymoonSuite
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"Your are in the casino hotel's honeymoon suite.
The heart-shaped bed is just waiting for you and Fawn.
The dim lighting provides the perfect atmosphere.
You've always appreciated the \"Early American Gaudy\" look.
There is a radio on the shelf behind the bed."
%message 2
"This is the honeymoon suite.
The heart-shaped bed would have been perfect for you and Fawn.
Too bad things worked out like this!"
%message 3
""
%message 4
"The radio interrupts the Frank Sinatra medley with an obnoxious
singing commercial..."
%message 5
"\"
We're Ajax Liquor,\n
and we're proud to say,\n
we deliver all across\n
the U.S.A.\""
%message 6
"\"
You're out of luck\n
if you want to dine,\n
but if you just need booze,\n
dial 555-8039!\""
%message 7
"Sounds like a nice mellow station..."
%message 8
"\"And now, back to our music.\""
%message 9
"Click."
%message 10
"She doesn't appear to be in the mood yet, Larry."
%message 11
"Good idea. Unfortunately, you have nothing with which to cut a rope, Larry."
%message 12
"Right!\n\n
Using the pocket knife you got from the old bum by the convenience store,
you saw through the ropes holding you to the bed."
%message 13
"You never know when a nice piece of rope will come in handy."
%message 14
"Since you have no way of cutting the ropes,
and they're far too tightly tied for you to loosen,
it looks like this is the end for you, Larry."
%message 15
"You can't. She fastened them quite securely!"
%message 16
"You can't. You're tied to a bed!"
%message 17
"She is so beautiful you want to do wonderful things to, er, ah, FOR her."
%message 18
"\"You know, a little wine would help me get in the mood, Larry.\""
%message 19
"\"I'd think the least a gentleman would do is to buy a lady
a bottle of wine.\""
%message 20
"She looks ready, Larry."
%message 21
"She says, \"Lie down, Larry.
I have a special surprise for you!\""
%message 22
"Then she says, \"Close your eyes,\"
and you do because you're sure that, finally, success is at hand."
%message 23
"\"Oh, Fawn!\" you moan."
%message 24
"You grab your wallet and look inside.\n\n
Oh, well.
At least she didn't find the %v90 bucks you hid in that secret compartment.
With your consummate gambling skills, you should be back on your feet
in no time!"
%message 25
"You're tied to the bed and can't move."
%message 26
"When Fawn has you securely tied to the bed, she grabs your wallet, saying,
\"You forgot to pay me for the wine,\" then heads out the door."
%message 27
"\"FAWN! Come back!\" you shout. \"This isn't funny!!\""
%message 28
"\"Aren't you going to pour the wine?\" she says, her eyes flashing."
%message 29
"\"I'm ready when you are, honey!\"\n\n
Come on, Larry; what are you waiting for?"
%message 30
"She looks like she could use some of that wine."
%message 31
"There's no wine here."
%message 32
"Right. Sure. Pour another for her while you're at it!"
%message 33
"You grab the bottle, and fortify your courage with a long, hard belt!"
%message 34
"You carefully remove the bottle from the wine bucket,
unscrew the cap, and pour two glasses.
She downs her glass immediately, you refill it, and she does it again.
Her eyes meet yours, and you're sure luck is with you this time!"
%message 35
"This room doesn't even have a telephone!"
%message 36
"It's pretty complicated. There's a knob that says \"On.\""
%message 37
"The radio IS off."
%message 38
"The radio IS on."
%message 39
"\"Ooh, Baby!\n\n
That feels so good!\n\n
Ooooooooooh!!\""
%message 40
"\"Hey, what's the deal with the rope?\""
%message 41
""
%message 42
"\"Why are you tying me to the bed?\""
%message 43
"You have more important things on your mind than sitting."
%message 44
"This window doesn't open."
%message 45
"The tuning knob on the radio is stuck.
Looks like you're stuck with the Easy Listening station."
%message 46
"You can't move the knob,
but it doesn't matter since the radio isn't on anyway!"
%message 47
"You see the lights of Lost Wages spread out before you."
%message 48
"\"Oh, Larry, it's you!\" Fawn says.
\"I thought it was that cute, young delivery boy again.\""
%message 49
"Hmmm. Was \"Tuesday\" a good year?"
%message 50
"It's a table model, not a portable."
%message 51
"Besides, the hotel bolted it to the table."
%message 52
"You are unable to break the window."
%message 53
"You can't.
It's the same brand that people can't break
when they want to christen a ship!"
%message 54
"Move closer to the handle."
%message 55
"Don't you think a heart-shaped bed is trite?"
%message 56
"You can't. The delivery boy glued it to the table."
%message 57
"\"FAWN!! You scum-sucking gutter slug, get back in here!\""
%message 58
"Unfortunately, your pleas go unheeded."
%message 59
"\"Say, Fawn, when are you going to get undressed?\""
%message 60
"Hmmm. You wonder if there's any way a guy can \"consummate\" by himself?"
%message 61
"Larry, it looks like \"the honeymoon's over.\""
%message 62
"As she heads out the door, she laughs and says, \"So long, turkey!\""

1413
RM42.CG Normal file

File diff suppressed because it is too large Load Diff

243
RM42.MSG Normal file
View File

@ -0,0 +1,243 @@
[messages for room 42 -- rmSecurityDesk
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"%m14 A beautiful security guard sits behind a desk."
%message 2
"She takes one look at the bottle of Spanish Fly and says,
\"Boy, thanks! How did you know that I love this stuff?!\"
She tosses down a couple of pills, then a few more,
and finally gulps the whole bottle!
Her breathing becomes faster and faster until she begins to pant."
%message 3
"She is a knockout!
But that pair of pistols slung around her hips brings a sense
of foreboding to your gut."
%message 4
"(Looks like tonight's your lucky night, Larry.)"
%message 5
"Whee!"
%message 6
"The rumors were right. You are quick on the trigger, Larry!"
%message 7
"\"strangers in the night, da da da dee da...\""
%message 8
"\"Try it, and I'll blow your head off.\""
%message 9
"There are buttons labeled \"one\" through \"eight.\""
%message 10
"Evidently, this exit is for employees only. You'd better use the elevator."
%message 11
"The beautiful security guard is sitting at the desk.
A pair of large pistols are in a holster around her slim waist.
She looks friendly, but quick on the trigger."
%message 12
"Since you're no longer staring at Faith's ample weapons,
you notice an unlabeled button on her desk."
%message 13
"Oh, oh. Where are we goin' now, Larry?"
%message 14
"You are at the top floor of the hotel."
%message 15
"%m14 That desk is where you lost your Faith, remember?
(So glad there was a chance to use THAT line!)"
%message 16
"A brass plate near the elevator says: \"Private.\""
%message 17
"\"Hi, my name's Faith. Nice suit!\""
%message 18
"\"Bad breath's one thing, Mister;
but, you could knock a buzzard off a manure truck!\""
%message 19
"\"Touch that button, and you're dead meat, White-Suit!\""
%message 20
"\"So long!\" Faith says.
\"I've got to find my boy friend before this stuff wears off!\""
%message 21
"The penthouse elevator doors glide open."
%message 22
"The doors are securely closed. %m16 There is no button nearby."
%message 23
"Type a word, like \"one\" or \"two.\""
%message 24
"It's a door just like all the others."
%message 25
"They almost look real, don't they?"
%message 26
"You contemplate expec- toration, but remember that discretion is the better
part of valium."
%message 27
"...or helium,"
%message 28
"...or something."
%message 29
"You run to the nearest door, and rap your knuckles loudly.
You run right back to where you were."
%message 30
"You seem surprised that the door is locked."
%message 31
"(She is, of course, referring to the use of her gun, Larry.)"
%message 32
"\"Larry,\" you reply, getting your hopes aroused (among other things)."
%message 33
"It appears Faith IS true to her name.
Twisting her key in the lock, she disappears down the employee stairs."
%message 34
"The doors are open. Go on in."
%message 35
"She might listen to you, if you can establish eye contact."
%message 36
"\"Hi ya, Baby. I think I loves ya!!\""
%message 37
"\"May I help you in some way, Sir?\" she responds in a pleasant, but
businesslike voice."
%message 38
"\"My name is Larry,\" you offer. \"Larry Laffer.\""
%message 39
"\"Say, Larry,\" she says with a smile,
\"Is that a roll of dimes in your pocket, or are you just glad to see me?\""
%message 40
"\"Hey, sweetheart. What's your sign?\" you ask her."
%message 41
"\"'EXIT,\" she replies. \"Try using it!\""
%message 42
"\"What's your name, beautiful?\" you ask."
%message 43
"\"Faith,\" she replies."
%message 44
"Hmmm. Unusual name."
%message 45
"\"I'm only in town for one night,\" you try again.
\"How about we get together when you get off duty?\""
%message 46
"She smiles and says, \"Oh, I could never be unfaithful to my boyfriend.\""
%message 47
"(Larry, it seems this one's gonna require outside assistance.)"
%message 48
"Try looking at the girl first."
%message 49
"They are a beautiful pair, aren't they?"
%message 50
"Not now, you're busy."
%message 51
"Her sweater reveals she's built like a brick shipyard."
%message 52
"\"Stop staring there,\" she says softly."
%message 53
"\"Really? I'm not that kind of girl.\""
%message 54
"Evidently the rooms on this floor are all unoccupied."
%message 55
"Her eyes are as sensuous as her lips."
%message 56
"You're a man of the world, Larry.
Perhaps some sort of medical stimulant would help."
%message 57
"She waves back."
%message 58
"The glass elevator only goes down from here. How about you?"
%message 59
"\"I'm sorry, but I can't.\""
%message 60
"It's no good. The door resists all of your efforts."
%message 61
"You can't. There's no key in this game!"
%message 62
"Suicide is illegal here."
%message 63
"There's no need to do that."
%message 64
"\"Usually when I'm with someone romantic!\" she replies."
%message 65
"\"You know, I'm supposed to be working!\""
%message 66
"Her hair is thick and beautiful, falling in cascades around her delicate
shoulders."
%message 67
"\"So what?\""
%message 68
"Her lips are moist and inviting, but then, you also felt that way
about old Mr. Weissenborn, your high school shop teacher!"
%message 69
"I'm sorry,\" Faith replies, \"but you don't know me that well!\""
%message 70
"\"Well, now. Isn't THAT special!\""
%message 71
"\"Perhaps,\" she says, \"but right now, I'm working.\""
%message 72
"\"I'll be here all night.\""

1298
RM43.CG Normal file

File diff suppressed because it is too large Load Diff

194
RM43.MSG Normal file
View File

@ -0,0 +1,194 @@
[messages for room 43 -- rmHotTub
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"The moon lights an expansive rooftop garden with a spa in one corner.
You've found the source of the gurgling noise!"
%message 2
"Wasting no time, you hop into the water.
Oooh, does it feel good!
The warm water swirls about you,
the bubbles stimulating you nearly as much as the beautiful woman across
from you.
With the warmth of the water soaking into your body,
you become quite relaxed."
%message 3
"Wow! Just the way you like your women: nearby and naked!
She has a beautiful tan, and a gorgeous body.
You've waited a lifetime for this moment."
%message 4
"What a beautiful face!
She's leaning back, relaxing in the spa with
the water bubbling up around her.
It's even possible you could become sexually aroused by this!"
%message 5
"Eve takes your apple, and with a sweet, innocent look,
raises it to her mouth.
She takes a small bite out of it, while a sexy smile comes across her face.
She winks, and lies back in the water, chewing delicately."
%message 6
"Eve gently moves her sensuous tongue around the apple,
tiny drops of the apple's juice glistening on her lips."
%message 7
"In the hot tub is the most beautiful girl you've ever seen!
Beside her is her towel, and swim suit.
You can't believe she doesn't mind your presence here."
%message 8
"You have no apple."
%message 9
"Looking over at the next hotel, you notice an ugly girl getting undressed."
%message 10
"She's not really that pretty."
%message 11
"Well, she's looking better."
%message 12
"You know, she's not that bad."
%message 13
"You could ignore some of her faults."
%message 14
"Perhaps you're in love!"
%message 15
"Pant, pant, pant, pant, pant."
%message 16
"Something tells you that's the wrong approach with this one, Larry."
%message 17
"She's really turning you on!
You had no idea fruit could be so exciting."
%message 18
"\"Bad breath's one thing, Mister; but you could knock a buzzard off
a manure truck!\""
%message 19
"Nah. Who wants to go hot-tubbing alone?"
%message 20
"\"Hey, handsome, why don't you slip into the water with me,
so we can REALLY get to know each other!\""
%message 21
"Her hand is resting near a fluffy, white, expensive bath towel,
embroidered in florid script with the name: \"Eve.\""
%message 22
"You can take a hint. \"Let's go, baby!\" you whisper!"
%message 23
"\"This water feels SO good!\""
%message 24
"After finishing the apple, Eve slowly slides out of the hot tub,
her steamy, naked body glistening in the moonlight.
Barely covering her tremendous assets with the towel,
she smiles and motions for you to follow her."
%message 25
"\"Who loves ya, baby?\""
%message 26
"\"So long, baby!\" you shout!"
%message 27
"As you leave the hot tub, Eve speaks at last,
\"Say, Larry. You really ARE glad to see ME!!\""
%message 28
""
%message 29
"It's difficult to take your eyes off the beautiful woman with
whom you share the hot tub."
%message 30
"She says nothing, but that smile tells you a lot."
%message 31
"Perhaps if you establish eye contact first..."
%message 32
"\"What's your name, gorgeous?\" you ask."
%message 33
"\"Have you ever tried it underwater?\" you coyly ask."
%message 34
"She doesn't say."
%message 35
"\"What's your sign, dollface?\" you ask."
%message 36
"At last she speaks. \"Yield,\" she says simply."
%message 37
"Although she smiles, it appears she's a woman of few words.
She's waiting for you to determine what it is she wants!"
%message 38
"\"Share your wine with me?\" you ask."
%message 39
"She hands you the glass, and you take an uncustomarily small sip.
She replenishes it from the bottle, so it appears no different
than before."
%message 40
"It appears she doesn't like that!"
%message 41
"She wouldn't like that."
%message 42
"Say; what's this? A beautiful woman all alone in a hot tub!
And, she's smiling at you? And, and..."
%message 43
"Why take it, when you can drink it?"
%message 44
"It looks like a bottle of fine champagne, suitable for two."
%message 45
"They ARE off."
%message 46
"They ARE on."
%message 47
"Her gold bracelet is engraved with the word \"Eve.\""
%message 48
"...and, she speaks, \"Hi, handsome. Where have you been all my life?\""
%message 49
"(Larry, this one seems to LIKE you!)"
%message 50
"SLAP!"
%message 51
"\"Oooh, I like that name!\""
%message 52
"SLAP!\n\n
SLAP!!"

425
RM44.CG Normal file
View File

@ -0,0 +1,425 @@
[logics for room 44 -- rmLivingRoom
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm44.msg"
%include "gamedefs.h"
%define FIRST_QUESTION 1
%define LAST_QUESTION 43
%define nearElevator lf0
%define insideElevator lf1
%define inWayOfDoors lf2
%define doorsOpen lf3
%define dollDone lf4
%define egoDone lf5
%define dollSoundDone lf6
%define dollOnScreen lf9
%define dollScript lv0
%object aDoor 1
%object aEve 2
%object aDoll 3
if (initLog)
{
LoadPic( currentRoom);
DrawPic( currentRoom);
DiscardPic( currentRoom);
LoadView( vRm44ElevatorDoors);
[ LoadView( v);
AnimateObj( aDoor);
IgnoreBlocks( aDoor);
IgnoreObjs( aDoor);
SetView( aDoor, vRm44ElevatorDoors);
SetCel( aDoor, 0);
SetPriority( aDoor, 10);
Position( aDoor, 130, 129);
work = DOOR_CYCLE_TIME;
CycleTime( aDoor, work);
Draw( aDoor);
StopUpdate( aDoor);
if (currentStatus == CHASING_DOLL)
{
PreventInput();
Set( handsOff);
Set( programControl);
LoadView( vDollDeflating);
LoadSound( sDollDeflating);
AnimateObj( aDoll);
IgnoreHorizon( aDoll);
IgnoreBlocks( aDoll);
IgnoreObjs( aDoll);
SetView( aDoll, vDollDeflating);
Position( aDoll, 55, 95);
Draw( aDoll);
MoveObj( aDoll, 27, 123, 2, dollDone);
Set( dollOnScreen);
Set( dollSoundDone);
}
if (currentStatus == FOLLOWING_EVE)
{
Set( programControl); [ Even though still set!
script = 250;
Set( scriptDone);
LoadView( vEve);
LoadView( vEgoWearingTowel);
[ SetView( ego, vEve); [ Done automatically by rm0.
AnimateObj( aEve);
SetView( aEve, vEgoWearingTowel);
Position( aEve, 0, 125);
Draw( aEve);
}
if (previousRoom == rmHotTub)
{
egoX = 8;
egoY = 125;
}
else
{
if (previousRoom == rmBedroom)
{
egoX = 98;
egoY = 100;
}
else
{
egoX = 138; [ in elevator
egoY = 127;
SetLoop( ego, FACING_LEFT);
StopUpdate( ego);
StartMotion( ego);
script = 0;
Set( scriptDone); [ Let's open up the doors.
}
}
PositionV( ego, egoX, egoY);
Draw( ego);
ShowPic( );
if (currentStatus == CHASING_DOLL)
{
script = 150;
MoveObj( ego, 60, 100, 1, scriptDone);
}
Return( );
} [ end initLOG
if (doorsOpen)
{
IgnoreBlocks( ego);
}
else
{
ObserveBlocks( ego);
}
Reset( nearElevator);
if (Posn( ego, 120, 113, 135, 143))
{
Set( nearElevator);
}
Reset( inWayOfDoors);
if (Posn( ego, 123, 119, 138, 131))
{
Set( inWayOfDoors);
}
Reset( insideElevator);
if (Posn( ego, 139, 119, 155, 131))
{
Set( insideElevator);
}
if (doorsOpen &&
!insideElevator &&
!inWayOfDoors)
{
Set( scriptDone);
}
if (doorsOpen && insideElevator)
{
script = 100;
Set( scriptDone); [ Let's go downstairs.
}
[*****
:handleInput
[*****
if (!haveInput) {goto noInput;}
if ((Said( look) ||
Said( look, penthouse) ||
Said( look, room))) [ To catch "look living room"
{
Print( 1);
}
if ((Said( look, elevator) ||
Said( look, door) ||
Said( look, button) ||
Said( look, wall)))
{
Print( 3);
}
if (Said( look, fireplace))
{
Print( 2);
}
if ((Said( look, floor) ||
Said( look, rug)))
{
Print( 4);
}
if ((Said( lift, rug) ||
Said( move, rug) ||
Said( pull, rug) ||
Said( look, under, rug)))
{
Print( 12);
}
if (Said( look, painting))
{
Print( 5);
}
if (Said( look, behind, painting))
{
Print( 14);
}
if (Said( look, sofa))
{
Print( 6);
}
if ((Said( sit) ||
Said( sit, down) ||
Said( use, sofa)))
{
Print( 9);
}
if ((Said( lie, down) ||
Said( sleep)))
{
Print( 13);
}
if (Said( listen, rol))
{
Print( 10);
}
if (Said( open, door))
{
Print( 11);
}
if ((Said( look, outside) ||
Said( look, terrace) ||
Said( look, window) ||
Said( look, out, window)))
{
Print( 7);
}
if ((Said( open, elevator) ||
Said( push, button)))
{
if (!nearElevator)
{
Set( notCloseEnough);
}
else
{
if (doorsOpen)
{
Print( 8);
}
else
{
Set( OK);
script = 0;
Set( scriptDone); [ Let's open up the doors.
}
}
}
[*****
:noInput
[*****
if (scriptDone)
{
Reset( scriptDone);
++script;
if (script == 1) [ open doors
{
StartUpdate( aDoor);
EndOfLoop( aDoor, scriptDone);
}
if (script == 2)
{
StopUpdate( aDoor);
Set( doorsOpen);
}
if (script == 3) [ He's clear; close the doors.
{
Reset( doorsOpen);
StartUpdate( aDoor);
BeginningOfLoop( aDoor, scriptDone);
}
if (script == 4)
{
script = 0;
}
if (script == 101) [ Close the doors. Go downstairs.
{
Reset( doorsOpen);
StopUpdate( ego);
StartUpdate( aDoor);
BeginningOfLoop( aDoor, scriptDone);
}
if (script == 102)
{
newRoom = rmSecurityDesk;
}
[ Chasing the elusive latex muff...
if (script == 151)
{
MoveObj( ego, 40, 120, 1, scriptDone);
}
if (script == 152)
{
MoveObj( ego, 1, 120, 1, scriptDone);
}
if (script == 153)
{
Reset( handsOff);
newRoom = rmHotTub;
}
if (script == 251) [ Walking egoTransvestite to bed.
{
MoveObj( ego, 35, 125, 1, scriptDone);
}
if (script == 252)
{
MoveObj( ego, 60, 103, 1, scriptDone);
}
if (script == 253)
{
MoveObj( ego, 114, 103, 1, scriptDone);
}
if (script == 254)
{
}
if (!script)
{
StopUpdate( aDoor);
}
}
if (script > 250)
{
Distance( ego, aEve, work);
if (work > 10)
{
FollowEgo( aEve, 2, done);
}
}
if (dollDone)
{
Reset( dollDone);
++dollScript;
if (dollScript == 1)
{
MoveObj( aDoll, 0, 123, 2, dollDone);
}
if (dollScript == 2)
{
MoveObj( aDoll, 0, 97, 2, dollDone);
}
if (dollScript == 3)
{
Erase( aDoll);
}
}
if (dollSoundDone && dollOnScreen)
{
Sound( sDollDeflating, dollSoundDone);
}
[*****
:exit [ test for leaving the room
[*****
if (edgeEgoHit == LEFT) {newRoom = rmHotTub;}
if (Posn( ego, 113, 93, 114, 106)) {newRoom = rmBedroom;}

53
RM44.MSG Normal file
View File

@ -0,0 +1,53 @@
[messages for room 44 -- rmLivingRoom
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"This is the living room of the hotel's penthouse suite.
Obviously, the hotel spared no expense here.
There's a fireplace on the wall to the south.
No one is here, but you hear a gurgling noise coming from somewhere."
%message 2
"You wonder how they can make those gas logs look so real!"
%message 3
"There is a button on either side of the elevator."
%message 4
"The bear looks back at you with a glassy-eyed stare,
possibly because his eyes are made of glass!"
%message 5
"It's another one of those boring works of modern art;
this one is signed \"Mark Crowe.\""
%message 6
"Yep. It's a sofa!"
%message 7
"From this height, the view of the city is spectacular."
%message 8
"The elevator doors are already open. Just walk inside."
%message 9
"Instead of sitting, you should investigate that gurgling sound you hear."
%message 10
"There's a sound coming from outside."
%message 11
"The door to the terrace is already open."
%message 12
"You find nothing but dust."
%message 13
"Tired already?"
%message 14
"You can't. It's screwed to the wall."

952
RM45.CG Normal file
View File

@ -0,0 +1,952 @@
[logics for room 45 -- rmBedroom
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm45.msg"
%include "gamedefs.h"
%include "iv_views.h"
%include "contrlrs.h"
%define doorDone lf0
%define nearCloset lf1
%define closetOpen lf2
%define inCloset lf3
%define burst1Done lf4
%define burst2Done lf5
%define burst3Done lf6
%define burst4Done lf7
%define eveHere lf8
%define lookingAtCloseup lf9
%define dollDone lf10
%define burst1InPlace lf11
%define burst2InPlace lf12
%define burst3InPlace lf13
%define burst4InPlace lf14
%define readPreventionMessage lf15
%define nearBed lf16
%define dollInflated lf17
%define cutToLongShot lf18
%define dollOnScreen lf19
%define dollSoundDone lf20
%define closeupLineTimer lv0
%define burst1Cycles lv1
%define burst2Cycles lv2
%define burst3Cycles lv3
%define burst4Cycles lv4
%define dollPicture lv5
%define fireworksPicture lv6
%define action lv7
%object aBurst1 1
%object aBurst2 2
%object aBurst3 3
%object aBurst4 4
%object aDoor 5
%object aEve 6
%object aDoll 7
%object aKen 8
if (initLog)
{
LoadPic( currentRoom);
DrawPic( currentRoom);
[ DON'T DiscardPic( currentRoom);, we'll need it either way.
if (currentStatus == FOLLOWING_EVE)
{
Set( eveHere);
fireworksPicture = picBlack;
LoadPic( fireworksPicture);
LoadView( vEve);
LoadView( vEgoWearingTowel);
LoadView( vEgo);
LoadView( vFireworks);
LoadView( vKen);
LoadSound( mWinner);
AnimateObj( aEve);
IgnoreBlocks( aEve);
SetView( aEve, vEve);
SetLoop( aEve, L_SITTING_ON_BED);
Position( aEve, 55, 116);
Draw( aEve);
CycleTime( aEve, three);
SetView( ego, vEgoWearingTowel);
MoveObj( ego, 48, 121, 1, scriptDone);
}
else
{
if (ObjInRoom( iDoll, currentRoom))
{
dollPicture = picDollCloseup;
LoadPic( dollPicture);
LoadView( vDollDeflating);
LoadSound( sDollDeflating);
}
}
LoadView( vBedroomDoors);
LoadView( vEgoSittingOnBed);
AnimateObj( aDoor);
IgnoreBlocks( aDoor);
IgnoreObjs( aDoor);
SetView( aDoor, vBedroomDoors);
SetCel( aDoor, 0);
SetPriority( aDoor, 10);
Position( aDoor, 117, 130);
Draw( aDoor);
work = DOOR_CYCLE_TIME;
CycleTime( aDoor, work);
StopUpdate( aDoor);
Position( ego, 20, 135);
Draw( ego);
ShowPic( );
Return( );
} [ end initLOG
Reset( nearCloset);
if (Posn( ego, 105, 121, 117, 136))
{
Set( nearCloset);
}
Reset( inCloset);
if (Posn( ego, 117, 121, 129, 131))
{
Set( inCloset);
}
Reset( nearBed);
if (Posn( ego, 56, 123, 86, 138)) [ 123 because he's above bed when
{ [ sitting on the bed
Set( nearBed);
}
if (closetOpen && nearCloset)
{
IgnoreBlocks( ego);
}
else
{
if (inCloset)
{
IgnoreBlocks( ego);
}
else
{
ObserveBlocks( ego);
}
}
[*****
:handleInput
[*****
if (!haveInput) {goto noInput;}
if (Said( look, painting))
{
Print( 22);
}
if (Said( look, behind, painting))
{
Print( 43);
}
if (Said( look, bed))
{
Print( 23);
}
if (Said( look, under, bed))
{
Print( 41);
Print( 42);
}
if ((Said( sit, on, bed) ||
Said( sit) ||
Said( sit, bed)))
{
Print( 38);
}
if ((Said( look) ||
Said( look, room) ||
Said( look, closet) ||
Said( look, bedroom)))
{
if (!inCloset)
{
Print( 1);
}
else [ He's in the closet.
{
if (ObjInRoom( iDoll, currentRoom))
{
Print( 12);
}
else
{
Print( 13);
}
}
}
[ Ibsen was never like this:
if (readPreventionMessage &&
Said( yes))
{
goto patch1;
}
if ((Said( use, doll) ||
Said( abuse, doll) ||
Said( put, dong, doll) ||
Said( put, dong, doll, mouth) ||
Said( put, dong, mouth) ||
Said( sixtynine, doll) ||
Said( make, doll, suck$me) ||
Said( make, doll, give, suck$me) ||
Said( butt, hump, rol) ||
Said( anyword, butt, hump, rol) ||
Said( anyword, butt, rol) ||
Said( butt, rol) ||
Said( anyword, blow$job, rol) ||
Said( anyword, pussy, rol) ||
Said( anyword, anyword, pussy, rol) ||
Said( blow$job, rol) ||
Said( anyword, hump, rol) ||
Said( hump, doll)))
{
if (!Has( iDoll))
{
Set( dontHaveIt);
}
else
{
if (!dollInflated)
{
Print( 29);
}
else
{
if (!readPreventionMessage)
{
Print( 3);
Set( readPreventionMessage);
}
else
{
:patch1;
Print( 8);
Print( 10);
action = 3;
currentScore += 8;
Set( cutToLongShot);
}
}
}
}
if (Said( show, doll))
{
if (!Has( iDoll))
{
Set( dontHaveIt);
}
else
{
if (!dollInflated)
{
ShowObj( ivDoll);
}
else
{
if (lookingAtCloseup)
{
Print( 18);
}
else
{
action = 6;
}
}
}
}
if (Said( inflate, doll))
{
if (!Has( iDoll))
{
Set( dontHaveIt);
}
else
{
action = 6;
}
}
[ Handle the closet, and taking the doll.
if ((Said( open, door) ||
Said( open, closet)))
{
if (closetOpen)
{
Print( 5);
}
else
{
if (!nearCloset)
{
Print( 19);
}
else
{
action = 4;
}
}
}
if ((Said( close, door) ||
Said( close, closet)))
{
if (inCloset)
{
Print( 2);
}
else
{
if (!closetOpen)
{
Print( 6);
}
else
{
if (!nearCloset)
{
Set( notCloseEnough);
}
else
{
if (egoX > 111)
{
Print( 20);
}
else
{
action = 5;
}
}
}
}
}
if ((Said( look, closet) ||
Said( look$in, closet)))
{
if (!closetOpen)
{
Print( 15);
}
else
{
if (!inCloset)
{
Print( 31);
}
else
{
if (ObjInRoom( iDoll, currentRoom))
{
Print( 12);
}
else
{
Print( 13);
}
}
}
}
if (Said( get, doll))
{
if (Has( iDoll))
{
Print( 37);
}
else
{
if (!inCloset)
{
Print( 7);
}
else
{
if (!ObjInRoom( iDoll, currentRoom))
{
Print( 11);
}
else
{
Get( iDoll);
currentScore += 5;
Print( 9);
}
}
}
}
if (lookingAtCloseup)
{
if ((Said( stop, looking, doll) ||
Said( look, room, rol) ||
Said( look, closet, rol)))
{
Print( 35);
Set( cutToLongShot);
}
if ((Said( masturbate, rol) ||
Said( anyword, masturbate, rol)))
{
Print( 44);
}
if ((Said( deflate, doll, rol) ||
Said( anyword, deflate, doll, rol) ||
Said( put, doll, away) ||
Said( damn)))
{
Print( 28);
Set( cutToLongShot);
}
if ((Said( look, doll) ||
Said( talk, doll) ||
Said( smile) ||
Said( smile, doll) ||
Said( hold, hand) ||
Said( take, her, hand) ||
Said( touch, doll) ||
Said( touch, her) ||
Said( ask, date) ||
Said( look, eyes) ||
Said( look$in, eyes) ||
Said( flirt, with, her) ||
Said( wink, doll) ||
Said( give, doll, kiss) ||
Said( kiss, doll) ||
Said( look, her, hair) ||
Said( look, hair) ||
Said( stroke, hair) ||
Said( rub, hair) ||
Said( rub, her, hair) ||
Said( ask, name) ||
Said( ask, her, name) ||
Said( ask, name, doll) ||
Said( larry) ||
Said( leisure$suit, larry) ||
Said( look, mouth) ||
Said( look, her, mouth) ||
Said( doll, marry, me) ||
Said( marry, me) ||
Said( marry, doll) ||
Said( ask, doll, get, married) ||
Said( ask, doll, 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( grab, doll) ||
Said( feel, doll) ||
Said( lick, doll) ||
Said( touch, doll, under, table) ||
Said( grab, leg) ||
Said( touch, leg) ||
Said( feel, her, leg) ||
Said( grab, her, leg) ||
Said( look, doll, boobs) ||
Said( look, boobs, rol) ||
Said( look, body) ||
Said( stare) ||
Said( stare, boobs) ||
Said( undress, her) ||
Said( ask, doll, for, sex) ||
Said( have, sex, with, me) ||
Said( hump, rol) ||
Said( make, doll) ||
Said( anyword, pussy, rol) ||
Said( lick, her, she, screams) ||
Said( anyword, boobs, rol) ||
Said( play, with, her, boobs) ||
Said( grab, boobs) ||
Said( fondle, breasts) ||
Said( come, with, me)))
{
Print( 34);
}
}
[*****
:noInput
[*****
if (Controller( cShowObj) &&
selectedObject == 113)
{
if (dollInflated)
{
Print( 45);
}
else
{
action = 6;
}
}
if (!lookingAtCloseup &&
egoX < 122 &&
Has( iDoll))
{
Print( 14);
action = 3;
}
if (aSecondPassed)
{
--closeupLineTimer;
if (closeupLineTimer == 1 &&
lookingAtCloseup)
{
Print( 17);
}
}
if (scriptDone)
{
Reset( scriptDone);
++script;
if (script == 1)
{
scriptTimer = 3;
}
if (script == 2)
{
UnanimateAll();
DrawPic( fireworksPicture);
ShowPic();
Set( musicDone);
AnimateObj( aBurst1);
IgnoreObjs( aBurst1);
SetView( aBurst1, vFireworks);
FixLoop( aBurst1);
AnimateObj( aBurst2);
IgnoreObjs( aBurst2);
SetView( aBurst2, vFireworks);
FixLoop( aBurst2);
AnimateObj( aBurst3);
IgnoreObjs( aBurst3);
SetView( aBurst3, vFireworks);
FixLoop( aBurst3);
AnimateObj( aBurst4);
IgnoreObjs( aBurst4);
SetView( aBurst4, vFireworks);
FixLoop( aBurst4);
step = 12;
Random( 5, 9, burst1Cycles);
Random( 2, 5, burst2Cycles);
Random( 3, 6, burst3Cycles);
Random( 4, 11, burst4Cycles);
scriptTimer = 7;
currentScore += 25;
}
if (script == 3)
{
Print( 24);
scriptTimer = 4;
}
if (script == 4)
{
Print( 25);
scriptCycles = 11;
}
if (script == 5)
{
Print( 46);
AnimateObj( aKen);
IgnoreObjs( aKen);
SetView( aKen, vKen);
SetLoop( aKen, FACING_RIGHT);
Position( aKen, 0, 166);
Draw( aKen);
MoveObj( aKen, 66, 166, 1, scriptDone);
}
if (script == 6)
{
SetLoop( aKen, FACING_FRONT);
scriptTimer = 4;
}
if (script == 7)
{
Print( 26);
MoveObj( aKen, 151, 166, 1, scriptDone);
}
if (script == 8)
{
Erase( aKen);
Print( 27);
scriptTimer = 4;
}
if (script == 9)
{
Print( 32);
scriptTimer = 4;
}
if (script == 10)
{
Print( 33);
Print( 30);
Print( 36);
Quit( 1);
}
if (script == 101)
{
SetView( ego, vEgo);
StartCycling( ego);
MoveObj( ego, 110, 131, 1, scriptDone);
}
if (script == 102)
{
MoveObj( ego, 107, 134, 1, scriptDone);
}
if (script == 103)
{
MoveObj( ego, 17, 134, 1, scriptDone);
}
if (script == 104)
{
Reset( handsOff);
newRoom = rmLivingRoom;
}
}
if (doorDone)
{
Reset( doorDone);
StopUpdate( aDoor);
}
--burst1Cycles;
if (burst1Cycles == 1)
{
Random( 0, 3, loop);
SetLoopV( aBurst1, loop);
SetCel( aBurst1, 0);
StopCycling( aBurst1);
Random( 0, 150, x);
Random( 120, 167, y);
PositionV( aBurst1, x, y);
Draw( aBurst1);
Random( 40, 110, y);
MoveObjV( aBurst1, x, y, step, burst1InPlace);
}
if (burst1InPlace)
{
Reset(burst1InPlace);
EndOfLoop( aBurst1, burst1Done);
}
if (burst1Done)
{
Reset( burst1Done);
Erase( aBurst1);
Random( 2, 7, burst1Cycles);
}
--burst2Cycles;
if (burst2Cycles == 1)
{
Random( 0, 3, loop);
SetLoopV( aBurst2, loop);
SetCel( aBurst2, 0);
StopCycling( aBurst2);
Random( 0, 150, x);
Random( 120, 167, y);
PositionV( aBurst2, x, y);
Draw( aBurst2);
Random( 40, 110, y);
MoveObjV( aBurst2, x, y, step, burst2InPlace);
}
if (burst2InPlace)
{
Reset(burst2InPlace);
EndOfLoop( aBurst2, burst2Done);
}
if (burst2Done)
{
Reset( burst2Done);
Erase( aBurst2);
Random( 2, 7, burst2Cycles);
}
--burst3Cycles;
if (burst3Cycles == 1)
{
Random( 0, 3, loop);
SetLoopV( aBurst3, loop);
SetCel( aBurst3, 0);
StopCycling( aBurst3);
Random( 0, 150, x);
Random( 120, 167, y);
PositionV( aBurst3, x, y);
Draw( aBurst3);
Random( 40, 110, y);
MoveObjV( aBurst3, x, y, step, burst3InPlace);
}
if (burst3InPlace)
{
Reset(burst3InPlace);
EndOfLoop( aBurst3, burst3Done);
}
if (burst3Done)
{
Reset( burst3Done);
Erase( aBurst3);
Random( 2, 7, burst3Cycles);
}
--burst4Cycles;
if (burst4Cycles == 1)
{
Random( 0, 3, loop);
SetLoopV( aBurst4, loop);
SetCel( aBurst4, 0);
StopCycling( aBurst4);
Random( 0, 150, x);
Random( 120, 167, y);
PositionV( aBurst4, x, y);
Draw( aBurst4);
Random( 40, 110, y);
MoveObjV( aBurst4, x, y, step, burst4InPlace);
}
if (burst4InPlace)
{
Reset(burst4InPlace);
EndOfLoop( aBurst4, burst4Done);
}
if (burst4Done)
{
Reset( burst4Done);
Erase( aBurst4);
Random( 2, 7, burst4Cycles);
}
if (dollDone)
{
Reset( dollDone);
Erase( aDoll);
Reset( dollOnScreen);
Print( 21);
}
if (cutToLongShot)
{
Reset( cutToLongShot);
Reset( lookingAtCloseup);
UnanimateAll();
DrawPic( currentRoom);
AnimateObj( ego);
Draw( ego);
AnimateObj( aDoor);
IgnoreBlocks( aDoor);
IgnoreObjs( aDoor);
SetPriority( aDoor, 10);
work = DOOR_CYCLE_TIME;
CycleTime( aDoor, work);
Draw( aDoor);
StopUpdate( aDoor);
ShowPic();
}
if (action)
{
if (action == 3)
{
Drop( iDoll);
Set( programControl);
PreventInput();
StopMotion( ego);
Set( handsOff);
currentStatus = CHASING_DOLL;
Reset( keepCycling);
Reset( noCycling);
script = 100;
scriptCycles = 13;
AnimateObj( aDoll);
IgnoreHorizon( aDoll);
IgnoreBlocks( aDoll);
IgnoreObjs( aDoll);
SetView( aDoll, vDollDeflating);
SetPriority( aDoll, 11);
Position( aDoll, 116, 100);
Draw( aDoll);
Set( dollOnScreen);
MoveObj( aDoll, 0, 100, 2, dollDone);
Set( dollSoundDone);
}
if (action == 4)
{
Set( OK);
Set( closetOpen);
StartUpdate( aDoor);
EndOfLoop( aDoor, doorDone);
}
if (action == 5)
{
Set( OK);
Reset( closetOpen);
StartUpdate( aDoor);
BeginningOfLoop( aDoor, doorDone);
}
if (action == 6)
{
if (!dollInflated)
{
Set( dollInflated);
Print( 16);
closeupLineTimer = 6;
if (!inflatedDoll)
{
Set( inflatedDoll);
currentScore += 5;
}
}
UnanimateAll();
DrawPic( dollPicture);
ShowPic();
Set( lookingAtCloseup);
}
action = 0;
}
if (dollSoundDone && dollOnScreen)
{
Sound( sDollDeflating, dollSoundDone);
}
if (musicDone)
{
Sound( mWinner, musicDone);
}
[*****
:exit [ test for leaving the room
[*****
if (edgeEgoHit == LEFT)
{
newRoom = rmLivingRoom;
}

171
RM45.MSG Normal file
View File

@ -0,0 +1,171 @@
[messages for room 45 -- rmBedroom
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"The penthouse bedroom is quite deluxe."
%message 2
"Didn't your Mother tell you that doing that would make you go blind?"
%message 3
"Geez, Larry. Do we have to?"
%message 4
"Now?! When she's waiting for you on the bed??"
%message 5
"It is open."
%message 6
"It's not open."
%message 7
"There's no inflatable doll out here."
%message 8
"All right, you asked for it.\n\n
In fact, you've asked for it twice! Here we go..."
%message 9
"Got her!"
%message 10
"Selecting your own personal favorite from the three available openings,
you shyly try out the doll.
This has to be the kinkiest thing you've done in a long time, Larry.\n\n
You gradually increase your tempo as you lose your inhibitions
(not to mention your self-esteem).
Faster and faster you go, until suddenly, there's a loud, flatulent sound..."
%message 11
"You lost her, remember!"
%message 12
"You've found a closet full of uninteresting stuff, plus one inflatable doll."
%message 13
"The rest of the closet is rather dull compared to the inflatable doll."
%message 14
"Walking out of the closet, you clumsily catch your new friend on a
protruding nail!
There's a loud, flatulent sound, and..."
%message 15
"The closet is closed."
%message 16
"You huff, and you puff, and you blow your doll up.
Holding her out at arm's length, you pause to admire your handiwork..."
%message 17
"...somehow you expected more."
%message 18
"What more would you want to see?"
%message 19
"Move closer to the handle."
%message 20
"Move out of the way of the door first."
%message 21
"Go get her, Larry."
%message 22
"It's another one of those boring works of modern art;
this one is signed \"Mark Crowe.\""
%message 23
"The bedspread is made of genuine, 100 per cent, acrylic zebrahide."
%message 24
"Congratulations, Larry!!!\n\n
You've done it!!\n\n
You've successfully completed your evening in Sierra World,
lost your virginity, and emerged victorious!"
%message 25
"Of course, your feelings of success are short-lived,
since this is where Ken Williams has to tell you about our
soon-to-be-released sequel.\n\n
Hey, Ken! Come here, and give 'em your pitch..."
%message 26
"\"Hi, folks! Remember, coming to this very computer Real Soon Now,
is the next installment in the saga of Larry Laffer,
traveling software salesman.
I'd tell you the name now, but we haven't made one up yet!\n\n
(Be sure to pick up a few extra copies,
just in case our disk copier is screwed up again!)\""
%message 27
"Oh, wait. We almost forget to tell you how well you played."
%message 28
"You can't bear the thought of deflating your new friend, so you don't!"
%message 29
"What fun is an uninflated inflatable doll?"
%message 30
"...thanks for playing,
and be sure to tell each and every one of your friends
to buy their own personal copy of this game."
%message 31
"Move inside the closet."
%message 32
"You played ok, I guess!"
%message 33
"On behalf of Mark and Sandy, Al and Marg, Jeff and Chris,
Russ and Kim, Larry and Bob, Ken and Roberta, Bob and Marilyn and/or
Bob and Jeannine, John and Mary, Bob and Carol and Ted and Alice..."
%message 34
"Don't you find it difficult to have a meaningful relationship with latex?"
%message 35
"OK."
%message 36
"Love ya, baby!"
%message 37
"Sorry. One's your limit!"
%message 38
"You don't have time to rest!"
%message 39
"You are standing."
%message 40
"Perhaps if you first established mouth/latex contact..."
%message 41
"Picking up the corner of the expensive, vinyl, zebra-skin bedspread, you
discover..."
%message 42
"...nothing."
%message 43
"You can't. It's screwed to the wall."
%message 44
"That's not what she's for, Larry."
%message 45
"...and that's exactly the way she used to look!"
%message 46
"Ladies and gentlemen...\n\n
Mr. Ken Williams!"

59
RM50.CG Normal file
View File

@ -0,0 +1,59 @@
[logics for room 50 -- initLog for room 0
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "gamedefs.h"
if (monitorType != MONO)
{
ClearLines( 22, 22, BG_COLOR);
ClearLines( 24, 24, BG_COLOR);
}
if (!forceAtest) [ activate close to shipping
{
Reset( debugging);
Reset( enableTrace);
}
if (demo)
{
PreventInput();
}
AnimateObj( ego);
StepSize( ego, egoStepSize);
StepTime( ego, egoStepTime);
CycleTime( ego, egoCycleTime);
GetPosn( ego, egoX, egoY);
ObserveBlocks( ego);
ObserveObjs( ego);
ObserveHorizon( ego);
egoLocation = 0;
secondsInRoom = 0;
passInRoom = 0;
newRoom = 0;
script = 0;
scriptCycles = 0;
scriptTimer = 0;
Reset( outOfMemory);
Reset( survivableFall);
Reset( egoArrived);
Reset( scriptDone);
Reset( musicDone);
Reset( soundDone);
Reset( noScript);
work = 255;
:mrLooper [All that remains of "Reset the world"
ResetV( work);
work @= 0;
--work;
if (work > 199)
{
goto mrLooper;
}

179
RM51.CG Normal file
View File

@ -0,0 +1,179 @@
[logics for room 51 -- lgc.startup
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "gamedefs.h"
%include "contrlrs.h"
%message 1 "_"
%message 2 "]"
%message 3 "LLLLL"
SetCursorChar( 1); [ cursor
SetString( 0, 2); [ prompt
SetGameId( 3); [ id
TraceInfo( lgcTrace, 2, 9); [ sets: room, y TOP, lines tall
SetTextAttribute( TEXT_COLOR, BG_COLOR);
maxScore = 222; [ set up the status line first
if (monitorType != MONO)
{
ClearLines( 22, 24, BG_COLOR);
}
ConfigureScreen( 1, 23, 0);
Set( enableMenu);
DisableItem( cDummy);
Set( soundOn);
egoStepSize = 1;
egoStepTime = 1;
egoCycleTime = 1;
egoX = 77;
egoY = 166;
mouthMessage = 157; [ First bad breath message.
if ((machineType == PC ||
machineType == JR ||
machineType == TANDY ||
machineType == APPLEII))
{
Set( twoButtonJoystick);
}
else
{
Set( mouseMachine);
if (machineType == ST)
{
Set( enableDoubleClick);
}
}
dollars = 94;
cabFareMin = 5;
cabRideLength = 15;
Set( mouthOK);
sprayMinutes = SPRAY_INIT_MINUTES;
watchHours = WATCH_INIT_HOURS;
one = 1;
two = 2;
three = 3;
four = 4;
five = 5;
[testRoom = 12;
if (testRoom)
{
[ Set( debugging);
[ Reset( demo);
[ Reset( programControl);
[ AcceptInput();
[ animationInterval = FASTEST_SPEED;
[ Set( clockOn);
[ Set( enableMenu);
[ Set( passedTest);
[ StatusLineOn();
}
else
{
if (!restartInProgress)
{
Set( demo); [ Set up for a real start!
Set( programControl);
PreventInput();
animationInterval = NORMAL_SPEED;
Reset( clockOn);
Reset( enableMenu);
StatusLineOff();
}
else
{
Reset( demo); [ Don't do a real start.
StatusLineOn();
Set( passedTest);
Return(); [ Don't reassign keys.
}
}
[ Assign keys to controller functions.
SetKey( 0, 59, cHelp); [F1
SetKey( 0, 60, cSoundToggle); [F2
SetKey( 0, 61, cEchoLine); [F3
SetKey( 0, 62, cF4); [F4
SetKey( 0, 63, cSave); [F5
SetKey( 0, 64, cF6); [F6
SetKey( 0, 65, cRestore); [F7
SetKey( 0, 66, cF8); [F8
SetKey( 0, 67, cRestart); [F9
SetKey( 0, 68, cSpeed); [F10
[ Set control & alt keys.
if (machineType == TANDY)
{
SetKey( 61, 0, cCrescendo); [+
SetKey( 45, 0, cDecrescendo); [-
SetKey( 43, 0, cCrescendo); [+
}
SetKey( 9, 0, cStatus); [TAB
if (machineType == AMIGA)
{
SetKey( 27, 0, cPause); [ESC
}
else
{
SetKey( 27, 0, cMenu); [ESC
}
SetKey( 2, 0, cBoss); [^B
SetKey( 3, 0, cCancelLine); [^C
SetKey( 5, 0, cEchoLine); [^E
SetKey( 10, 0, cInitJoy); [^J
SetKey( 18, 0, cToggleMonitor); [^R
SetKey( 19, 0, cSoundToggle); [^S
SetKey( 0, 32, cDebug); [@D
SetKey( 0, 18, cShowEgo); [@E
SetKey( 0, 23, cObjInfo); [@I
SetKey( 0, 50, cShowMem); [@M
SetKey( 0, 25, cShowPriority); [@P
SetKey( 0, 45, cSkipTest); [@X
SetKey( 0, 47, cVersion); [@V
SetKey( 0, 44, cQuit); [@Z
[ Substitute PCjr number keys as function keys.
if (machineType == JR)
{
SetKey( 49, 0, cHelp); [1
SetKey( 50, 0, cSoundToggle); [2
SetKey( 51, 0, cEchoLine); [3
SetKey( 52, 0, cF4); [4
SetKey( 53, 0, cSave); [5
SetKey( 54, 0, cF6); [6
SetKey( 55, 0, cRestore); [7
SetKey( 56, 0, cF8); [8
SetKey( 57, 0, cRestart); [9
SetKey( 48, 0, cSpeed); [0
}
[ Set joystick controllers.
SetKey( JOYSTICK_LOW_BYTE, BUTTON_0, cMenu);
if (twoButtonJoystick)
{
SetKey( JOYSTICK_LOW_BYTE, BUTTON_1, cStatus);
[SetKey( JOYSTICK_LOW_BYTE, BUTTON_0_DOUBLE, c.doit);
[SetKey( JOYSTICK_LOW_BYTE, BUTTON_1_DOUBLE, c.useit);
}
else {
if (machineType == ST)
{
SetKey( JOYSTICK_LOW_BYTE, BUTTON_0_DOUBLE, cStatus);
}
}

266
RM52.CG Normal file
View File

@ -0,0 +1,266 @@
[logics for room 52 -- lgc.debug
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "gamedefs.h"
%include "contrlrs.h"
%include "colors.h"
[ if (Said( blow$me, boob, hump, fag))
[ {
[ Call( lgcID);
[ }
%message 1 "New room:"
%message 2 "X coordinate:"
%message 3 "Y coordinate:"
%message 4 "Object number:"
%message 5 "Flag number:"
%message 6 "New value:"
%message 7 "You gottum, Larry."
%message 8 "Variable number:"
%message 9 "Variable %v45 = %v46"
%message 10 "Flag %v45 set"
%message 11 "Flag %v45 not set"
%message 12 "New priority:"
%message 13 "Object %v46 is in room %v45."
%message 14 "%v45|3/%v46|3"
%message 15 "Room %v0|3"
%message 16 "%v45|2 %o45"
%message 17 "Number Name of Object"
%message 18 "%v8 memory pages left."
%message 19 ""
%message 20 "Unknown word: \""
[ %message 21 "%m20%w1\""
[ %message 22 "%m20%w2\""
[ %message 23 "%m20%w3\""
[ %message 24 "%m20%w4\""
[ %message 25 "%m20%w5\""
[ %message 26 "%m20%w6\""
[ %message 27 "%m20%w7\""
[ %message 28 "%m20%w8\""
%message 29 "H"
%message 30 " "
%message 31 ""
if (initLog && xyOn && monitorType != MONO)
{
SetTextAttribute( BROWN, BG_COLOR);
ClearTextRect( 24, 26, 24, 34, BG_COLOR);
Display( 24, 26, 15);
SetTextAttribute( TEXT_COLOR, BG_COLOR);
[ if (memoryCheck)
[ {
[ Log( 18);
[ }
}
if (Controller( cObjInfo))
{
GetNum( 4, debug0);
if (debug0 > 15)
{
debug0 = 15;
}
ObjStatusV( debug0);
}
if ((Controller( cShowEgo) ||
Said( where)))
{
debug0 = 0;
ObjStatusV( debug0);
}
if (Controller( cShowMem))
{
ShowMem();
[ Log( 18);
}
if ((Controller( cShowPriority) ||
Said( show, priority)))
{
ShowPriScreen();
}
if (monitorType != MONO)
{
if (handsOff)
{
SetTextAttribute( BROWN, BG_COLOR);
Display( 24, 35, 29);
SetTextAttribute( TEXT_COLOR, BG_COLOR);
}
else
{
Display( 24, 35, 30);
}
}
if ((Controller( cInvNumbers) ||
Said( object, number)))
{
lastChar = 0;
SetTextAttribute( BROWN, WHITE);
TextScreen( );
Display( 2, 6, 17);
debug0 = 1; [ Object number counter.
x = 10;
y = 4;
message = 16;
:mrLooper2;
DisplayV( y, x, message);
++debug0;
++y;
if (!debug0 > SIZE_OF_INVENTORY)
{
goto mrLooper2;
}
:checkKb2;
if (!HaveKey( ))
{
goto checkKb2;
}
SetTextAttribute( TEXT_COLOR, BG_COLOR);
Graphics( );
}
if (Said( object, room))
{
GetNum( 4, debug1);
GetRoomV( debug1, debug0);
Print( 13);
}
if (Said( set, priority))
{
GetNum( 12, debug1);
SetPriorityV( ego, debug1);
}
if (Said( release, priority))
{
ReleasePriority( ego);
}
if (said( tp))
{
GetNum( 1, debug0);
NewRoomV( debug0);
}
if (said( position))
{
GetNum( 2, debug0);
GetNum( 3, debug1);
RepositionToV( ego, debug0, debug1);
}
if (monitorType != MONO &&
(Said( show, position) ||
Said( room, number) ||
Said( room) ||
Controller( cXY) ||
Said( xy)))
{
Toggle( xyOn);
SetTextAttribute( BROWN, BG_COLOR);
Display( 24, 26, 15);
SetTextAttribute( TEXT_COLOR, BG_COLOR);
}
if (monitorType != MONO && xyOn)
{
debug0 = egoX;
debug1 = egoY;
SetTextAttribute( BROWN, BG_COLOR);
Display( 24, 16, 14);
SetTextAttribute( TEXT_COLOR, BG_COLOR);
}
if ((Said( gimme, gimme) ||
Controller( cGimme)))
{
Display( 0, 0, 7);
debug0 = 0;
debug1 = INVENTORY;
:mrLooper3;
++debug0;
if (!debug0 > SIZE_OF_INVENTORY)
{
PutV( debug0, debug1);
goto mrLooper3;
}
}
if (Said( get, object))
{
GetNum( 4, debug0);
GetV( debug0);
}
if (Said( show, flag))
{
GetNum( 5, debug0);
if (IssetV( debug0))
{
Print( 10);
}
else {
Print( 11);
}
}
if (Said( set, flag))
{
GetNum( 5, debug0);
SetV( debug0);
}
if (Said( Reset, flag))
{
GetNum( 5, debug0);
ResetV( debug0);
}
if (Said( show, var))
{
GetNum( 8, debug0);
debug1 =@ debug0;
Print( 9);
}
if (Said( set, var))
{
GetNum( 8, debug0);
GetNum( 6, debug1);
debug0 @= debug1;
}
[ if (unknownWord)
[ {
[ if (unknownWord == 1) {Log( 21);}
[ if (unknownWord == 2) {Log( 22);}
[ if (unknownWord == 3) {Log( 23);}
[ if (unknownWord == 4) {Log( 24);}
[ if (unknownWord == 5) {Log( 25);}
[ if (unknownWord == 6) {Log( 26);}
[ if (unknownWord == 7) {Log( 27);}
[ if (unknownWord > 7) {Log( 28);}
[ }
[*****
:exit
[*****

247
RM53.CG Normal file
View File

@ -0,0 +1,247 @@
[Room 53 -- lgc.trace messages
#message 1 "increment"
#message 2 "decrement"
#message 3 "assignn"
#message 4 "assignv"
#message 5 "addn"
#message 6 "addv"
#message 7 "subn"
#message 8 "subv"
#message 9 "lindirectv"
#message 10 "rindirect"
#message 11 "lindirectn"
#message 12 "set"
#message 13 "reset"
#message 14 "toggle"
#message 15 "set.v"
#message 16 "reset.v"
#message 17 "toggle.v"
[Logics
#message 18 "new.room"
#message 19 "new.room.v"
#message 20 "load.logics"
#message 21 "load.logics.v"
#message 22 "call"
#message 23 "call.v"
[Pictures
#message 24 "load.pic"
#message 25 "draw.pic"
#message 26 "show.pic"
#message 27 "discard.pic"
#message 28 "overlay.pic"
#message 29 "show.pri.screen"
[Views
#message 30 "load.view"
#message 31 "load.view.v"
#message 32 "discard.view"
[Animated objects
#message 33 "animate.obj"
#message 34 "unanimate.all"
#message 35 "draw"
#message 36 "erase"
#message 37 "position"
#message 38 "position.v"
#message 39 "get.posn"
#message 40 "reposition"
[Views of animated objects
#message 41 "set.view"
#message 42 "set.view.v"
#message 43 "set.loop"
#message 44 "set.loop.v"
#message 45 "fix.loop"
#message 46 "release.loop"
#message 47 "set.cel"
#message 48 "set.cel.v"
#message 49 "last.cel"
#message 50 "current.cel"
#message 51 "current.loop"
#message 52 "current.view"
#message 53 "number.of.loops"
[Priority control of animated objects
#message 54 "set.priority"
#message 55 "set.priority.v"
#message 56 "release.priority"
#message 57 "get.priority"
[Attributes of animated objects
#message 58 "stop.update"
#message 59 "start.update"
#message 60 "force.update"
#message 61 "ignore.horizon"
#message 62 "observe.horizon"
#message 63 "set.horizon"
#message 64 "object.onWater"
#message 65 "object.on.land"
#message 66 "object.on.anything"
#message 67 "ignore.objs"
#message 68 "observe.objs"
#message 69 "distance"
[Cycling of animated objects
#message 70 "stop.cycling"
#message 71 "start.cycling"
#message 72 "normal.cycle"
#message 73 "end.of.loop"
#message 74 "reverse.cycle"
#message 75 "reverse.loop"
#message 76 "cycle.time"
[Motion of animated objects
#message 77 "stop.motion"
#message 78 "start.motion"
#message 79 "step.size"
#message 80 "step.time"
#message 81 "move.obj"
#message 82 "move.obj.v"
#message 83 "follow.ego"
#message 84 "wander"
#message 85 "normal.motion"
#message 86 "set.dir"
#message 87 "get.dir"
#message 88 "ignore.blocks"
#message 89 "observe.blocks"
#message 90 "block"
#message 91 "unblock"
[Inventory objects
#message 92 "get"
#message 93 "get.v"
#message 94 "drop"
#message 95 "put"
#message 96 "put.v"
#message 97 "get.room.v"
[Sounds
#message 98 "load.sound"
#message 99 "sound"
#message 100 "stop.sound"
[Screen Display
#message 101 "print"
#message 102 "print.v"
#message 103 "display"
#message 104 "display.v"
#message 105 "clear.lines"
#message 106 "text.screen"
#message 107 "graphics"
#message 108 "set.cursor.char"
#message 109 "set.text.attribute"
#message 110 "shake.screen"
[Screen handling
#message 111 "configure.screen"
#message 112 "status.line.on"
#message 113 "status.line.off"
[String handling
#message 114 "set.string"
#message 115 "get.string"
#message 116 "word.to.string"
#message 117 "parse"
#message 118 "get.num"
[Input handling
#message 119 "prevent.input"
#message 120 "accept.input"
#message 121 "set.key"
[Add to picture
#message 122 "add.to.pic"
#message 123 "add.to.pic.v"
[User requested actions
#message 124 "status"
#message 125 "save.game"
#message 126 "restore.game"
#message 127 "init.disk"
#message 128 "restart.game"
[Show object view
#message 129 "show.obj"
[Miscellaneous
#message 130 "random"
#message 131 "program.control"
#message 132 "player.control"
#message 133 "obj.status.v"
#message 134 "quit"
#message 135 "show.mem"
#message 136 "pause"
#message 137 "echo.line"
#message 138 "cancel.line"
#message 139 "init.joy"
#message 140 "toggle.monitor"
#message 141 "version"
#message 142 "script.size"
#message 143 "set.game.id"
#message 144 "log"
#message 145 "set.scan.start"
#message 146 "reset.scan.start"
#message 147 "reposition.to"
#message 148 "reposition.to.v"
#message 149 "trace.on"
#message 150 "trace.info"
#message 151 "print.at"
#message 152 "print.at.v"
#message 153 "discard.view.v"
#message 154 "clear.text.rect"
#message 155 "set.upper.left"
#message 156 "set.menu"
#message 157 "set.menu.item"
#message 158 "submit.menu"
#message 159 "enable.item"
#message 160 "disable.item"
#message 161 "menu.input"
#message 162 "show.obj.v"
#message 163 "open.dialogue"
#message 164 "close.dialogue"
#message 165 "mul.n"
#message 166 "mul.v"
#message 167 "div.n"
#message 168 "div.v"
#message 169 "close.window"
#message 220 "equaln"
#message 221 "equalv"
#message 222 "lessn"
#message 223 "lessv"
#message 224 "greatern"
#message 225 "greaterv"
#message 226 "isset"
#message 227 "isset.v"
#message 228 "has"
#message 229 "obj.in.room"
#message 230 "posn"
#message 231 "controller"
#message 232 "have.key"
#message 233 "said"
#message 234 "compare.strings"
#message 235 "obj.in.box"
#message 236 "center.posn"
#message 237 "right.posn"

45
RM54.CG Normal file
View File

@ -0,0 +1,45 @@
[logics for room 54 -- disk-based error handling
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
#include "sysdefs.h"
%message 1 "DiscardView(%v18):%m30";
%message 2 "SetView(%v18,_):%m26";
%message 3 "SetView(_,%v18):%m30";
%message 4 "SetLoop(%v18,_):%m26";
%message 5 "SetLoop(%v18,_):\nBad loop #.%m25";
%message 6 "SetLoop(%v18,_):%m31";
%message 7 "SetCel(%v18,_):%m26";
%message 8 "SetCel(%v18,_):\nBad cel #.%m25";
%message 9 "Sound(%v18):\nSound not loaded.%m25";
%message 10 "SetCel(%v18,_):%m31";
%message 11 "Script buffer overflow.\nMaximum size = %v18%m25";
%message 12 "Erase(%v18):%m26";
%message 13 "AnimateObj(%v18):%m26";
%message 14 "Print(%v18): no message%m25";
%message 15 "Bad test: %v18%m25";
%message 16 "Bad action: %v18%m25";
%message 17 "StartUpdate(%v18):%m28";
%message 18 "DrawPic(%v18):%m32";
%message 19 "Draw(%v18):%m26";
%message 20 "Draw(%v18):%m31";
%message 21 "DiscardPic(%v18):%m32";
%message 22 "SetScanStart() already active\nin logic %v18.%m25";
%message 23 "Get(%v18) or Put(%v18):%m26";
%message 24 ""
%message 25 "\nPress ESC to quit.";
%message 26 "%m27.%m25"; [Bad object number
%message 27 "\nBad object number";
%message 28 "%m27 or object not drawn.%m25" [ " " " or object not drawn
%message 29 "\nView not ";
%message 30 "%m29loaded.%m25"; [View not loaded
%message 31 "%m29set.%m25"; [View not set
%message 32 "Picture not loaded.%m25";
PrintV( errorNumber);
Quit(1);

175
RM55.CG Normal file
View File

@ -0,0 +1,175 @@
[logics for room 55 -- lgc.help
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm55.msg"
%include "gamedefs.h"
%include "colors.h"
PreventInput();
StatusLineOff();
SetTextAttribute( BLUE, WHITE);
TextScreen();
lastChar = 0;
Reset( haveMatch);
Display( 1, 9, 1);
Display( 2, 5, 2);
Display( 5, 11, 3);
Display( 9, 1, 4);
Display( 10, 1, 5);
Display( 13, 1, 6);
Display( 14, 1, 7);
Display( 15, 1, 8);
Display( 18, 1, 9);
Display( 19, 1, 10);
Display( 22, 1, 17);
Display( 23, 1, 18);
:checkKb
if (!HaveKey())
{
goto checkKb;
}
lastChar = 0;
SetTextAttribute( TEXT_COLOR, BG_COLOR);
TextScreen( );
Display( 1, 9, 1);
Display( 2, 5, 2);
Display( 5, 11, 21);
Display( 9, 1, 22);
Display( 10, 1, 23);
if (machineType == ST)
{
Display( 13, 1, 11);
Display( 14, 1, 12);
Display( 15, 1, 13);
}
else
{
Display( 13, 1, 24);
Display( 14, 1, 25);
Display( 15, 1, 26);
}
Display( 18, 1, 9);
Display( 19, 1, 10);
if (mouseMachine)
{
:checkKb2
if (!HaveKey( ))
{
goto checkKb2;
}
[ helpScreen3:
lastChar = 0;
SetTextAttribute( TEXT_COLOR, BG_COLOR);
TextScreen( );
Display( 1, 9, 1);
Display( 2, 5, 2);
Display( 5, 13, 41);
Display( 9, 1, 42);
if (machineType == ST)
{
Display( 10, 1, 48);
Display( 13, 1, 44);
Display( 14, 1, 49);
Display( 15, 1, 50);
}
else
{
if ((machineType == CORTLAND ||
machineType == MAC))
{
Display( 10, 1, 43);
}
else
{
if (machineType == AMIGA)
{
Display( 10, 1, 48);
Display( 13, 1, 45);
Display( 14, 1, 46);
}
}
}
Display( 18, 1, 9);
Display( 19, 1, 10);
}
Display( 23, 7, 47);
:checkKb3
if (!HaveKey( ))
{
goto checkKb3;
}
lastChar = 0;
SetTextAttribute( TEXT_COLOR, BG_COLOR);
AcceptInput();
StatusLineOn();
Graphics();
Set( haveMatch);


93
RM55.MSG Normal file
View File

@ -0,0 +1,93 @@
[messages for room 55 -- lgc.help
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
[ 0 5 10 15 20 25 30 35 39
[ | | | | | | | | |
%message 1 "Leisure Suit Larry in"
%message 2 "the Land of the Lounge Lizards"
%message 3 "KEYBOARD COMMANDS"
%message 4 "Use arrows or number keys to move"
%message 5 "Larry."
%message 6 "Press ESC to use the menus."
%message 7 "Press ENTER to choose from a menu,"
%message 8 "or ESC to return to the game."
%message 9 "Some menu choices list a function key"
%message 10 "\"shortcut\" beside their name."
%message 17 "For a Hint Book, call (209) 683-6858."[
%message 18 " (For a good time, call the author!)" [
[%message 1 "Leisure Suit Larry in"
[%message 2 "the Land of the Lounge Lizards"
%message 21 "JOYSTICK COMMANDS"
%message 22 "Point joystick in desired direction"
%message 23 "to move Larry."
%message 24 "Press top button to use the menus."
%message 25 "Press other button to see the status"
%message 26 "screen."
%message 11 "Press button to use the menus."
%message 12 "Double-click button to see the status"
%message 13 "screen."
[%message 9 "Some menu choices list a function key"
[%message 10 "\"shortcut\" beside their name."
[%message 1 "Leisure Suit Larry in"
[%message 2 "the Land of the Lounge Lizards"
%message 41 "MOUSE COMMANDS"
%message 42 "Put cursor where you want Larry to" [ EVERYBODY!
%message 43 "go, then click the button." [ Mac/Cortland only
%message 48 "go, then click left button." [ non-Apple
%message 44 "Press right button to use menus." [ ST only
%message 49 "Double-click right button to see the" [ ST only
%message 50 "status screen."
%message 45 "Press left button in the window" [ AMIGA only
%message 46 "bar to use menus." [ AMIGA only
[%message 9 "Some menu choices list a function key"
[%message 10 "\"shortcut\" beside their name."
%message 47 "Press any key to return to game."


234
RM56.CG Normal file
View File

@ -0,0 +1,234 @@
[logics for room 56 -- lgcBlackjack
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm56.msg"
%include "gamedefs.h"
%include "bj.h"
[ Structure:
[ cards are numbered from 0 through 51.
[ cells are numbered 0 through 12.
[ a card's value is 2 more than its number.
[ a card's cell is equal to its number.
if ((function == DRAW_CARD ||
function == DRAW_FACE_DOWN ||
function == ERASE_CARD))
{
[ Requires for input the pointer "currentCard" which points to a var
[that contains a card. Leaves "currentCard" unaffected, but does muck
[up "card" as a local "work", and by calling "getSuitValue."
[Correctly sets "value" too.
#define CARD_1_X 28
#define CARD_2_X 46
#define CARD_3_X 64
#define CARD_4_X 82
#define CARD_5_X 100
#define CARD_6_X 118
#define DEALER_Y 45
#define PLAYER_Y 152
#define SPLIT_HAND_Y 106
if (!currentCard < sFirstCard) [ is it a split?
{
y = SPLIT_HAND_Y;
card = currentCard;
card -= sFirstCard;
}
else
{
if (!currentCard < pFirstCard) [ is it a player card?
{
y = PLAYER_Y;
card = currentCard;
card -= pFirstCard;
}
else [ Nope, it's the dealer's.
{
y = DEALER_Y;
card = currentCard;
card -= dFirstCard;
}
}
if (card == 0) {x = CARD_1_X;}
if (card == 1) {x = CARD_2_X;}
if (card == 2) {x = CARD_3_X;}
if (card == 3) {x = CARD_4_X;}
if (card == 4) {x = CARD_5_X;}
if (card == 5) {x = CARD_6_X;}
card =@ currentCard;
goto getSuitValue; [ This
:returnToHere; [ is ugly!!
if (function == ERASE_CARD)
{
view = BLANK_CARD;
cell = 0;
}
else
{
if (function == DRAW_FACE_DOWN)
{
view = CARD_BACK;
cell = 0;
}
else
{
view = suit;
}
}
loop = 0;
priority = 4;
AddToPicV( view, loop, cell, x, y, priority, priority);
Sound( sCard, done);
}
if (function == GET_SUIT_VALUE)
{
[ Takes "card" as input, leaves "card" unaffected, and adjusts
["cell," "value," and "suit."
:getSuitValue;
cell = card;
if (card < 13)
{
suit = HEARTS;
}
else
{
if (card < 26)
{
suit = CLUBS;
cell -= 13;
}
else
{
if (card < 39)
{
suit = SPADES;
cell -= 26;
}
else
{
suit = DIAMONDS;
cell -= 39;
}
}
}
value = cell;
value += 2;
if (value > 13)
{
value = 1;
Set( softAce);
}
if (value > 10)
{
value = 10;
}
if (function != GET_SUIT_VALUE) [ This
{ [ is
goto returnToHere; [ uglier!
}
}
if (function == PAY_WINNER)
{
work = 250;
work -= winnings;
if (work > dollars)
{
dollars += winnings;
}
else
{
winnings = 250;
winnings -= dollars;
dollars = 250;
Print( 4);
Set( readyToLeave);
}
winnings = 0;
function = UPDATE_STATUS;
}
if (function == UPDATE_STATUS)
{
if (monitorType == MONO)
{
ClearLines( 24, 24, BG_COLOR);
y = 24;
}
else
{
ClearLines( 21, 21, BG_COLOR);
y = 21;
}
if (handInPlay == PLAYER)
{
message = 1;
}
else
{
if (handInPlay == SPLIT)
{
message = 2;
}
else
{
message = 3;
}
}
x = 0;
DisplayV( y, x, message);
function = SHOW_TOTALS;
}
if (function == SHOW_TOTALS)
{
if (debugging && forceAtest)
{
oldPTotal = pTotal;
oldSTotal = sTotal;
oldDTotal = dTotal;
SetTextAttribute( 6, 0);
Display( 24, 0, 5);
SetTextAttribute( 15, 0);
}
}
[*****
:exit
[*****
function = 0;

23
RM56.MSG Normal file
View File

@ -0,0 +1,23 @@
[messages for room 56 -- lgcBlackjack
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"Bet is $%v226.00 You have $%v90.00"
%message 2
"Bet is $%v225.00 You have $%v90.00"
%message 3
"Bet is $%v255.00 You have $%v90.00"
%message 4
"Congratulations, you've broken the bank.
This casino has a limit of $250.00 per person, and you've reached it.
No more for you, Larry!"
%message 5
"Dealer=%v222 Player=%v223 Split=%v224 "

640
RM57.CG Normal file
View File

@ -0,0 +1,640 @@
[logics for room 57 -- lgcStreet
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm57.msg"
%include "gamedefs.h"
[ This dynamic controls:
[ the car that runs ego down whenever he tries to cross the street,
[ the random dog pissing on ego's leg,
[ and the taxi cab's arrival, wait, and departure.
%define BRING_OUT_DOG 222 [ # of cycles in same place
%define PISS_CYCLES 35 [ length of piss
%define AFTER_EGO 1
%define DOG_PISSING 2
%define LEAVING 3
%define DOG_GONE 4
[ #define TAXI_WAITING 4 [ from gamedefs.h
#define TAXI_WAIT_TIME 14 [ in real seconds
#define cNormal 0
#define cBraking 1
#define DEATH_CAR_STEP 10
%define dogAtEgo df0
%define egoErased df1
%define taxiDone df2
%define eraseCar df3
%define eraseEgo df4
%define dogOnscreen df6
%define dogStatus dv1
%define pissCycles dv2
%define taxiTimer dv3
%define taxiX dv4
%define taxiY dv5
if (initLog)
{
LoadView( vDeathCar);
LoadView( vEgoRoadKill);
LoadView( vDog);
LoadView( vDogPissing);
LoadView( vDogPissing2);
LoadView( vTaxi);
LoadSound( sTaxiTires);
LoadSound( sDeathCar);
LoadSound( mDog);
AnimateObj( aCar);
IgnoreObjs( aCar);
SetView( aCar, vDeathCar);
SetLoop( aCar, 0);
FixLoop( aCar);
SetPriority( aCar, 15);
AnimateObj( aDog);
SetView( aDog, vDog);
Position( aDog, 0, 166);
notMovedCycles = 0;
AnimateObj( aTaxi);
SetView( aTaxi, vTaxi);
SetCel( aTaxi, 0);
StopCycling( aTaxi);
if (currentRoom == 11)
{
taxiY = 166;
}
else
{
taxiY = 160;
}
if (previousRoom != rmInsideTaxi)
{
taxiScript = 0;
}
else
{
taxiX = 60;
PositionV( aTaxi, taxiX, taxiY);
Draw( aTaxi);
egoX = taxiX;
egoX += 4;
egoY = taxiY;
egoY -= 4;
RepositionToV( ego, egoX, egoY);
ForceUpdate( ego);
taxiTimer = 2;
if (currentStatus == STIFFED_CABBIE)
{
LoadView( vEgoGettingBeaten);
PreventInput();
StopMotion( ego);
Set( programControl);
taxiScript = 200; [ Pick a fight.
}
else
{
StartMotion( ego);
taxiScript = 101; [ We know he's clear.
}
}
Return( );
} [ end initLOG
Reset( nearTaxi);
if (taxiScript == TAXI_WAITING)
{
if (currentRoom == 11)
{
if (Posn( ego, 70, 155, 90, 167))
{
Set( nearTaxi);
}
}
else
{
if (Posn( ego, 70, 140, 90, 166))
{
Set( nearTaxi);
}
}
}
[*****
:handleInput
[*****
if (!haveInput) {goto noInput;}
if (Said( look, street))
{
Print( 24);
}
if ((Said( look, sky) ||
Said( look, up)))
{
Print( 25);
}
if (Said( climb, anyword))
{
Print( 27);
}
[ First, we'll handle the DOG SHIT:
if (Said( look, dog))
{
if (!dogOnscreen)
{
Print( 30);
}
else
{
if (dogStatus == AFTER_EGO)
{
Print( 7);
}
if (dogStatus == DOG_PISSING)
{
Print( 8);
}
if (dogStatus == LEAVING)
{
Print( 9);
}
}
}
if (dogOnscreen)
{
if ((Said( hump, dog, rol) ||
Said( anyword, lay, rol) ||
Said( pee, on, dog, rol) ||
Said( anyword, pee, on, dog, rol) ||
Said( butt, hump, dog, rol)))
{
Print( 14);
}
if ((Said( hurt, dog, rol) ||
Said( kick, dog, rol) ||
Said( kill, dog, rol)))
{
Print( 15);
}
if (Said( smell, dog, rol))
{
Print( 16);
}
if (Said( pet, dog))
{
Print( 26);
}
if (Said( get, dog))
{
Print( 28);
}
}
[ Next, take care of the cab stuff:
if (Said( look, pole))
{
Print( 31);
}
if ((Said( look, sign, pole) ||
Said( look, sign, on, pole) ||
Said( look, sign)))
{
Print( 17);
}
if (Said( look, street))
{
Print( 21);
}
if ((Said( hail, cab) ||
Said( cab) ||
Said( call, cab) ||
Said( yell, cab)))
{
if (!egoY < taxiY)
{
Print( 19);
}
else
{
Print( 2);
if (!taxiScript)
{
StopMotion( ego);
Set( programControl);
Random( 3, 7, taxiTimer);
}
}
}
if (taxiScript == TAXI_WAITING)
{
if ((Said( look, cab) ||
Said( look$in, cab)))
{
Print( 4);
Print( 5);
Print( 6);
}
if (Said( smell, cab))
{
Print( 23);
}
if ((Said( enter, cab) ||
Said( enter) ||
Said( open, door, rol) ||
Said( open, cab, door, rol) ||
Said( open, door)))
{
if (!nearTaxi)
{
Set( notCloseEnough);
}
else
{
if (!rodeInCab)
{
Print( 3);
}
else
{
Set( OK);
}
Erase( ego);
Set( egoErased);
Set( programControl);
PreventInput();
Set( taxiDone);
taxiScript = 101;
taxiTimer = 0;
}
}
}
if (Said( look, alley))
{
Print( 18);
}
if (Said( look, car))
{
Print( 22);
}
[*****
:noInput
[*****
if (egoX == oldEgoX && [ hasn't moved
egoY == oldEgoY &&
!taxiScript &&
!script &&
currentStatus == NORMAL)
{
++notMovedCycles;
if (notMovedCycles == BRING_OUT_DOG)
{
Draw( aDog);
Sound( mDog, done);
Set( dogOnscreen);
FollowEgo( aDog, 5, dogAtEgo);
dogStatus = AFTER_EGO;
}
}
else [ he moved; start all over
{
notMovedCycles = 0;
if (dogStatus == AFTER_EGO)
{
Reset( dogAtEgo);
pissCycles = 2; [ make dog wander off
}
}
if (dogAtEgo && dogStatus == AFTER_EGO)
{
Reset( dogAtEgo);
Set( smellsLikeDogPiss);
dogStatus = DOG_PISSING;
pissCycles = PISS_CYCLES;
StopMotion( ego);
Set( programControl);
StopMotion( aDog);
GetPosn( aDog, work, y);
x = egoX;
if (egoX > 3)
{
x -= 4;
}
else
{
x = 0;
}
RepositionToV( aDog, x, y);
if (y > egoY)
{
SetView( aDog, vDogPissing);
}
else
{
SetView( aDog, vDogPissing2);
}
}
--pissCycles;
if (pissCycles == 1)
{
dogStatus = LEAVING;
StartMotion( ego);
Reset( programControl);
StartMotion( aDog);
SetView( aDog, vDog);
Wander( aDog);
}
if (edgeObjHit && objHitEdge == aDog && dogStatus == LEAVING)
{
Erase( aDog);
Reset( dogOnscreen);
dogStatus = DOG_GONE;
}
[ This does the car appearing out of nowhere, smashing ego to a pulp,
[and disappearing screenLeft.
Distance( ego, aTaxi, work);
if (edgeEgoHit == BOTTOM &&
work == ERROR && [ True, if no taxi on screen.
currentStatus != RUN_OVER) [ init the wreck sequence
{
StopMotion( ego);
Set( programControl);
PreventInput();
currentStatus = RUN_OVER;
Position( aCar, 119, 167);
Draw( aCar);
Sound( sDeathCar, done);
step = DEATH_CAR_STEP;
if (egoX > 116)
{
egoX = 116;
}
MoveObjV( aCar, egoX, egoY, step, eraseEgo);
}
if (currentStatus == RUN_OVER)
{
if (edgeEgoHit)
{
edgeEgoHit = 0;
}
if (eraseEgo)
{
Reset( eraseEgo);
Set( egoErased);
Erase( ego);
SetView( ego, vEgoRoadKill);
if (egoX > 33)
{
egoX -= 33;
}
else
{
egoX = 0;
}
PositionV( ego, egoX, egoY);
MoveObj( aCar, 0, 167, DEATH_CAR_STEP, eraseCar);
}
if (egoErased)
{
GetPosn( aCar, x, y);
if ((x < egoX || x < DEATH_CAR_STEP))
{
Reset( egoErased);
Draw( ego);
}
}
if (eraseCar)
{
Reset( eraseCar);
Erase( aCar);
Print( 1);
Set( certainDeath);
}
}
[ This section handles the taxi cab stopping after ego hails it.
[If he stands around without entering the cab, it leaves.
if (aSecondPassed)
{
--taxiTimer;
if (taxiTimer == 1)
{
Set( taxiDone);
}
}
if (taxiScript)
{
GetPosn( aTaxi, x, y);
if ((x == 103 || [ don't muck with these!
x == 88 ||
x == 36))
{
Set( taxiDone);
}
}
if (taxiDone)
{
Reset( taxiDone);
++taxiScript;
if (taxiScript == 1)
{
taxiX = 119;
PositionV( aTaxi, taxiX, taxiY);
Draw( aTaxi);
taxiX = 60;
step = 0;
MoveObjV( aTaxi, taxiX, taxiY, step, taxiDone);
StepSize( aTaxi, four);
}
if (taxiScript == 2)
{
StepSize( aTaxi, three);
}
if (taxiScript == 3)
{
StepSize( aTaxi, two);
SetCel( aTaxi, 1);
Sound( sTaxiTires, done);
}
if (taxiScript == TAXI_WAITING) [ 4; defined in gamedefs.h
{
SetCel( aTaxi, 0);
StartMotion( ego);
Reset( programControl);
taxiTimer = TAXI_WAIT_TIME;
}
if (taxiScript == 5)
{
Print( 10); [ "Can't wait all day"
taxiScript = 101;
}
if (taxiScript == 101) [ Try to leave
{
GetPosn( aTaxi, taxiX, taxiY);
if (egoX < taxiX &&
!egoY < taxiY)
{
Print( 20);
taxiTimer = 5;
--taxiScript;
}
else
{
taxiScript = 102; [ He's clear; so leave!
}
}
if (taxiScript == 102)
{
StepSize( aTaxi, two);
taxiX = 0;
step = 0;
MoveObjV( aTaxi, taxiX, taxiY, step, taxiDone);
}
if (taxiScript == 103)
{
StepSize( aTaxi, four);
if (currentStatus == STIFFED_CABBIE)
{
IgnoreObjs( ego);
SetView( ego, vEgoRoadKill);
GetPosn( aTaxi, egoX, egoY);
--egoY;
PositionV( ego, egoX, egoY);
Draw( ego);
}
}
if (taxiScript == 104)
{
taxiScript = 0;
Erase( aTaxi);
if (currentStatus == STIFFED_CABBIE)
{
Reset( egoErased);
Set( certainDeath);
}
if (egoErased)
{
newRoom = rmInsideTaxi;
}
}
if (taxiScript == 201)
{
SetView( ego, vEgoGettingBeaten);
Set( keepCycling);
taxiTimer = 5;
}
if (taxiScript == 202)
{
Erase( ego);
Print( 11);
taxiScript = 101; [ Leave without checking.
taxiTimer = 3;
}
}
[*****
:exit [ test for leaving the room
[*****
if ((egoErased || currentStatus == RUN_OVER))
{
StopMotion( ego);
Set( programControl);
}

106
RM57.MSG Normal file
View File

@ -0,0 +1,106 @@
[messages for room 57 -- lgcStreet
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"You know, the traffic here is really a killer! You should forget about
crossing these streets!"
%message 2
"\"YO!!\n\nTAXI!!!\""
%message 3
"Vowing to hold your breath forever,
you enter this miserable excuse for public transportation."
%message 4
"It's not very clean."
%message 5
"It's not very new."
%message 6
"(And those are its good points!)"
%message 7
"Look out! Here he comes again!"
%message 8
"Obviously, he thinks you're a fire plug."
%message 9
"Dogs like that make you want to keep moving."
%message 10
"\"I can't wait all day, bub!\""
%message 11
"\"You'll not ride with me again!\""
%message 12
""
%message 13
""
%message 14
"Sick-o!"
%message 15
"After all he's done for you?"
%message 16
"He presently smells quite bad, although still better than you."
%message 17
"\"TAXI\n
STAND\""
%message 18
"It's dark. Real dark."
%message 19
"You'd better get out of the street first."
%message 20
"\"BEEP\n
BEEP!\""
%message 21
"Thousands of cars stream past, just below the edge of your screen."
%message 22
"Trust me, they're there!"
%message 23
"It smells like an old cab."
%message 24
"Isn't it funny how there's so little traffic?"
%message 25
"The glow of the city lights obliterate the stars."
%message 26
"As you bend over to do so, his bare teeth convince you otherwise."
%message 27
"You shinny up the pole, read the sign, and come right back down."
%message 28
"Who'd want him?"
%message 29
""
%message 30
"Where?"
%message 31
"There is a sign on the pole."
%message 32
""

56
RM58.CG Normal file
View File

@ -0,0 +1,56 @@
[logics for room 58 -- lgcSlots
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm58.msg"
%include "gamedefs.h"
%include "slots.h"
if (function == PAY_WINNER)
{
winnings = bet;
MulV( winnings, multiple);
work = 250;
work -= winnings;
if (work > dollars)
{
dollars += winnings;
}
else
{
winnings = 250;
winnings -= dollars;
dollars = 250;
Print( 4);
Set( readyToLeave);
}
function = UPDATE_STATUS; [ Auto update.
}
if (function == UPDATE_STATUS)
{
if (monitorType == MONO)
{
ClearLines( 24, 24, BG_COLOR);
Display( 24, 0, 1);
}
else
{
ClearLines( 21, 21, BG_COLOR);
Display( 21, 0, 1);
}
}
[*****
:exit
[*****
function = 0;

14
RM58.MSG Normal file
View File

@ -0,0 +1,14 @@
[messages for room 58 -- lgcSlots
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"Bet is $%v200.00 You have $%v90.00"
%message 4
"Congratulations, you've broken the bank!
This casino has a limit of $250.00 per person, and you've reached it.
No more for you, Larry!"

167
RM6.CG Normal file
View File

@ -0,0 +1,167 @@
[logics for room 6 -- rmAgeTest
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm6.msg"
%include "gamedefs.h"
%define FIRST_QUESTION 1
%define LAST_QUESTION 43
%define missedOne lf0
%define age lv9 [ used in message 5
%define lgcQuestion lv20
if (!forceAtest &&
(passedTest || questionStatus == allDone))
{
Set( passedTest);
AcceptInput();
CancelLine();
PreventInput();
ClearLines( 22, 24, BG_COLOR);
Reset( handsOff);
Reset( programControl);
AcceptInput();
Print( 10);
NewRoom( rmRestart);
}
if (initLog)
{
animationInterval = FASTEST_SPEED;
Set( handsOff);
PreventInput();
Reset( enableMenu);
StopMotion( ego);
Set( programControl);
LoadSound( sError);
picture = rmTitle;
LoadPic( picture);
DrawPic( picture);
DiscardPic( picture);
LoadView( vTitles);
AddToPic( vTitles, 0, 0, 4, 18, 4, 4);
AddToPic( vTitles, 0, 1, 4, 36, 4, 4);
AddToPic( vTitles, 0, 2, 46, 36, 4, 4);
AddToPic( vTitles, 0, 3, 11, 87, 4, 4);
[view, loop, cel, x, y, obj priority, box priority
DiscardView( vTitles);
Random( 2, 4, lgcQuestion);
LoadLogicsV( lgcQuestion);
ClearLines( 22, 24, BG_COLOR);
ShowPic( );
questionStatus = askAnother;
[ Set( forceAtest);
if (!forceAtest)
{
Print( 1);
GetNum( 2, age);
PreventInput();
AcceptInput();
if (age < 18)
{
Print( 4); [ He's so dumb, he admits he's a kid.
Quit( 1);
}
if (age > 99)
{
Print( 12); [ You can't be THAT old!
Quit( 1);
}
if (age > 65)
{
Print( 11); [ You're an old fart!
}
Print( 3); [ He says he's an adult.
question = 1;
}
}
if (questionStatus == askAnother)
{
CallV( lgcQuestion);
}
if (questionStatus == waiting) [ now have answer in answer
{
CloseWindow( );
if ((answer == correctAnswer ||
!correctAnswer))
{
Set( leaveWindow);
Print( 8); [ "Right
questionStatus = waitAwhileAlthoughCorrect;
scriptCycles = 8;
if (machineType == MAC)
{
scriptCycles = 3;
}
}
else
{
if (!missedOne)
{
questionStatus = askAnother;
Print( 5); [ "You blew it.
Set( missedOne);
--question;
}
else
{
Print( 6); [ "Ah Ha!!!
Quit( 1);
}
}
}
if (scriptDone)
{
Reset( scriptDone);
if ((forceAtest ||
questionStatus == waitAwhileAlthoughCorrect))
{
questionStatus = askAnother;
}
else
{
ClearLines( 23, 23, BG_COLOR);
questionStatus = waiting;
}
}
if (aSecondPassed && secondsInRoom == 5)
{
animationInterval = NORMAL_SPEED;
if ((passInRoom < 250 ||
machineType == MAC))
{
Set( slowProcessor);
}
if (forceAtest)
{
Print( 18);
}
}

72
RM6.MSG Normal file
View File

@ -0,0 +1,72 @@
[messages for room 6 -- rmAgeTest
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"Warning:\n\n\"Leisure Suit Larry in the Land of the Lounge Lizards\"
contains some elements of plot which may not be
considered appropriate for some children."
%message 2
"How old are you? "
%message 3
"To verify you are really %v209,
please answer five simple questions."
%message 4
"Sorry.\n\n
This game can only be played by adults, or with an adult.\n\n
Please find an adult, come back, and try again."
%message 5
"Oops. You blew that one!\n\n
If you miss another, you can't possibly be %v209."
%message 6
"You're a kid!!\n\n
Shame on you for trying to deceive a friendly game like this!\n\n
Please play again when you're older."
%message 7
"Please answer a, b, c, or d: "
%message 8
"Correct."
%message 9
"So far, so good.\n\n
Now for the final question."
%message 10
" Thank you.\n\n
And now, slip into your leisure suit and prepare to enter the
\"Land of the Lounge Lizards\" with \"Leisure Suit Larry!\""
%message 11
" Warning!\n\n
This game may be hazardous to those with heart conditions!"
%message 12
"No, you're not!"
%message 13
"Question #%v208. Correct answer is %v211."
%message 14
"a"
%message 15
"b"
%message 16
"c"
%message 17
"d"
%message 18
"%v62 cycles in %v63 seconds"

394
RM8.CG Normal file
View File

@ -0,0 +1,394 @@
[logics for room 8 -- rmWorkshop
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%include "rm8.msg"
%include "gamedefs.h"
[ %view vWorkshopDeadEgo 185 [ death workshop views
[ %view vWorkshopStuff 186
#define L_HEADLESS_EGOS 0
#define C_3_EGOS 0
#define C_5_EGOS 1
#define C_4_EGOS 2 [ first guy missing
#define L_PLATFORM_RIGHT 1
#define C_WITHOUT_EGO 0
#define C_WITH_EGO 1
#define L_SHAFTS 2
#define C_SHORT_SHAFT 0
#define C_LONG_SHAFT 1
#define L_HEAD_RACK 3
#define C_FULL 0
#define C_MISSING_ONE 1
[ %view vWorkshopScientist 187
[define L_WALKING_RIGHT 0 [ covered by "vHotTubGirl" define
#define L_WALKING_LEFT 1
#define L_WITH_HEAD 2
#define L_SCREWING_HEAD 3
#define L_AT_CONTROL_PANEL 4
[ %view vWorkshopMen 188
#define L_DRAGON 0
#define L_MAN 1
#define L_WOMAN 2
#define L_GRAHAM 3
[ %view vWorkshopLogo 189
%define manToggle lf0
%define testerToggle lf1
%define cavinAtPanel lf3
%define cavinCycling lf4
%define manCycles lv0
%define womanCycles lv1
%define testerCycles lv2
%define cavinCycles lv3
%object aPlatformLeft 1
%object aPlatformRight 2
%object aShaftLeft 3
%object aShaftRight 4
%object aCavin 5
%object aEgos 6
%object aHeadRack 7
%object aMan 8
%object aWoman 9
%object aGraham 10
%object aDroid 11
if (initLog)
{
SetHorizon( 1);
Set( noPromptRestart);
currentStatus = RECYCLING;
LoadView( vEgo);
LoadView( vWorkshopDeadEgo); [ view.185
LoadView( vWorkshopStuff); [ view.186
LoadView( vWorkshopScientist); [ view.187
LoadView( vWorkshopMen); [ view.188
LoadView( vWorkshopLogo); [ view.189
LoadView( vWorkshopDroid); [ view.190
LoadPic( currentRoom);
DrawPic( currentRoom);
DiscardPic( currentRoom);
AddToPic( vWorkshopLogo, 0, 0, 56, 42, 4, 4);
AddToPic( vWorkshopMen, L_DRAGON, 0, 17, 154, 0, 4);
[view, loop, cel, x, y, obj priority, box priority
AnimateObj( aPlatformLeft);
IgnoreObjs( aPlatformLeft);
IgnoreBlocks( aPlatformLeft);
SetView( aPlatformLeft, vWorkshopDeadEgo);
SetLoop( aPlatformLeft, 0);
FixLoop( aPlatformLeft);
SetCel( aPlatformLeft, 0);
SetPriority( aPlatformLeft, 5);
StopCycling( aPlatformLeft);
CycleTime( aPlatformLeft, two);
Position( aPlatformLeft, 56, 28);
Draw( aPlatformLeft);
MoveObj( aPlatformLeft, 56, 59, 1, scriptDone);
AnimateObj( aShaftLeft);
IgnoreObjs( aShaftLeft);
IgnoreBlocks( aShaftLeft);
SetView( aShaftLeft, vWorkshopStuff);
SetLoop( aShaftLeft, L_SHAFTS);
FixLoop( aShaftLeft);
SetCel( aShaftLeft, C_SHORT_SHAFT);
SetPriority( aShaftLeft, 4);
StopCycling( aShaftLeft);
Position( aShaftLeft, 74, 80);
Draw( aShaftLeft);
MoveObj( aShaftLeft, 74, 111, 1, done);
AnimateObj( aPlatformRight);
IgnoreObjs( aPlatformRight);
IgnoreBlocks( aPlatformRight);
SetView( aPlatformRight, vWorkshopStuff);
SetLoop( aPlatformRight, L_PLATFORM_RIGHT);
FixLoop( aPlatformRight);
SetCel( aPlatformRight, C_WITHOUT_EGO);
SetPriority( aPlatformRight, 6);
StopCycling( aPlatformRight);
Position( aPlatformRight, 79, 111);
Draw( aPlatformRight);
StopUpdate( aPlatformRight);
AnimateObj( aShaftRight);
IgnoreObjs( aShaftRight);
IgnoreBlocks( aShaftRight);
SetView( aShaftRight, vWorkshopStuff);
SetLoop( aShaftRight, L_SHAFTS);
FixLoop( aShaftRight);
SetCel( aShaftRight, C_SHORT_SHAFT);
SetPriority( aShaftRight, 5);
StopCycling( aShaftRight);
Position( aShaftRight, 84, 167);
Draw( aShaftRight);
StopUpdate( aShaftRight);
AnimateObj( aCavin);
IgnoreObjs( aCavin);
SetView( aCavin, vWorkshopScientist);
SetLoop( aCavin, L_AT_CONTROL_PANEL);
FixLoop( aCavin);
Position( aCavin, 36, 111);
Draw( aCavin);
Set( cavinAtPanel);
AnimateObj( aEgos);
IgnoreObjs( aEgos);
SetView( aEgos, vWorkshopStuff);
SetLoop( aEgos, L_HEADLESS_EGOS);
FixLoop( aEgos);
SetCel( aEgos, C_3_EGOS);
SetPriority( aEgos, 6);
StopCycling( aEgos);
Position( aEgos, 128, 105);
Draw( aEgos);
StopUpdate( aEgos);
AnimateObj( aHeadRack);
IgnoreObjs( aHeadRack);
SetView( aHeadRack, vWorkshopStuff);
SetLoop( aHeadRack, L_HEAD_RACK);
SetCel( aHeadRack, C_FULL);
Position( aHeadRack, 38, 121);
Draw( aHeadRack);
StopCycling( aHeadRack);
StopUpdate( aHeadRack);
AnimateObj( aMan);
SetView( aMan, vWorkshopMen);
SetLoop( aMan, 1);
Position( aMan, 88, 133);
Draw( aMan);
StopCycling( aMan);
Random( 26, 56, manCycles);
AnimateObj( aGraham);
SetView( aGraham, vWorkshopMen);
SetLoop( aGraham, L_GRAHAM);
Position( aGraham, 103, 149);
Draw( aGraham);
Random( 17, 33, testerCycles);
AnimateObj( aWoman);
SetView( aWoman, vWorkshopMen);
SetLoop( aWoman, L_WOMAN);
Position( aWoman, 116, 149);
Draw( aWoman);
StopCycling( aWoman);
AnimateObj( aDroid);
SetView( aDroid, vWorkshopDroid);
Position( aDroid, 56, 155);
Draw( aDroid);
Wander( aDroid);
CycleTime( aDroid, two);
StepTime( aDroid, two);
Set( programControl);
ShowPic( );
Return( );
} [ end initLOG
[*****
:handleInput
[*****
if (haveInput)
{
Set( haveMatch);
Print( 1);
}
[*****
:noInput
[*****
if (cavinAtPanel)
{
--cavinCycles;
if (cavinCycles == 1)
{
Toggle( cavinCycling);
if (cavinCycling)
{
StartCycling( aCavin);
Random( 4, 11, cavinCycles);
}
else
{
StopCycling( aCavin);
Random( 11, 22, cavinCycles);
}
}
}
--manCycles;
if (manCycles == 1)
{
Random( 0, 2, work);
SetCelV( aMan, work);
Random( 11, 33, manCycles);
}
--testerCycles;
if (testerCycles == 1)
{
Random( 7, 22, testerCycles);
Toggle( testerToggle);
if (testerToggle)
{
StartCycling( aWoman);
StopCycling( aGraham);
SetCel( aGraham, 0);
}
else
{
StartCycling( aGraham);
StopCycling( aWoman);
SetCel( aWoman, 0);
}
}
if (scriptDone)
{
Reset( scriptDone);
++script;
if (script == 1)
{
EndOfLoop( aPlatformLeft, scriptDone);
}
if (script == 2)
{
Print( 3);
StopCycling( aPlatformLeft);
MoveObj( aPlatformLeft, 56, 80, 1, scriptDone);
MoveObj( aShaftLeft, 74, 132, 1, done);
}
if (script == 3)
{
StopUpdate( aPlatformLeft);
StopUpdate( aShaftLeft);
StartUpdate( aEgos);
MoveObj( aEgos, 103, 105, 1, scriptDone);
}
if (script == 4)
{
SetCel( aEgos, C_5_EGOS);
MoveObj( aEgos, 82, 105, 1, scriptDone);
}
if (script == 5)
{
StopUpdate( aEgos);
StartCycling( aCavin);
SetLoop( aCavin, L_WALKING_RIGHT);
MoveObj( aCavin, 49, 117, 1, scriptDone);
Reset( cavinAtPanel);
Print( 4);
}
if (script == 6)
{
SetCel( aHeadRack, C_MISSING_ONE);
ForceUpdate( aHeadRack);
SetLoop( aCavin, L_WITH_HEAD);
MoveObj( aCavin, 62, 111, 1, scriptDone);
}
if (script == 7)
{
MoveObj( aCavin, 78, 111, 1, scriptDone);
}
if (script == 8)
{
SetLoop( aCavin, L_SCREWING_HEAD);
scriptCycles = 21;
}
if (script == 9)
{
SetLoop( aCavin, L_WALKING_LEFT);
MoveObj( aCavin, 36, 111, 1, scriptDone);
SetCel( aPlatformRight, C_WITH_EGO);
SetCel( aEgos, C_4_EGOS);
ForceUpdate( aEgos);
}
if (script == 10)
{
SetLoop( aCavin, L_AT_CONTROL_PANEL);
Set( cavinAtPanel);
cavinCycles = 3;
StartUpdate( aPlatformRight);
MoveObj( aPlatformRight, 79, 40, 1, scriptDone);
StartUpdate( aShaftRight);
MoveObj( aShaftRight, 84, 108, 1, scriptDone);
}
if (script == 11)
{
SetCel( aShaftRight, C_LONG_SHAFT);
RepositionTo( aShaftRight, 84, 147);
MoveObj( aShaftRight, 84, 116, 1, done);
Print( 5);
}
if (script == 12)
{
RestartGame();
}
}
[*****
:exit [ test for leaving the room
[*****

29
RM8.MSG Normal file
View File

@ -0,0 +1,29 @@
[messages for room 8 -- rmWorkshop
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"Hey! You're not alive yet."
%message 2
""
%message 3
"The Sierra adventure team races to your rescue,
dumping your worthless, leisure suit- clad hulk into their giant bit bucket,
for recycling into future games.
Their underground workshop is humming with activity.
This is \"Where Adventurers Are Made, Not Born!\""
%message 4
"Commander Cavin quickly assembles a replacement Larry,
while subordinates repair players damaged in other Sierra adventure games."
%message 5
"With your new body and ego, you are returned to
fight again the battles of Lost Wages!\n\n
(Now you know what we have to go through
every time you press that \"Restart\" key.)"

261
RM9.CG Normal file
View File

@ -0,0 +1,261 @@
[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;}

23
RM9.MSG Normal file
View File

@ -0,0 +1,23 @@
[messages for room 9 -- rmDarkAlley
[ "Leisure Suit Larry in the Land of the Lounge Lizards"
[ by Al Lowe
%message 1
"Larry, when are you gonna learn to stay out of those dark alleys!!"
%message 2
""
%message 3
"\"Hey guys!!
He's screwed up again!
Dump this one down the tubes, and get him another body!\""
%message 4
"Since you're dead, why are you talking?? Just hang on for the ride."
%message 5
"It appears he wants something -- YOU! Get out of here!"

33
SLOTS.H Normal file
View File

@ -0,0 +1,33 @@
[
[ slots.h
[
[ LEISURE SUIT LARRY IN THE LAND OF THE LOUNGE LIZARDS BLACKJACK HEADER
[
[ Thursday, March 5, 1987 at 10:49 a.m.
[
%object aLights 1
%object aWheel1 2
%object aWheel2 3
%object aWheel3 4
%object aWinner 13 [ Animated objects.
%flag readyToLeave 200
%flag readyToPlay 201
%flag pulledHandle 202
%flag showOdds 203
%var bet 200
%var wheel1 201
%var wheel2 202
%var wheel3 203
%var multiple 204
%var winnings 205
%var winnerCycles 206
%var function 207
#define PAY_WINNER 1
#define UPDATE_STATUS 2

418
SYSDEFS.H Normal file
View File

@ -0,0 +1,418 @@
[
[ sysdefs.h
[
[ AL'S SYSDEFS
[
[ February 25, 1987
[
[************** ACTIONS **************]
%action Return() 0
[Variable actions
%action Increment(VAR) 1
%action Decrement(VAR) 2
%action Assignn(VAR, NUM) 3
%action Assignv(VAR, VAR) 4
%action Addn(VAR, NUM) 5
%action Addv(VAR, VAR) 6
%action Subn(VAR, NUM) 7
%action Subv(VAR, VAR) 8
%action Lindirectv(VAR, VAR) 9
%action Rindirect(VAR, VAR) 10
%action Lindirectn(VAR, NUM) 11
%action increment(VAR) 1
%action decrement(VAR) 2
%action assignn(VAR, NUM) 3
%action assignv(VAR, VAR) 4
%action addn(VAR, NUM) 5
%action addv(VAR, VAR) 6
%action subn(VAR, NUM) 7
%action subv(VAR, VAR) 8
%action lindirectv(VAR, VAR) 9
%action rindirect(VAR, VAR) 10
%action lindirectn(VAR, NUM) 11
%action Set(FLAG) 12
%action Reset(FLAG) 13
%action Toggle(FLAG) 14
%action SetV(VAR) 15
%action ResetV(VAR) 16
%action ToggleV(VAR) 17
[Logics
%action NewRoom(NUM) 18
%action NewRoomV(VAR) 19
%action LoadLogics(NUM) 20
%action LoadLogicsV(VAR) 21
%action Call(NUM) 22
%action CallV(VAR) 23
[Pictures
%action LoadPic(VAR) 24
%action DrawPic(VAR) 25
%action ShowPic() 26
%action DiscardPic(VAR) 27
%action OverlayPic(VAR) 28
%action ShowPriScreen() 29
[Views
%action LoadView(VIEW) 30
%action LoadViewV(VAR) 31
%action DiscardView(VIEW) 32
[Animated objects
%action AnimateObj(OBJECT) 33
%action UnanimateAll() 34
%action Draw(OBJECT) 35
%action Erase(OBJECT) 36
%action Position(OBJECT, NUM, NUM) 37
%action PositionV(OBJECT, VAR, VAR) 38
%action GetPosn(OBJECT, VAR, VAR) 39
%action Reposition(OBJECT, VAR, VAR) 40
[Views of animated objects
%action SetView(OBJECT, VIEW) 41
%action SetViewV(OBJECT, VAR) 42
%action SetLoop(OBJECT, NUM) 43
%action SetLoopV(OBJECT, VAR) 44
%define FACING_RIGHT 0
%define FACING_LEFT 1
%define FACING_FRONT 2
%define FACING_BACK 3
%action FixLoop(OBJECT) 45
%action ReleaseLoop(OBJECT) 46
%action SetCel(OBJECT, NUM) 47
%action SetCelV(OBJECT, VAR) 48
%action LastCel(OBJECT, VAR) 49
%action CurrentCel(OBJECT, VAR) 50
%action CurrentLoop(OBJECT, VAR) 51
%action CurrentView(OBJECT, VAR) 52
%action NumberOfLoops(OBJECT, VAR) 53
[Priority control of animated objects
%action SetPriority(OBJECT, NUM) 54
%action SetPriorityV(OBJECT, VAR) 55
%action ReleasePriority(OBJECT) 56
%action GetPriority(OBJECT, VAR) 57
[Attributes of animated objects
%action StopUpdate(OBJECT) 58
%action StartUpdate(OBJECT) 59
%action ForceUpdate(OBJECT) 60
%action IgnoreHorizon(OBJECT) 61
%action ObserveHorizon(OBJECT) 62
%action SetHorizon(NUM) 63
%action ObjectOnWater(OBJECT) 64
%action ObjectOnLand(OBJECT) 65
%action ObjectOnAnything(OBJECT) 66
%action IgnoreObjs(OBJECT) 67
%action ObserveObjs(OBJECT) 68
%action Distance(OBJECT, OBJECT, VAR) 69
[Cycling of animated objects
%action StopCycling(OBJECT) 70
%action StartCycling(OBJECT) 71
%action NormalCycle(OBJECT) 72
%action EndOfLoop(OBJECT, FLAG) 73
%action ReverseCycle(OBJECT) 74
%action ReverseLoop(OBJECT, FLAG) 75
%define BeginningOfLoop ReverseLoop
%action CycleTime(OBJECT, VAR) 76
%define CycleFrequency CycleTime
[Motion of animated objects
%action StopMotion(OBJECT) 77
%action StartMotion(OBJECT) 78
%action StepSize(OBJECT, VAR) 79
%action StepTime(OBJECT, VAR) 80
%define StepFrequency StepTime
%action MoveObj(OBJECT, NUM, NUM, NUM, FLAG) 81
%action MoveObjV(OBJECT, VAR, VAR, VAR, FLAG) 82
[object, x, y, stepsize (preferably 0), flag to set upon arrival
%action FollowEgo(OBJECT, NUM, FLAG) 83
%action Wander(OBJECT) 84
%action NormalMotion(OBJECT) 85
%action SetDir(OBJECT, VAR) 86
%action GetDir(OBJECT, VAR) 87
%action IgnoreBlocks(OBJECT) 88
%action ObserveBlocks(OBJECT) 89
%action Block(NUM, NUM, NUM, NUM) 90
%action Unblock() 91
[Inventory objects
%action Get(OBJECT) 92
%action GetV(VAR) 93
%action Drop(OBJECT) 94
%action Put(OBJECT, VAR) 95
%action PutV(VAR, VAR) 96
%action GetRoomV(VAR, VAR) 97
[Sounds
%action LoadSound(NUM) 98
%action Sound(NUM, FLAG) 99
%action StopSound() 100
[Screen Display
%action Print(MSGNUM) 101
%action PrintV(VAR) 102
%action Display(NUM, NUM, MSGNUM) 103
[row, col, message
%action DisplayV(VAR, VAR, VAR) 104
[row, col, message
%action ClearLines(NUM, NUM, NUM) 105
[top row, bottom row, attribute
%action TextScreen() 106
%action Graphics() 107
%action SetCursorChar(MSGNUM) 108
%action SetTextAttribute(NUM, NUM) 109
%action ShakeScreen(NUM) 110
[Screen handling
%action ConfigureScreen(NUM, NUM, NUM) 111
[ picture row, input row, status row
%action StatusLineOn() 112
%action StatusLineOff() 113
[String handling
%action SetString(NUM, MSGNUM) 114
%action GetString(NUM, MSGNUM, NUM, NUM, NUM) 115
[string#, prompt, row, col, max length
%action WordToString(NUM, NUM) 116
[word#, string#
%action Parse(NUM) 117
%action GetNum(MSGNUM, VAR) 118
[Input handling
%action PreventInput() 119
%action AcceptInput() 120
%action SetKey(NUM, NUM, NUM) 121
%define JOYSTICK_LOW_BYTE 1
%define BUTTON_0 1
%define BUTTON_1 2
%define BUTTON_0_DOUBLE 3
%define BUTTON_1_DOUBLE 4
[Add to picture
%action AddToPic(VIEW, NUM, NUM, NUM, NUM, NUM, NUM) 122
[view, loop, cel, x, y, obj priority, box priority
%action AddToPicV(VAR, VAR, VAR, VAR, VAR, VAR, VAR) 123
[view, loop, cel, x, y, obj priority, box priority
%define AddToPicture AddToPic
%define AddToPictureV AddToPicV
[User requested actions
%action Status() 124
%action SaveGame() 125
%action RestoreGame() 126
%action InitDisk() 127
%action RestartGame() 128
[Show object view
%action ShowObj(VIEW) 129
[Miscellaneous
%action Random(NUM, NUM, VAR) 130
%action ProgramControl() 131
%action PlayerControl() 132
%action ObjStatusV(VAR) 133
%action Quit(NUM) 134
[0 = prompt
[1 = immediate
%action ShowMem() 135
%action Pause() 136
%action EchoLine() 137
%action CancelLine() 138
%action InitJoy() 139
%action ToggleMonitor() 140
%action Version() 141
%action ScriptSize(NUM) 142
%action SetGameId(MSGNUM) 143
%action Log(MSGNUM) 144
%action SetScanStart() 145
%action ResetScanStart() 146
%action RepositionTo(OBJECT, NUM, NUM) 147
%action RepositionToV(OBJECT, VAR, VAR) 148
%action TraceOn() 149
%action TraceInfo(NUM, NUM, NUM) 150
[logic #, position of top of window, number of lines
%action PrintAt(MSGNUM, NUM, NUM, NUM) 151
[msg #, row, col, width
%action PrintAtV(VAR, NUM, NUM, NUM) 152
[msg #, row, col, width
%action DiscardViewV(VAR) 153
%action ClearTextRect(NUM, NUM, NUM, NUM, NUM) 154
[top, left, bottom, right, attribute
%action SetUpperLeft(NUM, NUM) 155 [x, y
%action SetMenu(MSGNUM) 156
[menu name]
%action SetMenuItem(MSGNUM, NUM) 157
[item name, controller number]
%action SubmitMenu() 158
[terminate menu collecting]
%action EnableItem(NUM) 159
[enable item corresponding to controller]
%action DisableItem(NUM) 160
[disable item corresponding to controller]
%action MenuInput() 161
[pause game; display menus, at last choice
%action ShowObjV( VAR) 162
#action OpenDialogue() 163
#action CloseDialogue() 164
#action MulN(VAR, NUM) 165
#action MulV(VAR, VAR) 166
#action DivN(VAR, NUM) 167
#action DivV(VAR, VAR) 168
#action CloseWindow() 169
[************** TESTS **************]
%test Equaln(VAR, NUM) 1
%test Equalv(VAR, VAR) 2
%test Lessn(VAR, NUM) 3
%test Lessv(VAR, VAR) 4
%test Greatern(VAR, NUM) 5
%test Greaterv(VAR, NUM) 6
%test Isset(FLAG) 7
%test IssetV(VAR) 8
%test Has(OBJECT) 9
%test ObjInRoom(OBJECT, VAR) 10
%test Posn(OBJECT, NUM, NUM, NUM, NUM) 11
%test Controller(NUM) 12
%test HaveKey() 13
%test Said(WORDLIST) 14
%test CompareStrings(NUM, NUM) 15
%test ObjInBox(OBJECT, NUM, NUM, NUM, NUM) 16
%test CenterPosn(OBJECT, NUM, NUM, NUM, NUM) 17
%test RightPosn(OBJECT, NUM, NUM, NUM, NUM) 18
%test equaln(VAR, NUM) 1
%test equalv(VAR, VAR) 2
%test lessn(VAR, NUM) 3
%test lessv(VAR, VAR) 4
%test greatern(VAR, NUM) 5
%test greaterv(VAR, NUM) 6
%test isset(FLAG) 7
%test isset.v(VAR) 8
%test has(OBJECT) 9
%test obj.in.room(OBJECT, VAR) 10
%test posn(OBJECT, NUM, NUM, NUM, NUM) 11
%test controller(NUM) 12
%test have.key() 13
%test said(WORDLIST) 14
%test compare.strings(NUM, NUM) 15
%test obj.in.box(OBJECT, NUM, NUM, NUM, NUM) 16
%test center.posn(OBJECT, NUM, NUM, NUM, NUM) 17
%test right.posn(OBJECT, NUM, NUM, NUM, NUM) 18
[************** VARS **************
%var currentRoom 0
%var previousRoom 1
%var edgeEgoHit 2
%define NOT_HIT 0
%define TOP 1
%define RIGHT 2
%define BOTTOM 3
%define LEFT 4
%var currentScore 3
%var objHitEdge 4
%var edgeObjHit 5
%var egoDir 6
%define EGO_STOPPED 0
%define EGO_UP 1
%define EGO_UP_RIGHT 2
%define EGO_RIGHT 3
%define EGO_DOWN_RIGHT 4
%define EGO_DOWN 5
%define EGO_DOWN_LEFT 6
%define EGO_LEFT 7
%define EGO_UP_LEFT 8
%var maxScore 7
%var memoryLeft 8
%var unknownWord 9
%var animationInterval 10
%var elapsedSeconds 11
%var elapsedMinutes 12
%var elapsedHours 13
%var elapsedDays 14
%var doubleClickDelay 15
%var currentEgo 16
%var errorNumber 17
%var errorParameter 18
%var lastChar 19
%var machineType 20
#define PC 0 [PC, compatibles
#define JR 1 [PCjr
#define TANDY 2 [Tandy 1000
#define APPLEII 3 [Apple IIe, IIc
#define ST 4 [Atari ST
#define AMIGA 5 [Amiga
#define MAC 6 [Fat Mac, Mac Plus
#define CORTLAND 7 [?
%var printTimeout 21 [in 1/2 second increments
%var numberOfVoices 22 [in this machine's sound chip
%var attenuation 23 [0 - 15 == loud - off
%var inputLength 24 [max length of user input allowed
%var selectedObject 25 [obj # selected from status screen
%var monitorType 26
%define COMPOSITE 0
%define RGB 1
%define MONO 2
%define EGA 3
[************** FLAGS **************
%flag onWater 0
%flag egoHidden 1
%flag haveInput 2
%flag hitSpecial 3
%flag haveMatch 4
%flag initLog 5
%flag restartInProgress 6
%flag noScript 7
%flag enableDoubleClick 8
%flag soundOn 9
%flag enableTrace 10
%flag hasNoiseChannel 11 [set if machine has noise channel
%flag restoreInProgress 12
%flag enableObjectSelect 13 [set if ok to choose from status screen
%flag enableMenu 14
%flag leaveWindow 15
%flag noPromptRestart 16
[************ CONSTANTS **************]
[ screen boundaries:
%define TOP_EDGE 0
%define BOTTOM_EDGE 167
%define LEFT_EDGE 0
%define RIGHT_EDGE 159
%define SCREEN_TOP 0
%define SCREEN_BOTTOM 167
%define SCREEN_LEFT 0
%define SCREEN_RIGHT 159
%define FALL_THROUGH 200 [makes ego move off screen
%define MAX_FLAG_VALUE 255 [maximum value storable
%define ERROR -1

189
VIEWS.H Normal file
View File

@ -0,0 +1,189 @@
[
[ views.h
[
[ LEISURE SUIT LARRY IN THE LAND OF THE LOUNGE LIZARDS VIEW DEFINITIONS
[
[ Monday, April 6, 1987 at 9:01 p.m.
[ Thursday, May 14, 1987 at 10:23 p.m.
[
[************* VIEWS ************]
%view vEgo 0
%view vEgoCollapsing 1
%view vEgoUndressing 2
%view vEgoDrowning 3
%view vEgoDead 4
%view vEgoBreathSpray 5
%view vEgoOnRope 6
%view vEgoInHotTub 7
%view vEgoWearingTowel 8
%view vEgoSittingOnBed 9
%view vEgoLeavingDumpster 10
[ %view 11
%view vEgoGettingBeaten 12
%view vEgoDiscoing1 13
%view vEgoFlingingFawn 14
%view vEgoOnToilet 15
%view vEgoWithHooker 16
%view vEgoPushingElevator 17
%view vEgoWithFawnRm41 18
[ %view 19
%view vEgoFalling 20
%view vEgoMissingGroin 21
%view vEgoRoadKill 22
#define ROAD_KILL 22
[ %view 23
%view vEgoTiedOnBed 24
[ %view 25
%view vEgoLeavingWindow 26
%view vEgoIntoDumpster 27
%view vEgoOnLadder 28
%view vEgoDiscoing2 29
%view vEgoSittingLounge 30
%view vEgoSunrise 31
%view vSunrise 32
%view vSunriseBang 33
[ %view vEgo 34
[ %view vEgo 35
[ %view vEgo 36
[ %view vEgo 37
%view vCreditNames4 38
%view vCreditNames1 39
%view vCreditNames2 40
%view vCreditNames3 41
%view vTitles 42
%view vTitleDoll 43
%view vTitleEgo 44
%view vKen 45
[ %view 46
%view vRm14Drunk 47
%view vTransparentPixel 48
%view vBartender 49
%view vBarExterior 50 [ various lights, etc.
%view vBarInterior 51
%view vBarDoor 52
%view vBarFlys 53 [ 2 single cels + 1 girl loop
%view vBarGreaser 54
%view vPainting 55
%view vPimpDoor 56
%view vRm14Stuff 57
%view vToiletDoor 58
%view vToiletOverflowing 59
%view vToiletFountain 60
%view vRm16Door 61
%view vPimp 62
%view vPimpBlockingStairs 63
%view vTVOn 64
%view vHookerFace 65
%view vHookerWindow 66
%view vHooker 67
%view vCandy 68
%view vRing 69
[ %view 70
[ %view 71
%view vAlleyStuff 72
%view vMugger 73
%view vMuggerAttacking 74
%view vDog 75 [ if dog below ego
%view vDogPissing 76
%view vCop 77
%view vFlasher 78
%view vDogPissing2 79 [ if dog behind ego
%view vTaxi 80
%view vTaxiDriver 81
%view vTaxiMeter 82
%view vTaxiWindshieldMovie 83
[ %view 84
%view vDeathCar 85
[ %view 86
[ %view 87
%view vEgoAndFawnSitting 88
%view vFawnFace 89
%view vDiscoExterior 90
%view vDiscoBouncer 91
[ %view 92
%view v7_11Bum 93
%view vDiscoCustomers 94
[ %view 95
[ %view 96
[ %view 97
%view vFawn 98
%view vFawnDancing 99
%view vDiscoInterior 100
[Views 101 - 129 are "Show object" inventory views, defined in "IV_VIEWS.H"
%view v7_11Exterior 130
[ %view 131
%view v7_11Iranian 132
%view v7_11Customers 133 [ 4 heads
%view v7_11Interior 134
%view vMagazines 135
%view vCasinoExterior 136
[ %view 137
%view vCasinoManInBarrel 138
%view vCasinoInterior 139
[ %view 140
%view vCasinoPatrons 141
[ %view 142
[ %view 143
[ %view 144
[ %view 145
%view vMONOCardsShuffling 146
%view vSlots 147
%view vSlotsWinner 148
%view vNonWinner 149
%view vWinner 150
%view vCardsShuffling 151
%view vClubs 152
%view vSpades 153
%view vHearts 154
%view vDiamonds 155
%view vBlankCard 156
%view vCardBack 157
%view vLoungeComedian 158
%view vLoungeDancers 159
[ %view 160
[ %view 161
%view vLoungeCandles 162
%view vDrummer 163
%view vAshtray 164
%view vElevator 165
#define L_EMPTY 0
#define L_FLOOR 1
#define L_DOORS 2
#define L_WITH_EGO 3
%view vReceptionist 166
%view vReceptionistFace 167
%view vElevatorDoors 168
%view vBedroomDoors 169
%view vChapelExterior 170
%view vChapelInterior 171
%view vChapelMinister 172
[ %view 173
%view vElevatorNumbers 174
%view vHoneymoonHallwayDoor 175
%view vHoneymoonSuiteStuff 176
%view vCloseupBubbles 177
%view vFireworks 178
%view vRm44ElevatorDoors 179
%view vEveFace 180
%view vEveInTub 181
%view vEve 182
#define L_WALKING_RIGHT 0
#define L_SITTING_ON_BED 1
#define L_AFTER_SEX 2
%view vHotTubBubbles 183
%view vDollDeflating 184
%view vWorkshopDeadEgo 185 [ death workshop views
%view vWorkshopStuff 186
%view vWorkshopScientist 187
%view vWorkshopMen 188
%view vWorkshopLogo 189
%view vWorkshopDroid 190

BIN
WORDS.TOK Normal file

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More