initial commit

This commit is contained in:
2026-02-19 20:43:24 -08:00
commit 929b6a0d80
385 changed files with 55950 additions and 0 deletions

Binary file not shown.

View File

@@ -0,0 +1,164 @@
[Game]
Language=sci
[Script]
n000=Main
n001=rm1
n002=rm2
n003=rm3
n004=rm4
n005=rm5
n006=rm6
n007=rm7
n008=rm8
n009=rm9
n010=rm10
n011=rm11
n012=rm12
n013=rm13
n014=rm14
n015=rm15
n016=rm16
n017=rm17
n018=rm18
n019=rm19
n020=rm20
n021=rm21
n022=rm22
n023=rm23
n024=rm24
n025=rm25
n026=rm26
n027=rm27
n028=rm28
n029=rm29
n030=rm30
n031=rm31
n032=rm32
n033=rm33
n034=rm34
n035=rm35
n036=rm36
n037=rm37
n038=rm38
n039=rm39
n040=rm40
n041=rm41
n042=rm42
n043=rm43
n044=rm44
n045=rm45
n046=rm46
n047=rm47
n048=rm48
n049=rm49
n050=rm50
n051=rm51
n053=rm53
n054=rm54
n055=rm55
n056=rm56
n057=rm57
n058=rm58
n059=rm59
n060=rm60
n061=rm61
n062=rm62
n063=rm63
n064=rm64
n065=rm65
n066=rm66
n067=rm67
n068=rm68
n069=rm69
n070=rm70
n071=rm71
n072=rm72
n073=rm73
n074=rm74
n075=rm75
n076=rm76
n077=rm77
n078=rm78
n079=rm79
n080=rm80
n081=rm81
n082=rm82
n083=rm83
n084=rm84
n085=rm85
n086=rm86
n087=rm87
n088=rm88
n089=rm89
n090=rm90
n091=rm91
n092=rm92
n093=rm93
n094=rm94
n095=rm95
n098=rm98
n099=rm99
n120=Intro
n221=rm221
n222=rm222
n255=Class_255_0
n301=WearCrown
n302=TimeOut
n303=PlayIt
n304=PlayFlute
n305=ShootBow
n306=ReadBook
n307=openPbox
n333=rm333
n501=WaterReg
n503=BeachReg
n504=Gull Region
n505=gfReg
n506=MeadReg
n507=Woods Region
n508=Forest Region
n509=sForReg
n510=CemReg
n511=MountReg
n512=RiverReg
n513=SwampReg
n514=regPan
n516=Notes
n517=Ogre's Region
n518=regUnicorn
n519=Ocean Region
n520=KQ4Music
n521=EndMusic
n600=rg600
n601=regDwarfHouse
n602=regOgreHouse
n603=GhostWander
n604=regBFCastle
n605=regTroll
n654=rm654
n690=rm690
n692=rm692
n693=rm693
n694=rm694
n697=rm697
n698=rm698
n699=rm699
n700=rm700
n701=CopyProtect
n801=DebugMenu
n985=Avoid
n987=Gauge
n988=Extra
n989=Sound
n990=SysWindow
n991=Jump
n992=Cycle
n993=GameFile.sh
n994=Game
n995=InvI
n996=User
n997=MenuBar
n998=Feature
n999=Obj
[View]
n900=Rap View

View File

@@ -0,0 +1,226 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 985)
(include sci.sh)
(use Obj)
(class Avoid of Obj
(properties
client 0
heading -1000
bumpTurn 0
lastBumped 0
thisTurn 1
escaping 0
escapes 0
escapeTurn 1
nearestDist 32000
counter 0
nonBumps 10
targetX 0
targetY 0
motionInited 0
outOfTouch 0
offScreenOK 0
)
(method (init theClient theOffScreenOK)
(if (>= argc 1) (= client theClient))
(if (>= argc 2) (= offScreenOK theOffScreenOK))
(= heading (client heading?))
(= counter 0)
(= nonBumps 10)
(= escaping 0)
)
(method (doit &tmp theHeading theNearestDist clientX clientY theTargetX theTargetY clientMover temp7 temp8 clientMoverB_moveCnt temp10 temp11 temp12 temp13)
(cond
((not (= clientMover (client mover?))) (= heading -1000) (return))
((clientMover onTarget:)
(if motionInited else (InitBresen clientMover))
(clientMover doit:)
(return)
)
((== heading -1000) (self init:))
)
(= temp13 0)
(= temp12 (<= nonBumps 3))
(clientMover setTarget:)
(= theTargetX (clientMover x?))
(= theTargetY (clientMover y?))
(= clientX (client x?))
(= clientY (client y?))
(= temp7
(GetAngle clientX clientY theTargetX theTargetY)
)
(= theNearestDist
(GetDistance clientX clientY theTargetX theTargetY)
)
(= theHeading
(= heading (proc999_1 (* 45 (/ heading 45)) 360))
)
(cond
(
(not (if escaping else (= temp12 (<= nonBumps 2))))
(if (not motionInited)
(= motionInited 1)
(InitBresen clientMover)
)
(clientMover doit:)
(if
(or (!= clientX (client x?)) (!= clientY (client y?)))
(self pickLoop: temp7)
(++ nonBumps)
(return)
else
(= nonBumps 0)
(= temp13 1)
(= motionInited 0)
)
)
(
(<
(= clientMoverB_moveCnt (clientMover b-moveCnt?))
(client moveSpeed?)
)
(clientMover b-moveCnt: (++ clientMoverB_moveCnt))
(return)
)
(else (clientMover b-moveCnt: 0))
)
(cond
(
(or
(!= targetX (= targetX theTargetX))
(!= targetY (= targetY theTargetY))
(and
escaping
(or
(<= (-- counter) 0)
(and (< theNearestDist nearestDist) (< counter 40))
)
)
)
(= motionInited (= escaping 0))
(= nearestDist 32000)
(= counter 0)
)
(escaping 1)
((< theNearestDist nearestDist) (= nearestDist theNearestDist) (= counter 0))
((= escaping (>= (++ counter) 50))
(= counter (Random 40 80))
(= escapeTurn (- escapeTurn))
)
)
(cond
((<= (= temp7 (- temp7 theHeading)) -180) (= temp7 (+ temp7 360)))
((> temp7 180) (= temp7 (- temp7 360)))
)
(= temp11 (<= (= temp8 (Abs temp7)) 90))
(= thisTurn
(if
(cond
(escaping (proc999_0 temp7))
(temp11 (proc999_0 temp7))
(bumpTurn)
(lastBumped)
(else (proc999_0 temp7))
)
else
escapeTurn
)
)
(if (and (> temp8 22) (or 0 (not escaping)))
(= heading (+ heading (* thisTurn 45)))
)
(if escaping (= thisTurn escapeTurn))
(self incClientPos:)
(if (self canBeHere:)
(++ nonBumps)
(= bumpTurn 0)
(if (not escaping) (return))
else
(= lastBumped bumpTurn)
(= bumpTurn thisTurn)
(= nonBumps 0)
)
(if escaping
(= theHeading (* 45 (/ heading 45)))
(= temp10 0)
(while (and (< temp10 8) (self canBeHere:))
(= heading
(proc999_1 (+ theHeading (* 45 temp10 escapeTurn)) 360)
)
(client x: clientX y: clientY)
(self incClientPos:)
(++ temp10)
)
(if (== temp10 8)
(= heading (+ heading (* escapeTurn 45)))
)
(= theHeading heading)
)
(= temp10 (= clientMoverB_moveCnt 1))
(while
(and
(not (self canBeHere:))
(< clientMoverB_moveCnt 8)
)
(client x: clientX y: clientY)
(= heading (- theHeading (* 45 temp10 thisTurn)))
(self incClientPos:)
(= temp10
(cond
(escaping (++ clientMoverB_moveCnt))
(temp13 (- (++ clientMoverB_moveCnt)))
((> temp10 0) (- temp10))
(else (++ clientMoverB_moveCnt))
)
)
)
(if (not (self canBeHere:)) (client findPosn:))
(self pickLoop: heading)
)
(method (incClientPos)
(client
x:
(+
(client x?)
(* (proc999_0 (TimesSin heading 100)) (client xStep?))
)
y:
(-
(client y?)
(* (proc999_0 (TimesCos heading 100)) (client yStep?))
)
heading: heading
)
)
(method (pickLoop param1)
(client heading: param1)
(if (client looper?)
((client looper?) doit: client param1)
else
(DirLoop client param1)
)
)
(method (canBeHere)
(return
(if (client canBeHere:)
(cond
(offScreenOK)
((<= 0 (client x?))
(if (<= (client x?) 320)
(if (<= 0 (client y?)) (<= (client y?) 200))
)
)
)
else
0
)
)
)
)

Binary file not shown.

View File

@@ -0,0 +1,136 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 503)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Cycle)
(use Game)
(use InvI)
(use Obj)
(public
beachReg 0
)
(synonyms
(ocean seawater ocean)
)
(local
[local0 7]
local7
gEgoViewer
)
(instance beachReg of Rgn
(properties)
(method (init)
(super init:)
(Load rsVIEW 21)
)
(method (handleEvent pEvent)
(if (pEvent claimed?) (return 1))
(return
(if (== (pEvent type?) evSAID)
(cond
((Said 'look>')
(cond
((Said '<in,under/ocean,water')
(if (!= (gEgo view?) 2)
(Print 503 0)
else
(Print 503 1)
)
)
((Said '/ocean,water') (Print 503 2))
((Said '/fish')
(if (gEgo has: 24)
((Inv at: 24) showSelf:)
else
(Print 503 3)
)
)
((Said '/beach') (Print 503 4))
((or (Said '/sky') (Said '<up'))
(if (not global100)
(Print 503 5)
else
(Print 503 6)
)
)
((or (Said '/dirt') (Said '<down')) (Print 503 7))
((Said '/boulder') (Print 503 8))
((Said '/forest') (Print 503 9))
((Said '/grass') (Print 503 10))
((Said '/bush') (Print 503 11))
((Said '/flora,blossom') (Print 503 12))
)
)
((Said 'get/flora,blossom') (Print 503 13))
((Said 'get/water') (Print 503 14))
((or (Said 'drink') (Said 'get/drink'))
(cond
((!= (gEgo view?) 2) (Print 503 15))
(
(or
(& (= local7 (proc0_2 gEgo 12)) $0008)
(& local7 $0800)
(& local7 $0002)
(& local7 $0200)
)
(= gGEgoScript (gEgo script?))
(gEgo setScript: drinking)
)
(else (Print 800 1))
)
)
((Said 'bathe,dive,wade[<enter][/ocean]>')
(cond
((!= global105 4) (Print 503 16))
((Said '<under') (Print 503 17))
(else (Print 503 18))
)
(pEvent claimed: 1)
)
(
(or (Said 'capture,get/fish') (Said 'fish[<enter]'))
(cond
((== global105 4) (Print 503 19))
((gEgo has: 17) (Print 503 20))
(else (Print 503 21))
)
)
)
else
0
)
)
)
)
(instance drinking of Script
(properties)
(method (changeState newState)
(switch (= state newState)
(0
(= global204 1)
(proc0_8)
(= gEgoViewer (gEgo viewer?))
(gEgo viewer: 0 view: 21 cel: 0 setCycle: End self)
)
(1
(Timer setReal: self 5)
(= global120 (Print 503 22 67 -1 10 88))
)
(2 (gEgo setCycle: Beg self))
(3
(if gModelessDlg (gModelessDlg dispose:))
(= global204 0)
(gEgo view: 2 setCycle: Walk)
(gEgo script: gGEgoScript viewer: gEgoViewer)
(proc0_9)
)
)
)
)

Binary file not shown.

View File

@@ -0,0 +1,104 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 510)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Game)
(use InvI)
(public
cemReg 0
)
(synonyms
(fence wall)
)
(instance cemReg of Rgn
(properties)
(method (handleEvent pEvent &tmp gInvSaidMe)
(if (pEvent claimed?) (return 1))
(return
(if (== (pEvent type?) evSAID)
(cond
((Said 'look>')
(cond
((Said '/flora') (Print 510 0))
((Said '/boulder') (Print 510 1))
((Said '/dirt,down') (Print 510 2))
((Said '/grass') (Print 510 3))
((Said '/bush') (Print 510 4))
((Said '/blossom') (Print 510 5))
((Said '/fence') (Print 510 6))
((Said '/forest') (Print 510 7))
((Said '/cemetery,cemetery') (Print 510 8))
((Said '/grave,crypt') (Print 510 9))
((Said '/gravestone') (Print 510 10))
((Said '/monument') (Print 510 11))
((Said '/ghoul')
(if (and global100 global186)
(Print 510 12)
else
(Print 510 13)
)
)
)
)
((Said 'get/blossom') (Print 510 14))
((Said 'dig[/grave,hole]')
(if (not ((Inv at: 15) owner: gEgo))
(Print 510 15)
)
(if (== 5 global113) (Print 510 16))
)
((Said 'conceal<behind/grave,gravestone') (Print 510 17))
((Said 'get/gravestone') (Print 510 18))
((Said 'move/gravestone') (Print 510 19))
((Said 'converse[/ghoul]')
(if (and global100 global186)
(Print 510 20)
else
(Print 510 21)
)
)
((Said 'kill[/ghoul]')
(if (and global100 global186)
(Print 510 22)
else
(Print 510 13)
)
)
((Said 'climb/boulder') (Print 510 23))
((Said 'get,capture/ghoul')
(if (and global100 global186)
(Print 510 24)
else
(Print 510 13)
)
)
((Said 'kiss[/ghoul]')
(if (and global100 global186)
(Print 510 25)
else
(pEvent claimed: 0)
)
)
(
(and (Said 'deliver>') (= gInvSaidMe (gInv saidMe:)))
(if (gEgo has: (gInv indexOf: gInvSaidMe))
(if (== global186 0)
(Print 510 21)
else
(Print 510 26)
)
else
(proc0_17)
)
)
)
else
0
)
)
)
)

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,551 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 701)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Game)
(use MenuBar)
(public
copyProtect 0
)
(local
local0
local1
local2
[local3 30]
local33
local34
local35
)
(instance copyProtect of Rm
(properties
picture 991
)
(method (init)
(super init:)
(switch (= local0 (Random 1 79))
(1 (= local2 431))
(2 (= local2 521))
(3 (= local2 535))
(4 (= local2 323))
(5 (= local2 621))
(6 (= local2 480))
(7 (= local2 303))
(8 (= local2 671))
(9 (= local2 393))
(10 (= local2 380))
(11 (= local2 470))
(12 (= local2 287))
(13 (= local2 352))
(14 (= local2 316))
(15 (= local2 317))
(16 (= local2 355))
(17 (= local2 616))
(18 (= local2 475))
(19 (= local2 383))
(20 (= local2 425))
(21 (= local2 516))
(22 (= local2 673))
(23 (= local2 550))
(24 (= local2 666))
(25 (= local2 465))
(26 (= local2 617))
(27 (= local2 628))
(28 (= local2 395))
(29 (= local2 505))
(30 (= local2 492))
(31 (= local2 478))
(32 (= local2 455))
(33 (= local2 455))
(34 (= local2 599))
(35 (= local2 431))
(36 (= local2 565))
(37 (= local2 455))
(38 (= local2 467))
(39 (= local2 691))
(40 (= local2 535))
(41 (= local2 432))
(42 (= local2 621))
(43 (= local2 372))
(44 (= local2 536))
(45 (= local2 395))
(46 (= local2 496))
(47 (= local2 372))
(48 (= local2 389))
(49 (= local2 374))
(50 (= local2 523))
(51 (= local2 286))
(52 (= local2 454))
(53 (= local2 273))
(54 (= local2 579))
(55 (= local2 282))
(56 (= local2 354))
(57 (= local2 602))
(58 (= local2 463))
(59 (= local2 653))
(60 (= local2 691))
(61 (= local2 309))
(62 (= local2 519))
(63 (= local2 380))
(64 (= local2 446))
(65 (= local2 302))
(66 (= local2 599))
(67 (= local2 357))
(68 (= local2 399))
(69 (= local2 381))
(70 (= local2 771))
(71 (= local2 378))
(72 (= local2 378))
(73 (= local2 434))
(74 (= local2 614))
(75 (= local2 395))
(76 (= local2 381))
(77 (= local2 456))
(78 (= local2 384))
(79 (= local2 686))
)
(switch local0
(1
(= local1
{On page 2, what is the fourth word of the first sentence?}
)
)
(2
(= local1
{On page 2, what is the fourth word of the second paragraph?}
)
)
(3
(= local1
{On page 3, what is the fourth word in the first paragraph?}
)
)
(4
(= local1
{On page 3, what is the sixth word in the first paragraph?}
)
)
(5
(= local1
{On page 3, what is the fourth word in the third paragraph?}
)
)
(6
(= local1
{On page 3, what is the third word in the second paragraph?}
)
)
(7
(= local1
{On page 8, what is the first word of the first paragraph?}
)
)
(8
(= local1
{On page 3, what is the seventh word in the third paragraph?}
)
)
(9
(= local1
{On page 3, what is the last word of the third paragraph?}
)
)
(10
(= local1
{On page 4, what is the third word in the first paragraph?}
)
)
(11
(= local1
{On page 4, what is the last word in the third paragraph?}
)
)
(12
(= local1
{On page 4, what is the sixth word of the first paragraph?}
)
)
(13
(= local1
{On page 3, what is the eighth word in the third paragraph?}
)
)
(14
(= local1
{On page 4, what is the seventh word in the first paragraph?}
)
)
(15
(= local1
{On page 4, what is the third word in the third paragraph?}
)
)
(16
(= local1
{On page 4, what is the eighth word in the third paragraph?}
)
)
(17
(= local1
{On page 5, what is the fifth word in the second paragraph?}
)
)
(18
(= local1
{On page 5, what is the second word in the third paragraph?}
)
)
(19
(= local1
{On page 5, what is the fourth word in the first paragraph?}
)
)
(20
(= local1
{On page 5, what is the ninth word in the fifth paragraph?}
)
)
(21
(= local1
{On page 6, what is the third word in the first paragraph?}
)
)
(22
(= local1
{On page 6, what is the fifth word in the first paragraph?}
)
)
(23
(= local1
{On page 6, what is the sixth word in the second paragraph?}
)
)
(24
(= local1
{On page 7, what is the first word in the first paragraph?}
)
)
(25
(= local1
{On page 7, what is the tenth word in the first paragraph?}
)
)
(26
(= local1
{On page 7, what is the third word in the second paragraph?}
)
)
(27
(= local1
{On page 7, what is the fifth word in the second paragraph?}
)
)
(28
(= local1
{On page 7, what is the second word in the third paragraph?}
)
)
(29
(= local1
{On page 8, what is the fifth word in the first paragraph?}
)
)
(30
(= local1
{On page 8, what is the last word of the first sentence in the first paragraph?}
)
)
(31
(= local1
{On page 6, what is the last word in the second paragraph?}
)
)
(32
(= local1
{On page 8, what is the second word in the third paragraph?}
)
)
(33
(= local1
{On page 8, what is the sixth word in the third paragraph?}
)
)
(34
(= local1
{On page 8, what is the ninth word in the third paragraph?}
)
)
(35
(= local1
{On page 9, what is the third word in the first paragraph?}
)
)
(36
(= local1
{On page 9, what is the fourth word in the first paragraph?}
)
)
(37
(= local1
{On page 9, what is the seventh word in the first paragraph?}
)
)
(38
(= local1
{On page 6, what is the fourth word in the second paragraph?}
)
)
(39
(= local1
{On page 6, what is the eighth word in the second paragraph?}
)
)
(40
(= local1
{On page 9, what is the seventh word in the second paragraph?}
)
)
(41
(= local1
{On page 5, what is the seventh word in the fifth paragraph?}
)
)
(42
(= local1
{On page 2, what is the sixth word in the second paragraph?}
)
)
(43
(= local1
{On page 2, what is the eighth word in the second paragraph?}
)
)
(44
(= local1
{On page 3, what is the tenth word in the first paragraph?}
)
)
(45
(= local1
{On page 4, what is the second word in the second paragraph?}
)
)
(46
(= local1
{On page 4, what is the fourth word in the third paragraph?}
)
)
(47
(= local1
{On page 5, what is the third word in the second paragraph?}
)
)
(48
(= local1
{On page 5, what is the eighth word in the third paragraph?}
)
)
(49
(= local1
{On page 5, what is the eighth word in the fourth paragraph?}
)
)
(50
(= local1
{On page 6, what is the ninth word in the first paragraph?}
)
)
(51
(= local1
{On page 7, what is the ninth word of the third paragraph?}
)
)
(52
(= local1
{What is the second word of the first paragraph in the OVERVIEW?}
)
)
(53
(= local1
{What is the first word of the second paragraph in the OVERVIEW?}
)
)
(54
(= local1
{What is the third word of the second paragraph in the OVERVIEW?}
)
)
(55
(= local1
{What is the sixth word of the first paragraph in the OVERVIEW?}
)
)
(56
(= local1
{In the section TIPS FOR NEW ADVENTURE PLAYERS, what is the first word of tip #1 (HOW TO MOVE AROUND)?}
)
)
(57
(= local1
{In the section TIPS FOR NEW ADVENTURE PLAYERS, what is the sixth word of tip #1 (HOW TO MOVE AROUND)?}
)
)
(58
(= local1
{In the section TIPS FOR NEW ADVENTURE PLAYERS, what is the fifth word in the first paragraph of tip #2 (STAY OUT OF DANGER)}
)
)
(59
(= local1
{In the section TIPS FOR NEW ADVENTURE PLAYERS, what is the eighth word in the second paragraph of tip #2 (STAY OUT OF DANGER)}
)
)
(60
(= local1
{In the section TIPS FOR NEW ADVENTURE PLAYERS, what is the fourth word in the second paragraph of tip #2 (STAY OUT OF DANGER)}
)
)
(61
(= local1
{In the section TIPS FOR NEW ADVENTURE PLAYERS, what is the first word of tip #3 (BE OBSERVANT)?}
)
)
(62
(= local1
{In the section TIPS FOR NEW ADVENTURE PLAYERS, what is the fourth word of tip #3 (BE OBSERVANT)?}
)
)
(63
(= local1
{In the section TIPS FOR NEW ADVENTURE PLAYERS, what is the last word of tip #3 (BE OBSERVANT)?}
)
)
(64
(= local1
{In the section TIPS FOR NEW ADVENTURE PLAYERS, what is the last word of tip #1 (HOW TO MOVE AROUND)?}
)
)
(65
(= local1
{In the section TIPS FOR NEW ADVENTURE PLAYERS, what is the first word of tip #4 (MAP YOUR PROGRESS)?}
)
)
(66
(= local1
{In the section TIPS FOR NEW ADVENTURE PLAYERS, what is the fifth word of tip #4 (MAP YOUR PROGRESS)?}
)
)
(67
(= local1
{In the section TIPS FOR NEW ADVENTURE PLAYERS, what is the seventh word of tip #4 (MAP YOUR PROGRESS)?}
)
)
(68
(= local1
{In the section TIPS FOR NEW ADVENTURE PLAYERS, what is the ninth word of tip #4 (MAP YOUR PROGRESS)?}
)
)
(69
(= local1
{In the section TIPS FOR NEW ADVENTURE PLAYERS, what is the fourth word of tip #5 (BRING ALONG SOME HELP)?}
)
)
(70
(= local1
{In the section TIPS FOR NEW ADVENTURE PLAYERS, what is the seventh word of tip #5 (BRING ALONG SOME HELP)?}
)
)
(71
(= local1
{In the section TIPS FOR NEW ADVENTURE PLAYERS, what is the ninth word of tip #5 (BRING ALONG SOME HELP)?}
)
)
(72
(= local1
{In the section TIPS FOR NEW ADVENTURE PLAYERS, what is the last word of tip #5 (BRING ALONG SOME HELP)?}
)
)
(73
(= local1
{What is the last word starting with "b" in the verb list?}
)
)
(74
(= local1
{In the section TIPS FOR NEW ADVENTURE PLAYERS, what is the last word of tip #7 (LEAVE NO STONE UNTURNED)?}
)
)
(75
(= local1
{In the section TIPS FOR NEW ADVENTURE PLAYERS, what is the fourth word in the first paragraph of tip #8 (AT THE END OF YOUR ROPE)?}
)
)
(76
(= local1
{In the section TIPS FOR NEW ADVENTURE PLAYERS, what is the sixth word in the first paragraph of tip #8 (AT THE END OF YOUR ROPE)?}
)
)
(77
(= local1
{In the section TIPS FOR NEW ADVENTURE PLAYERS, what is the third word in the second paragraph of tip #8 (AT THE END OF YOUR ROPE)?}
)
)
(78
(= local1
{In the section TIPS FOR NEW ADVENTURE PLAYERS, what is the last word in the first paragraph of tip #8 (AT THE END OF YOUR ROPE)?}
)
)
(79
(= local1
{In the section TIPS FOR NEW ADVENTURE PLAYERS, what is the eighth word in the first paragraph of tip #2 (STAY OUT OF DANGER)?}
)
)
)
)
(method (doit)
(= local3 0)
(= local35 0)
(proc0_9)
(= global205 0)
(Print
(Format @global228 701 0 local1)
67
7
5
33
gSmallFont
70
290
41
@local3
30
)
(if
(and global215 (= local33 (ReadNumber @local3)))
(TheMenuBar draw:)
(SL enable:)
(self newRoom: local33)
(return)
)
(= gUserFont gSmallFont)
(= local33 0)
(while (< local33 (StrLen @local3))
(= local34
(& (= local34 (StrAt @local3 local33)) $005f)
)
(StrAt @local3 local33 local34)
(= local35 (+ local35 local34))
(++ local33)
)
(if (== local35 local2)
(gRoom newRoom: 700)
else
(Print 701 1)
(= gQuit 1)
)
)
)

View File

@@ -0,0 +1,463 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 992)
(include sci.sh)
(use Main)
(use Obj)
(class Cycle of Obj
(properties
client 0
caller 0
cycleDir 1
cycleCnt 0
completed 0
)
(method (init theClient)
(if argc (= client theClient))
(= cycleCnt 0)
(client setCel: -1)
(client startUpd:)
)
(method (nextCel)
(++ cycleCnt)
(return
(if (<= cycleCnt (client cycleSpeed?))
(client cel?)
else
(= cycleCnt 0)
(if (& (client signal?) $1000)
(client cel?)
else
(+ (client cel?) cycleDir)
)
)
)
)
(method (cycleDone)
)
(method (motionCue)
(client cycler: 0)
(if (and completed (IsObject caller)) (caller cue:))
(self dispose:)
)
)
(class Fwd of Cycle
(properties
client 0
caller 0
cycleDir 1
cycleCnt 0
completed 0
)
(method (doit &tmp fwdNextCel)
(if
(> (= fwdNextCel (self nextCel:)) (client lastCel:))
(self cycleDone:)
else
(client cel: fwdNextCel)
)
)
(method (cycleDone)
(client cel: 0)
)
)
(class Walk of Fwd
(properties
client 0
caller 0
cycleDir 1
cycleCnt 0
completed 0
)
(method (doit &tmp temp0)
(if (not (client isStopped:)) (super doit:))
)
)
(class Rev of Cycle
(properties
client 0
caller 0
cycleDir -1
cycleCnt 0
completed 0
)
(method (doit &tmp revNextCel)
(if (< (= revNextCel (self nextCel:)) 0)
(self cycleDone:)
else
(client cel: revNextCel)
)
)
(method (cycleDone)
(client cel: (client lastCel:))
)
)
(class CT of Cycle
(properties
client 0
caller 0
cycleDir 1
cycleCnt 0
completed 0
endCel 0
)
(method (init param1 param2 theCycleDir theCaller &tmp clientLastCel)
(super init: param1)
(= cycleDir theCycleDir)
(if (== argc 4) (= caller theCaller))
(= endCel
(if (> param2 (= clientLastCel (client lastCel:)))
clientLastCel
else
param2
)
)
)
(method (doit &tmp cTNextCel clientLastCel)
(if (> endCel (= clientLastCel (client lastCel:)))
(= endCel clientLastCel)
)
(= cTNextCel (self nextCel:))
(client
cel:
(cond
((> cTNextCel clientLastCel) 0)
((< cTNextCel 0) clientLastCel)
(else cTNextCel)
)
)
(if
(and (== cycleCnt 0) (== endCel (client cel?)))
(self cycleDone:)
)
)
(method (cycleDone)
(= completed 1)
(if caller (= global58 1) else (self motionCue:))
)
)
(class End of CT
(properties
client 0
caller 0
cycleDir 1
cycleCnt 0
completed 0
endCel 0
)
(method (init param1 param2)
(super
init: param1 (param1 lastCel:) 1 (if (== argc 2) param2 else 0)
)
)
)
(class Beg of CT
(properties
client 0
caller 0
cycleDir 1
cycleCnt 0
completed 0
endCel 0
)
(method (init param1 param2)
(super init: param1 0 -1 (if (== argc 2) param2 else 0))
)
)
(class Motion of Obj
(properties
client 0
caller 0
x 0
y 0
dx 0
dy 0
b-moveCnt 0
b-i1 0
b-i2 0
b-di 0
b-xAxis 0
b-incr 0
completed 0
)
(method (init theClient theX theY theCaller &tmp [temp0 2])
(if (>= argc 1)
(= client theClient)
(if (>= argc 2)
(= x theX)
(if (>= argc 3)
(= y theY)
(if (>= argc 4) (= caller theCaller))
)
)
)
(= b-moveCnt 0)
(theClient
heading: (GetAngle (theClient x?) (theClient y?) theX theY)
)
(if (theClient looper?)
((theClient looper?)
doit: theClient (theClient heading?)
)
else
(DirLoop theClient (theClient heading?))
)
(InitBresen self)
)
(method (doit &tmp [temp0 6])
(DoBresen self)
(if (and (== x (client x?)) (== y (client y?)))
(self moveDone:)
(return)
)
)
(method (moveDone)
(= completed 1)
(if caller (= global58 1) else (self motionCue:))
)
(method (triedToMove)
(return (== b-moveCnt 0))
)
(method (setTarget theX theY)
(if argc (= x theX) (= y theY))
)
(method (onTarget)
(return (if (== (client x?) x) (== (client y?) y) else 0))
)
(method (motionCue)
(client mover: 0)
(if (and completed (IsObject caller)) (caller cue:))
(self dispose:)
)
)
(class MoveTo of Motion
(properties
client 0
caller 0
x 0
y 0
dx 0
dy 0
b-moveCnt 0
b-i1 0
b-i2 0
b-di 0
b-xAxis 0
b-incr 0
completed 0
)
(method (init)
(super init: &rest)
)
(method (onTarget)
(return
(if (<= (Abs (- (client x?) x)) (client xStep?))
(<= (Abs (- (client y?) y)) (client yStep?))
else
0
)
)
)
)
(class Wander of Motion
(properties
client 0
caller 0
x 0
y 0
dx 0
dy 0
b-moveCnt 0
b-i1 0
b-i2 0
b-di 0
b-xAxis 0
b-incr 0
completed 0
distance 30
)
(method (init theClient theDistance &tmp temp0)
(if (>= argc 1)
(= client theClient)
(if (>= argc 2) (= distance theDistance))
)
(= temp0 (* distance 2))
(= x (+ (theClient x?) (- distance (Random 1 temp0))))
(= y (+ (theClient y?) (- distance (Random 1 temp0))))
(super init: client x y)
)
(method (doit)
(super doit:)
(if (client isStopped:) (self moveDone:))
)
(method (moveDone)
(self init: client distance)
)
(method (setTarget &tmp temp0)
(= temp0 (* distance 2))
(= x (+ (client x?) (- distance (Random 1 temp0))))
(= y (+ (client y?) (- distance (Random 1 temp0))))
)
(method (onTarget)
(return 0)
)
)
(class Follow of Motion
(properties
client 0
caller 0
x 0
y 0
dx 0
dy 0
b-moveCnt 0
b-i1 0
b-i2 0
b-di 0
b-xAxis 0
b-incr 0
completed 0
who 0
distance 20
)
(method (init theClient theWho theDistance)
(if (>= argc 1)
(= client theClient)
(if (>= argc 2)
(= who theWho)
(if (>= argc 3) (= distance theDistance))
)
)
(if (> (client distanceTo: who) distance)
(super init: client (who x?) (who y?))
)
)
(method (doit &tmp temp0)
(if (> (client distanceTo: who) distance)
(super doit:)
(if (== b-moveCnt 0)
(super init: client (who x?) (who y?))
)
else
(= temp0
(GetAngle (client x?) (client y?) (who x?) (who y?))
)
(if (client looper?)
((client looper?) doit: client temp0)
else
(DirLoop client temp0)
)
)
)
(method (moveDone)
)
(method (setTarget)
(cond
(argc (super setTarget: &rest))
((not (self onTarget:)) (super setTarget: (who x?) (who y?)))
)
)
(method (onTarget)
(return (<= (client distanceTo: who) distance))
)
)
(class Chase of Motion
(properties
client 0
caller 0
x 0
y 0
dx 0
dy 0
b-moveCnt 0
b-i1 0
b-i2 0
b-di 0
b-xAxis 0
b-incr 0
completed 0
who 0
distance 0
)
(method (init theClient theWho theDistance theCaller)
(if (>= argc 1)
(= client theClient)
(if (>= argc 2)
(= who theWho)
(if (>= argc 3)
(= distance theDistance)
(if (>= argc 4) (= caller theCaller))
)
)
)
(super init: client (who x?) (who y?) caller)
)
(method (doit)
(if (<= (client distanceTo: who) distance)
(self moveDone:)
else
(super doit:)
(if (== b-moveCnt 0)
(super init: client (who x?) (who y?) caller)
)
)
)
(method (setTarget)
(cond
(argc (super setTarget: &rest))
((not (self onTarget:)) (super setTarget: (who x?) (who y?)))
)
)
(method (onTarget)
(return (<= (client distanceTo: who) distance))
)
)

Binary file not shown.

View File

@@ -0,0 +1,109 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 801)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Game)
(use InvI)
(use MenuBar)
(use Obj)
(public
DebugMenu 0
)
(instance DebugMenu of Script
(properties)
(method (init)
(AddMenu
{ Debug_}
{Ego info...`@e:Show Room`@R:Free Mem`@F:Show ATPs`@P:-! :Set Debug`^D:Clicks:Set Inv`@S:Set Var`@V:Get All`@G:Log`@L:-! :Visual`#0:Priority`#6:Control`#4}
)
(if (not (SL state?)) (TheMenuBar draw:))
)
(method (doit param1 &tmp temp0 [temp1 6] [temp7 33])
(switch param1
(1537
(Print
(Format
@global228
801
0
(gEgo x?)
(gEgo y?)
(gEgo priority?)
)
82
(gEgo view?)
(gEgo loop?)
(gEgo cel?)
)
)
(1538
(Print (Format @temp7 801 1 gCurRoomNum))
)
(1539 (gGame showMem:))
(1540 (gAddToPics showSelf:))
(1542 (= global14 1))
(1543
(if (= global215 (^ global215 $0001))
(Print 801 2)
)
)
(1544
(= global228 0)
(EditPrint @global228 8 {Inv. Object})
(= global111 (ReadNumber @global228))
(= global228 0)
(EditPrint @global228 12 {Owner})
(if (not (StrCmp {ego} @global228))
((gInv at: global111) moveTo: gEgo)
else
((gInv at: global111) moveTo: (ReadNumber @global228))
)
(= global228 0)
)
(1545
(= global228 0)
(EditPrint @global228 8 {Variable No.})
(= global111 (ReadNumber @global228))
(= global228 0)
(EditPrint @global228 8 {Value})
(= [global100 (- global111 100)]
(ReadNumber @global228)
)
(= global228 0)
)
(1546
(gInv eachElementDo: #moveTo gEgo)
((Inv at: 14) loop: 0 cel: 0)
)
(1547
(if (not global196)
(if (< (= global195 (FOpen {KQ4QA.LOG} 0)) 0)
(Print 801 3)
else
(= global196 1)
(Print 801 4)
(FPuts global195 {New entries start here.\0D\0A})
)
else
(Print 801 5)
)
)
(1549 (Show 1))
(1550 (Show 2))
(1551
(Show 4)
(Animate (gCast elements?))
(while (== 0 ((= temp0 (Event new: 32765)) type?))
(temp0 dispose:)
)
(temp0 dispose:)
(Show 1)
)
)
)
)

Binary file not shown.

View File

@@ -0,0 +1,77 @@
[methodParameterNames]
changeState = "newState"
handleEvent = "pEvent"
dispatchEvent = "pEvent"
doVerb = "theVerb"
newRoom = "newRoomNumber"
setRegions = "scriptNumbers"
setFeatures = "theFeatures"
setLocales = "scriptNumbers"
setSpeed = "newSpeed"
setCursor = "cursorNumber"
setScript = [ "theScript", "sendParams"]
drawPic = [ "picNumber", "picAnimation" ]
overlay = [ "picNumber", "picAnimation" ]
setCycle = [ "theCycler", "sendParams" ]
setMotion = [ "theMover", "sendParams" ]
setAvoider = [ "theAvoider", "sendParams" ]
observeControl = "bits"
ignoreControl = "bits"
onControl = "fUsePoint"
distanceTo = "pObj"
setStep = [ "newX", "newY" ]
setDirection = "newDirection"
display = "theText"
[methodParameterNames.Cycle] # not yet implemented
init = "theClient"
[enums]
evType = [ "ev.*" ]
verbType = [ "WALK", "LOOK", "DO", "TALK", "ASK", "HELP" ]
drawPicAnimation = ["dp.*"]
drawPicClear = ["dpCLEAR", "dpNO_CLEAR"]
rsType = [ "rs.*" ]
fiType = [ "fi.*" ]
palType = [ "pal.*" ]
sndType = [ "snd.*" ]
grType = [ "gr.*" ]
pvType = [ "pv.*" ]
msgType = [ "msg.*" ]
evMsgType = [ "KEY_.*", "JOY_.*" ]
evModType = [ "em.*" ]
signalType = [ "notUpd" ,"fixPriOn" ,"isExtra" ,"noTurn" ,"skipCheck" ,"ignoreHorizon" , "ignAct" ]
memType = [ "mem.*" ]
[commonSwitchValueTypes]
theVerb = "verbType"
"pEvent.message" = "evMsgType"
"pEvent.type" = "evType"
"pEvent.modifiers" = "evModType"
pEventMessage = "evMsgType"
pEventType = "evType"
pEventModifiers = "evModType"
signal = "signalType"
# use certain enums when assigning to or comparing to parameters for a function
[methodParameterTypes]
doVerb = [ "verbType" ]
firstTrue = [ "selector" ]
allTrue = [ "selector" ]
respondsTo = [ "selector" ]
eachElementDo = [ "selector" ]
# use certain enums when passing parameters to kernel calls
[kernelParameterTypes]
DrawPic = [ "", "drawPicAnimation", "drawPicClear" ]
Load = [ "rsType" ]
FileIO = [ "fiType" ]
Palette = [ "palType" ]
PalVary = [ "pvType" ]
DoSound = [ "sndType" ]
Graph = [ "grType" ]
Message = [ "msgType" ]
Memory = [ "memType" ]
[bitfieldProperties]
bitfieldProperties = [ "style", "signal", "flags", "modifiers", "scaleSignal", "syncCue", "prevCue", "onMeCheck", "state", "type", "illegalBits" ]

View File

@@ -0,0 +1,25 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 521)
(include sci.sh)
(use Sound)
(use Game)
(public
RgEnd 0
ENDMUSIC 1
)
(instance ENDMUSIC of Sound
(properties)
)
(instance RgEnd of Rgn
(properties)
(method (init)
(if initialized (return))
(= keep 1)
(super init:)
(ENDMUSIC number: 201 owner: 521 init:)
)
)

Binary file not shown.

View File

@@ -0,0 +1,133 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 988)
(include sci.sh)
(use Cycle)
(use Feature)
(class Extra of Prop
(properties
y 0
x 0
z 0
heading 0
yStep 2
view 0
loop 0
cel 0
priority 0
underBits 0
signal $0000
nsTop 0
nsLeft 0
nsBottom 0
nsRight 0
lsTop 0
lsLeft 0
lsBottom 0
lsRight 0
brTop 0
brLeft 0
brBottom 0
brRight 0
cycleSpeed 1
script 0
cycler 0
timer 0
cycleType 0
hesitation 0
pauseCel 0
minPause 10
maxPause 30
minCycles 8
maxCycles 20
counter 0
state $ffff
cycles 0
)
(procedure (localproc_0148)
(switch pauseCel
(-1 (Random 0 (self lastCel:)))
(-2 (self lastCel:))
((== cycleType 0) pauseCel)
)
)
(method (init)
(= cel (localproc_0148))
(self changeState: 0)
(super init:)
)
(method (doit)
(if
(and
(== cycleType 1)
(== cel pauseCel)
(!= pauseCel 0)
)
(== cycles (+ hesitation 1))
)
(if (and cycles (not (-- cycles))) (self cue:))
(super doit:)
)
(method (cue)
(if (& signal $0005)
else
(self changeState: (+ state 1))
)
)
(method (stopExtra)
(self setCel: (localproc_0148) stopUpd:)
)
(method (startExtra)
(self changeState: 1)
)
(method (changeState newState)
(switch (= state newState)
(0
(if (== counter 0)
(= cycles (Random minPause maxPause))
(if (!= cycleType 0)
(= counter (- (Random minCycles maxCycles) 1))
)
else
(-- counter)
(self cue:)
)
)
(1
(if (== cycleType 0)
(self setCycle: Fwd)
(= cycles (Random minCycles maxCycles))
else
(self setCycle: End self)
)
)
(2
(if (== cycleType 2)
(= cycles hesitation)
else
(self cue:)
)
)
(3
(if (== cycleType 2)
(self setCycle: Beg self)
else
(self cue:)
)
)
(4
(self setCel: (localproc_0148))
(self changeState: 0)
)
)
)
)

Binary file not shown.

View File

@@ -0,0 +1,720 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 998)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Cycle)
(use Obj)
(class Feature of Obj
(properties
y 0
x 0
z 0
heading 0
)
(method (dispose)
(gFeatures delete: self)
(super dispose:)
)
(method (handleEvent pEvent)
(pEvent claimed?)
)
)
(class PV of Feature
(properties
y 0
x 0
z 0
heading 0
view 0
loop 0
cel 0
priority -1
signal $0000
)
(method (showSelf)
(Print name 82 view loop cel)
)
)
(class View of Feature
(properties
y 0
x 0
z 0
heading 0
yStep 2
view 0
loop 0
cel 0
priority 0
underBits 0
signal $0101
nsTop 0
nsLeft 0
nsBottom 0
nsRight 0
lsTop 0
lsLeft 0
lsBottom 0
lsRight 0
brTop 0
brLeft 0
brBottom 0
brRight 0
)
(method (init)
(= signal (& signal $7fff))
(if (not (gCast contains: self))
(= lsRight (= lsBottom (= lsLeft (= lsTop 0))))
(= signal (& signal $ff77))
)
(BaseSetter self)
(gCast add: self)
)
(method (dispose)
(self startUpd: hide:)
(= signal (| signal $8000))
)
(method (showSelf)
(Print name 82 view loop cel)
)
(method (posn theX theY theZ)
(if (>= argc 1)
(= x theX)
(if (>= argc 2)
(= y theY)
(if (>= argc 3) (= z theZ))
)
)
(BaseSetter self)
(self forceUpd:)
)
(method (stopUpd)
(= signal (| signal notUpd))
(= signal (& signal $fffd))
)
(method (forceUpd)
(= signal (| signal $0040))
)
(method (startUpd)
(= signal (| signal $0002))
(= signal (& signal $fffe))
)
(method (setPri thePriority)
(cond
((== argc 0) (= signal (| signal fixPriOn)))
((== thePriority -1) (= signal (& signal $ffef)))
(else (= priority thePriority) (= signal (| signal fixPriOn)))
)
(self forceUpd:)
)
(method (setLoop theLoop)
(cond
((== argc 0) (= signal (| signal noTurn)))
((== theLoop -1) (= signal (& signal $f7ff)))
(else (= loop theLoop) (= signal (| signal noTurn)))
)
(self forceUpd:)
)
(method (setCel param1)
(cond
((== argc 0) (= signal (| signal skipCheck)))
((== param1 -1) (= signal (& signal $efff)))
(else
(= signal (| signal skipCheck))
(= cel
(if (>= param1 (self lastCel:))
(self lastCel:)
else
param1
)
)
)
)
(self forceUpd:)
)
(method (ignoreActors param1)
(if (or (== 0 argc) param1)
(= signal (| signal ignAct))
else
(= signal (& signal $bfff))
)
)
(method (hide)
(= signal (| signal $0008))
)
(method (show)
(= signal (& signal $fff7))
)
(method (delete)
(if (& signal $8000)
(if (& signal $0020)
(gAddToPics
add:
((PV new:)
view: view
loop: loop
cel: cel
x: x
y: y
z: z
priority: priority
signal: signal
yourself:
)
)
)
(= signal (& signal $7fff))
(gCast delete: self)
(if underBits (UnLoad 133 underBits) (= underBits 0))
(super dispose:)
)
)
(method (addToPic)
(if (not (gCast contains: self)) (self init:))
(self signal: (| signal $8021))
)
(method (lastCel)
(return (- (NumCels self) 1))
)
(method (isExtra param1 &tmp temp0)
(= temp0 (& signal isExtra))
(if argc
(if param1
(= signal (| signal isExtra))
else
(= signal (& signal $fdff))
)
)
(return temp0)
)
(method (motionCue)
)
)
(class Prop of View
(properties
y 0
x 0
z 0
heading 0
yStep 2
view 0
loop 0
cel 0
priority 0
underBits 0
signal $0000
nsTop 0
nsLeft 0
nsBottom 0
nsRight 0
lsTop 0
lsLeft 0
lsBottom 0
lsRight 0
brTop 0
brLeft 0
brBottom 0
brRight 0
cycleSpeed 0
script 0
cycler 0
timer 0
)
(method (doit &tmp temp0)
(if (& signal $8000) (return))
(if script (script doit:))
(if (and (& signal $0004) (not (& signal $0002)))
(return)
)
(if cycler (cycler doit:))
)
(method (handleEvent pEvent)
(if script (script handleEvent: pEvent))
(pEvent claimed?)
)
(method (delete)
(if (& signal $8000)
(self setScript: 0 setCycle: 0)
(if timer (timer dispose:))
(super delete:)
)
)
(method (motionCue)
(if (and cycler (cycler completed?))
(cycler motionCue:)
)
)
(method (setCycle theCycler)
(if cycler (cycler dispose:))
(if theCycler
(self startUpd:)
(= cycler (theCycler new:))
(cycler init: self &rest)
else
(= cycler 0)
)
)
(method (setScript theScript)
(if (IsObject script) (script dispose:))
(if (= script theScript)
((= script theScript) init: self &rest)
)
)
(method (cue)
(if script (script cue:))
)
)
(class Act of Prop
(properties
y 0
x 0
z 0
heading 0
yStep 2
view 0
loop 0
cel 0
priority 0
underBits 0
signal $0000
nsTop 0
nsLeft 0
nsBottom 0
nsRight 0
lsTop 0
lsLeft 0
lsBottom 0
lsRight 0
brTop 0
brLeft 0
brBottom 0
brRight 0
cycleSpeed 0
script 0
cycler 0
timer 0
illegalBits $8000
xLast 0
yLast 0
xStep 3
moveSpeed 0
blocks 0
baseSetter 0
mover 0
looper 0
viewer 0
avoider 0
)
(method (init)
(super init:)
(= xLast x)
(= yLast y)
)
(method (doit &tmp temp0 theBrLeft theBrRight)
(if (& signal $8000) (return))
(= signal (& signal $fbff))
(if script (script doit:))
(if (and (& signal $0004) (not (& signal $0002)))
(return)
)
(if viewer (viewer doit: self))
(cond
(avoider (avoider doit:))
(mover (mover doit:))
)
(if cycler
(= theBrLeft brLeft)
(= theBrRight brRight)
(cycler doit:)
(if baseSetter
(baseSetter doit: self)
else
(BaseSetter self)
)
(if
(and
(or (!= theBrLeft brLeft) (!= theBrRight brRight))
(not (self canBeHere:))
)
(self findPosn:)
)
)
(= xLast x)
(= yLast y)
)
(method (posn theXLast theYLast)
(super posn: theXLast theYLast &rest)
(= xLast theXLast)
(= yLast theYLast)
(if (not (self canBeHere:)) (self findPosn:))
)
(method (delete)
(if (& signal $8000)
(if (!= mover -1) (self setMotion: 0))
(self setAvoider: 0)
(if baseSetter (baseSetter dispose:) (= baseSetter 0))
(if looper (looper dispose:) (= looper 0))
(if viewer (viewer dispose:) (= viewer 0))
(if blocks (blocks dispose:) (= blocks 0))
(super delete:)
)
)
(method (motionCue)
(if (and mover (mover completed?)) (mover motionCue:))
(super motionCue:)
)
(method (setMotion theMover &tmp [temp0 40])
(if (and mover (!= mover -1)) (mover dispose:))
(if theMover
(self startUpd:)
(= mover
(if (& (theMover -info-?) $8000)
(theMover new:)
else
theMover
)
)
(mover init: self &rest)
else
(= mover 0)
)
)
(method (setAvoider theAvoider)
(if avoider (avoider dispose:))
(= avoider
(if
(and
(IsObject theAvoider)
(& (theAvoider -info-?) $8000)
)
(theAvoider new:)
else
theAvoider
)
)
(if avoider (avoider init: self &rest))
)
(method (ignoreHorizon param1)
(if (or (not argc) param1)
(= signal (| signal ignoreHorizon))
else
(= signal (& signal $dfff))
)
)
(method (observeControl bits &tmp temp0)
(= temp0 0)
(while (< temp0 argc)
(= illegalBits (| illegalBits [bits temp0]))
(++ temp0)
)
)
(method (ignoreControl bits &tmp temp0)
(= temp0 0)
(while (< temp0 argc)
(= illegalBits (& illegalBits (~ [bits temp0])))
(++ temp0)
)
)
(method (observeBlocks)
(if (not blocks) (= blocks (Set new:)))
(blocks add: &rest)
)
(method (ignoreBlocks)
(blocks delete: &rest)
(if (blocks isEmpty:) (blocks dispose:) (= blocks 0))
)
(method (isStopped)
(cond
((not (IsObject mover)))
((== x xLast) (if (== y yLast) (mover triedToMove:)))
)
)
(method (isBlocked)
(return (& signal $0400))
)
(method (findPosn &tmp temp0 temp1 theX theY temp4)
(= theX x)
(= theY y)
(= temp4 0)
(= temp1 1)
(while (not temp4)
(= temp0 0)
(while (and (not temp4) (< temp0 8))
(= x
(+
theX
(* temp1 (proc999_0 (TimesCos (* temp0 45) 100)))
)
)
(= y
(-
theY
(* temp1 (proc999_0 (TimesSin (* temp0 45) 100)))
)
)
(= temp4
(if (self canBeHere:) (self onControl:) else 0)
)
(++ temp0)
)
(++ temp1)
)
(self posn: x y)
)
(method (inRect param1 param2 param3 param4)
(return
(if
(and (<= param1 x) (< x param3) (<= param2 y))
(< y param4)
else
0
)
)
)
(method (onControl fUsePoint)
(if (and argc fUsePoint)
(OnControl 4 x y)
else
(OnControl 4 brLeft brTop brRight brBottom)
)
)
(method (distanceTo pObj)
(GetDistance x y (pObj x?) (pObj y?) gPicAngle)
)
(method (canBeHere)
(if baseSetter
(baseSetter doit: self)
else
(BaseSetter self)
)
(if
(and
(CanBeHere self (gCast elements?))
(or
(& signal ignoreHorizon)
(not (IsObject gRoom))
(>= y (gRoom horizon?))
)
)
(if (== blocks 0) else (blocks allTrue: #doit self))
)
)
(method (setStep newX newY)
(if (and (>= argc 1) (!= newX -1)) (= xStep newX))
(if (and (>= argc 2) (!= newY -1)) (= yStep newY))
(if
(and mover (!= -1 mover) (mover isMemberOf: MoveTo))
(self
setMotion: MoveTo (mover x?) (mover y?) (mover caller?)
)
)
)
(method (setDirection newDirection &tmp temp0)
(if (== newDirection 0) (self setMotion: 0) (return))
(self
setMotion:
MoveTo
(+
x
(TimesSin
(+
(= temp0 (* 45 (- newDirection 1)))
(GetAngle
x
y
(gRoom vanishingX?)
(gRoom vanishingY?)
)
)
10000
)
)
(- y (TimesCos temp0 10000))
)
)
)
(class Ego of Act
(properties
y 0
x 0
z 0
heading 0
yStep 2
view 0
loop 0
cel 0
priority 0
underBits 0
signal $2000
nsTop 0
nsLeft 0
nsBottom 0
nsRight 0
lsTop 0
lsLeft 0
lsBottom 0
lsRight 0
brTop 0
brLeft 0
brBottom 0
brRight 0
cycleSpeed 0
script 0
cycler 0
timer 0
illegalBits $8000
xLast 0
yLast 0
xStep 3
moveSpeed 0
blocks 0
baseSetter 0
mover 0
looper 0
viewer 0
avoider 0
edgeHit 0
)
(method (init)
(super init:)
(if (not cycler) (self setCycle: Walk))
)
(method (doit)
(super doit:)
(= edgeHit
(cond
((<= x 0) 4)
((<= y (gRoom horizon?)) 1)
((>= x 319) 2)
((>= y 189) 3)
(else 0)
)
)
)
(method (get param1 &tmp temp0)
(= temp0 0)
(while (< temp0 argc)
((gInv at: [param1 temp0]) moveTo: self)
(++ temp0)
)
)
(method (put param1 param2)
(if (self has: param1)
((gInv at: param1)
moveTo: (if (== argc 1) -1 else param2)
)
)
)
(method (has param1 &tmp temp0)
(if (= temp0 (gInv at: param1)) (temp0 ownedBy: self))
)
)
(class Blk of Obj
(properties
top 0
left 0
bottom 0
right 0
)
(method (doit param1)
(return
(if
(or
(<= (param1 brBottom?) top)
(> (param1 brTop?) bottom)
(< (param1 brRight?) left)
)
else
(>= (param1 brLeft?) right)
)
)
)
)
(class Cage of Blk
(properties
top 0
left 0
bottom 0
right 0
)
(method (doit param1)
(return
(if
(and
(>= (param1 brTop?) top)
(>= (param1 brLeft?) left)
(<= (param1 brBottom?) bottom)
)
(<= (param1 brRight?) right)
else
0
)
)
)
)

Binary file not shown.

View File

@@ -0,0 +1,115 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 508)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Cycle)
(use Game)
(use Feature)
(use Obj)
(public
Forest_Region 0
)
(instance Forest_Region of Rgn
(properties
name "Forest Region"
)
(method (init)
(if (== (Random 1 5) 4)
(= gNewAct_4 (Act new:))
(gNewAct_4
view: 356
illegalBits: 0
ignoreActors:
setPri: 14
ignoreHorizon:
setScript: ravenActions
)
(if (== (Random 1 2) 1)
(gNewAct_4
posn: 5 30
setCycle: Fwd
xStep: 5
yStep: 4
setMotion: MoveTo 339 20 gNewAct_4
init:
)
else
(gNewAct_4
posn: 314 20
xStep: 5
yStep: 4
setCycle: Fwd
setMotion: MoveTo -20 40 gNewAct_4
init:
)
)
)
(super init:)
)
(method (handleEvent pEvent)
(if (pEvent claimed?) (return 1))
(return
(if (== (pEvent type?) evSAID)
(cond
((Said 'look>')
(cond
((Said '/boulder') (Print 508 0))
((or (Said '/dirt') (Said '/down')) (Print 508 1))
((Said '/grass') (Print 508 2))
((Said '/bush') (Print 508 3))
((Said '/flora') (Print 508 4))
((Said '/blossom') (Print 508 5))
((Said '/forest') (Print 508 6))
((Said '/crow,bird,crow')
(if (gCast contains: gNewAct_4)
(Print 508 7)
else
(Print 508 8)
)
)
)
)
((Said 'climb/boulder') (Print 508 9))
((Said 'get/blossom') (Print 508 10))
((Said 'climb/forest') (Print 508 11))
((Said 'converse/crow,bird,crow')
(if (gCast contains: gNewAct_4)
(Print 508 12)
else
(Print 508 13)
)
)
((Said 'get,capture/crow,bird,crow')
(if (gCast contains: gNewAct_4)
(Print 508 14)
else
(Print 508 15)
)
)
((Said 'kiss/crow,bird,crow')
(if (gCast contains: gNewAct_4)
(Print 508 16)
else
(Print 508 15)
)
)
)
else
0
)
)
)
)
(instance ravenActions of Script
(properties)
(method (cue)
(gNewAct_4 dispose:)
)
)

View File

@@ -0,0 +1,608 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 994)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Sound)
(use SysWindow)
(use Cycle)
(use InvI)
(use User)
(use Obj)
(procedure (localproc_0b98 param1 &tmp temp0 [temp1 40] [temp41 40] [temp81 40])
(= temp0 1)
(DeviceInfo 0 global30 @temp1)
(DeviceInfo 1 @temp41)
(if
(and
(DeviceInfo 2 @temp1 @temp41)
(DeviceInfo 3 @temp41)
)
(Format
@temp81
994
6
(if param1 {SAVE GAME} else {GAME})
@temp41
)
(if
(==
(= temp0
(if param1
(Print
@temp81
33
0
81
{OK}
1
81
{Cancel}
0
81
{Change Directory}
2
)
else
(Print @temp81 33 0 81 {OK} 1)
)
)
2
)
(= temp0 (proc990_0 global30))
)
)
(return temp0)
)
(instance cast of EventHandler
(properties)
)
(instance features of EventHandler
(properties)
)
(instance sFeatures of EventHandler
(properties)
)
(instance sounds of EventHandler
(properties)
)
(instance regions of EventHandler
(properties)
)
(instance locales of EventHandler
(properties)
)
(instance addToPics of EventHandler
(properties)
(method (doit)
(AddToPic elements)
)
)
(instance controls of Controls
(properties)
)
(instance timers of Set
(properties)
)
(class Game of Obj
(properties
script 0
)
(method (init &tmp theMotion)
(= theMotion Motion)
(= theMotion Sound)
(= theMotion Save)
((= gCast cast) add:)
((= gFeatures features) add:)
((= gSFeatures sFeatures) add:)
((= gSounds sounds) add:)
((= gRegions regions) add:)
((= gLocales locales) add:)
((= gAddToPics addToPics) add:)
((= gTimers timers) add:)
(= global30 (GetSaveDir))
(Inv init:)
(User init:)
)
(method (doit)
(gSounds eachElementDo: #check)
(gTimers eachElementDo: #doit)
(Animate (gCast elements?) 1)
(if global58
(= global58 0)
(gCast eachElementDo: #motionCue)
)
(if script (script doit:))
(gRegions eachElementDo: #doit)
(User doit:)
(if (!= gNewRoomNumber_2 gCurRoomNum)
(self newRoom: gNewRoomNumber_2)
)
(gTimers eachElementDo: #delete)
(GameIsRestarting 0)
)
(method (showSelf)
(gRegions showSelf:)
)
(method (play)
(= gGame self)
(= global30 (GetSaveDir))
(if (not (GameIsRestarting)) (GetCWD global30))
(self setCursor: gLoadingCursor 1)
(self init:)
(self setCursor: gNormalCursor (HaveMouse))
(while (not gQuit)
(self doit:)
(= global18 (Wait gSpeed))
)
)
(method (replay)
(if gLastEvent (gLastEvent dispose:))
(gSFeatures release:)
(if gModelessDlg (gModelessDlg dispose:))
(gCast eachElementDo: #perform RU)
(gGame setCursor: gLoadingCursor 1)
(DrawPic (gRoom curPic?) dpOPEN_TOP dpCLEAR 0)
(if (!= gPicNumber -1)
(DrawPic gPicNumber dpOPEN_TOP dpNO_CLEAR 0)
)
(if (gRoom controls?) ((gRoom controls?) draw:))
(gAddToPics doit:)
(gGame setCursor: gNormalCursor (HaveMouse))
(SL doit:)
(DoSound sndRESUME)
(Sound pause: 0)
(while (not gQuit)
(self doit:)
(= global18 (Wait gSpeed))
)
)
(method (newRoom newRoomNumber &tmp [temp0 4] temp4 temp5)
(gAddToPics dispose:)
(gFeatures eachElementDo: #dispose)
(gCast eachElementDo: #dispose)
(gCast eachElementDo: #delete)
(gTimers eachElementDo: #delete)
(gRegions eachElementDo: #perform DNKR)
(gRegions release:)
(gLocales eachElementDo: #dispose)
(Animate 0)
(= gPrevRoomNum gCurRoomNum)
(= gCurRoomNum newRoomNumber)
(= gNewRoomNumber_2 newRoomNumber)
(FlushResources newRoomNumber)
(= temp4 (self setCursor: gLoadingCursor 1))
(self
startRoom: gCurRoomNum
checkAni:
setCursor: temp4 (HaveMouse)
)
(SetSynonyms gRegions)
(while ((= temp5 (Event new: 3)) type?)
(temp5 dispose:)
)
(temp5 dispose:)
)
(method (startRoom param1)
(if global14 (SetDebug))
(gRegions
addToFront: ((= gRoom (ScriptID param1)) init: yourself:)
)
)
(method (restart)
(if gModelessDlg (gModelessDlg dispose:))
(RestartGame)
)
(method (restore &tmp [temp0 20] temp20 temp21 temp22)
(Load rsFONT gSmallFont)
(= temp21 (self setCursor: gNormalCursor))
(= temp22 (Sound pause: 1))
(if (localproc_0b98 1)
(if gModelessDlg (gModelessDlg dispose:))
(if (!= (= temp20 (Restore doit: &rest)) -1)
(self setCursor: gLoadingCursor 1)
(if (CheckSaveGame name temp20 global28)
(gCast eachElementDo: #dispose)
(gCast eachElementDo: #delete)
(RestoreGame name temp20 global28)
else
(Print 994 1 33 0 81 {OK} 1)
(self setCursor: temp21 (HaveMouse))
)
)
(localproc_0b98 0)
)
(Sound pause: temp22)
)
(method (save &tmp [temp0 20] temp20 temp21 temp22)
(Load rsFONT gSmallFont)
(Load rsCURSOR gLoadingCursor)
(= temp22 (Sound pause: 1))
(if (localproc_0b98 1)
(if gModelessDlg (gModelessDlg dispose:))
(if (!= (= temp20 (Save doit: @temp0)) -1)
(= temp21 (self setCursor: gLoadingCursor 1))
(if (not (SaveGame name temp20 @temp0 global28))
(Print 994 0 33 0 81 {OK} 1)
)
(self setCursor: temp21 (HaveMouse))
)
(localproc_0b98 0)
)
(Sound pause: temp22)
)
(method (changeScore param1)
(= global15 (+ global15 param1))
(SL doit:)
)
(method (handleEvent pEvent)
(cond
(
(or
(gRegions handleEvent: pEvent)
(gLocales handleEvent: pEvent)
)
)
(script (script handleEvent: pEvent))
)
(pEvent claimed?)
)
(method (showMem)
(FormatPrint
{Free Heap: %u Bytes\0ALargest ptr: %u Bytes\0AFreeHunk: %u KBytes\0ALargest hunk: %u Bytes}
(MemoryInfo 1)
(MemoryInfo 0)
(>> (MemoryInfo 3) $0006)
(MemoryInfo 2)
)
)
(method (setSpeed newSpeed &tmp theGNewSpeed)
(= theGNewSpeed gSpeed)
(= gSpeed newSpeed)
(return theGNewSpeed)
)
(method (setCursor cursorNumber param2 &tmp theGCursorNumber)
(= theGCursorNumber gCursorNumber)
(= gCursorNumber cursorNumber)
(if (== argc 1)
(SetCursor cursorNumber)
else
(SetCursor cursorNumber param2)
)
(return theGCursorNumber)
)
(method (checkAni &tmp temp0)
(Animate (gCast elements?) 0)
(Wait 0)
(Animate (gCast elements?) 0)
(while (> (Wait 0) global50)
(breakif (== (= temp0 (gCast firstTrue: #isExtra)) 0))
(temp0 addToPic:)
(Animate (gCast elements?) 0)
(gCast eachElementDo: #delete)
)
)
(method (notify)
)
(method (setScript theScript)
(if script (script dispose:))
(if (= script theScript)
((= script theScript) init: self &rest)
)
)
(method (cue)
(if script (script cue:))
)
(method (wordFail param1 &tmp [temp0 100])
(FormatPrint 994 2 param1)
(return 0)
)
(method (syntaxFail)
(Print 994 3)
)
(method (semanticFail)
(Print 994 4)
)
(method (pragmaFail)
(Print 994 5)
)
)
(class Rgn of Obj
(properties
script 0
number 0
timer 0
keep 0
initialized 0
)
(method (init)
(if (not initialized)
(= initialized 1)
(if (not (gRegions contains: self))
(gRegions addToEnd: self)
)
(super init:)
)
)
(method (doit)
(if script (script doit:))
)
(method (dispose)
(gRegions delete: self)
(if (IsObject script) (script dispose:))
(if (IsObject timer) (timer dispose:))
(gSounds eachElementDo: #clean self)
(DisposeScript number)
)
(method (handleEvent pEvent)
(if script (script handleEvent: pEvent))
(pEvent claimed?)
)
(method (setScript theScript)
(if (IsObject script) (script dispose:))
(if (= script theScript)
((= script theScript) init: self &rest)
)
)
(method (cue)
(if script (script cue:))
)
(method (newRoom)
)
(method (notify)
)
)
(class Rm of Rgn
(properties
script 0
number 0
timer 0
keep 0
initialized 0
picture 0
style $ffff
horizon 0
controls 0
north 0
east 0
south 0
west 0
curPic 0
picAngle 0
vanishingX 160
vanishingY -30000
)
(method (init &tmp temp0)
(= number gCurRoomNum)
(= controls controls)
(= gPicAngle picAngle)
(if picture (self drawPic: picture))
(switch ((User alterEgo?) edgeHit?)
(1 ((User alterEgo?) y: 188))
(4
((User alterEgo?)
x: (- 319 ((User alterEgo?) xStep?))
)
)
(3
((User alterEgo?)
y: (+ horizon ((User alterEgo?) yStep?))
)
)
(2 ((User alterEgo?) x: 1))
)
((User alterEgo?) edgeHit: 0)
)
(method (doit &tmp temp0)
(if script (script doit:))
(if
(= temp0
(switch ((User alterEgo?) edgeHit?)
(1 north)
(2 east)
(3 south)
(4 west)
)
)
(self newRoom: temp0)
)
)
(method (dispose)
(if controls (controls dispose:))
(super dispose:)
)
(method (handleEvent pEvent)
(cond
((super handleEvent: pEvent))
(controls (controls handleEvent: pEvent))
)
(pEvent claimed?)
)
(method (newRoom newRoomNumber)
(gRegions
delete: self
eachElementDo: #newRoom newRoomNumber
addToFront: self
)
(= gNewRoomNumber_2 newRoomNumber)
(super newRoom: newRoomNumber)
)
(method (setRegions scriptNumbers &tmp temp0 theScriptNumbers temp2)
(= temp0 0)
(while (< temp0 argc)
(= theScriptNumbers [scriptNumbers temp0])
((= temp2 (ScriptID theScriptNumbers))
number: theScriptNumbers
)
(gRegions add: temp2)
(if (not (temp2 initialized?)) (temp2 init:))
(++ temp0)
)
)
(method (setFeatures theFeatures &tmp temp0 [temp1 2])
(= temp0 0)
(while (< temp0 argc)
(gFeatures add: [theFeatures temp0])
(++ temp0)
)
)
(method (setLocales scriptNumbers &tmp temp0 theScriptNumbers temp2)
(= temp0 0)
(while (< temp0 argc)
(= theScriptNumbers [scriptNumbers temp0])
((= temp2 (ScriptID theScriptNumbers))
number: theScriptNumbers
)
(gLocales add: temp2)
(temp2 init:)
(++ temp0)
)
)
(method (drawPic picNumber picAnimation)
(addToPics dispose:)
(= curPic picNumber)
(= gPicNumber -1)
(DrawPic
picNumber
(cond
((== argc 2) picAnimation)
((!= style -1) style)
(else global17)
)
dpCLEAR
0
)
)
(method (overlay picNumber picAnimation)
(= gPicNumber picNumber)
(DrawPic
picNumber
(cond
((== argc 2) picAnimation)
((!= style -1) style)
(else global17)
)
dpNO_CLEAR
0
)
)
)
(class Locale of Obj
(properties
number 0
)
(method (dispose)
(gLocales delete: self)
(DisposeScript number)
)
(method (handleEvent pEvent)
(pEvent claimed?)
)
)
(class SL of Obj
(properties
state $0000
code 0
)
(method (doit &tmp [temp0 41])
(if code
(code doit: @temp0)
(DrawStatus (if state @temp0 else 0))
)
)
(method (enable)
(= state 1)
(self doit:)
)
(method (disable)
(= state 0)
(self doit:)
)
)
(instance RU of Code
(properties)
(method (doit param1 &tmp temp0)
(if (param1 underBits?)
(= temp0
(&
(= temp0 (| (= temp0 (param1 signal?)) $0001))
$fffb
)
)
(param1 underBits: 0 signal: temp0)
)
)
)
(instance DNKR of Code
(properties)
(method (doit param1)
(if (not (param1 keep?)) (param1 dispose:))
)
)

Binary file not shown.

View File

@@ -0,0 +1,51 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 993)
(include sci.sh)
(use Obj)
(class gamefile_sh of Obj
(properties
handle 0
name "gamefile.sh"
)
(method (dispose)
(self close:)
(super dispose:)
)
(method (showStr param1)
(Format param1 993 0 name)
)
(method (open param1)
(= handle
(switch argc
(0 (FOpen name 0))
(1 (FOpen name param1))
(else -1)
)
)
(return (if (== handle -1) 0 else self))
)
(method (write param1 &tmp temp0)
(if (not handle) (self open:))
(= temp0 0)
(while (< temp0 argc)
(FPuts handle [param1 temp0])
(++ temp0)
)
)
(method (read param1 param2)
(if (!= argc 2) (return 0))
(if (not handle) (self open: 1))
(return (FGets param1 param2 handle))
)
(method (close)
(if handle (FClose handle) (= handle 0))
)
)

View File

@@ -0,0 +1,220 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 987)
(include sci.sh)
(use Main)
(use Class_255_0)
(use SysWindow)
(local
newDText_2
newDButton_2
newDButton
newDText
newDButton_3
newDButton_4
newDButton_5
[local7 40]
)
(class Gauge of Dialog
(properties
elements 0
size 0
text 0
window 0
theItem 0
nsTop 0
nsLeft 0
nsBottom 0
nsRight 0
time 0
timer 0
busy 0
description 0
higher {up}
lower {down}
normal 7
minimum 0
maximum 15
)
(method (init param1 &tmp temp0 temp1)
(= window SysWindow)
(self update: param1)
((= newDButton (DButton new:))
text: lower
moveTo: 4 4
setSize:
)
(self add: newDButton setSize:)
((= newDText (DText new:))
text: @local7
moveTo: (+ (newDButton nsRight?) 4) 4
font: 0
setSize:
)
(self add: newDText setSize:)
((= newDButton_2 (DButton new:))
text: higher
moveTo: (+ (newDText nsRight?) 4) 4
setSize:
)
(self add: newDButton_2 setSize:)
(= nsBottom (+ nsBottom 8))
((= newDButton_3 (DButton new:))
text: {OK}
setSize:
moveTo: 4 nsBottom
)
((= newDButton_4 (DButton new:))
text: {Normal}
setSize:
moveTo: (+ (newDButton_3 nsRight?) 4) nsBottom
)
((= newDButton_5 (DButton new:))
text: {Cancel}
setSize:
moveTo: (+ (newDButton_4 nsRight?) 4) nsBottom
)
(self
add: newDButton_3 newDButton_4 newDButton_5
setSize:
)
(= temp0 (- (- nsRight (newDButton_5 nsRight?)) 4))
((= newDText_2 (DText new:))
text: description
font: gSmallFont
setSize: (- nsRight 8)
moveTo: 4 4
)
(= temp1 (+ (newDText_2 nsBottom?) 4))
(self add: newDText_2)
(newDButton_2 move: 0 temp1)
(newDButton move: 0 temp1)
(newDText move: 0 temp1)
(newDButton_3 move: temp0 temp1)
(newDButton_4 move: temp0 temp1)
(newDButton_5 move: temp0 temp1)
(self setSize: center: open: 4 15)
)
(method (doit param1 &tmp temp0 temp1)
(asm
pushi #init
pushi 1
lsp param1
self 6
lap param1
sat temp1
code_01d4:
pushi #update
pushi 1
lst temp1
self 6
pushi #draw
pushi 0
lal newDText
send 4
pushi #doit
pushi 1
lsl newDButton_3
super Dialog, 6
sat temp0
push
lal newDButton_2
eq?
bnt code_0201
lst temp1
pToa maximum
lt?
bnt code_01d4
+at temp1
jmp code_01d4
code_0201:
lst temp0
lal newDButton
eq?
bnt code_0216
lst temp1
pToa minimum
gt?
bnt code_01d4
-at temp1
jmp code_01d4
code_0216:
lst temp0
lal newDButton_3
eq?
bnt code_0224
jmp code_024d
jmp code_01d4
code_0224:
lst temp0
lal newDButton_4
eq?
bnt code_0233
pToa normal
sat temp1
jmp code_01d4
code_0233:
lst temp0
ldi 0
eq?
bt code_0243
lst temp0
lal newDButton_5
eq?
bnt code_01d4
code_0243:
lap param1
sat temp1
jmp code_024d
jmp code_01d4
code_024d:
pushi #dispose
pushi 0
self 4
lat temp1
ret
)
)
(method (handleEvent pEvent)
(switch (pEvent type?)
(evKEYBOARD
(switch (pEvent message?)
(KEY_NUMPAD4
(pEvent claimed: 1)
(return newDButton)
)
(KEY_RIGHT
(pEvent claimed: 1)
(return newDButton_2)
)
)
)
(evJOYSTICK
(switch (pEvent message?)
(JOY_LEFT
(pEvent claimed: 1)
(return newDButton)
)
(JOY_RIGHT
(pEvent claimed: 1)
(return newDButton_2)
)
)
)
)
(return (super handleEvent: pEvent))
)
(method (update param1 &tmp temp0 temp1)
(= temp1 (- maximum minimum))
(= temp0 0)
(while (< temp0 temp1)
(StrAt @local7 temp0 (if (< temp0 param1) 6 else 7))
(++ temp0)
)
)
)

Binary file not shown.

View File

@@ -0,0 +1,842 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 603)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Sound)
(use Cycle)
(use Game)
(use Feature)
(use Obj)
(public
regHauntedHouse 0
)
(synonyms
(room cottage)
)
(local
local0
local1
)
(class GhostWander of Motion
(properties
client 0
caller 0
x 0
y 0
dx 0
dy 0
b-moveCnt 0
b-i1 0
b-i2 0
b-di 0
b-xAxis 0
b-incr 0
completed 0
ux 0
uy 0
lx 0
ly 0
)
(method (init param1 theUx theUy theLx theLy &tmp theUx_2 theUy_2)
(= ux theUx)
(= uy theUy)
(= lx theLx)
(= ly theLy)
(switch (/ (Random 10 29) 10)
(1 (= theUx_2 ux))
(2 (= theUx_2 lx))
)
(switch (/ (Random 10 29) 10)
(1 (= theUy_2 uy))
(2 (= theUy_2 ly))
)
(super init: param1 theUx_2 theUy_2)
(super doit:)
)
(method (doit)
(super doit:)
(if (client isStopped:) (self moveDone:))
)
(method (moveDone)
(self init: client ux uy lx ly)
)
)
(instance theGhost of Act
(properties)
)
(instance regHauntedHouse of Rgn
(properties)
(method (init)
(if initialized (return))
(= global189 (= keep 1))
(super init:)
(if global100
(theGhost
view: 201
illegalBits: 0
ignoreActors: 1
posn: 999 999
init:
)
(if (not global134) (= global134 1))
(self notify: global134)
)
(miserGhostMusic owner: self init:)
(ladyGhostMusic owner: self init:)
(lordGhostMusic owner: self init:)
(boyGhostMusic owner: self init:)
)
(method (dispose)
(if (== keep 0) (= global189 0) (super dispose:))
)
(method (newRoom newRoomNumber)
(gSounds eachElementDo: #stop 0)
(if (IsObject script) (script cue: -2 newRoomNumber))
(= global135 0)
(if (== newRoomNumber 17) (proc0_9))
(super newRoom: newRoomNumber)
)
(method (notify param1)
(cond
((and script (not argc)) (script cue:))
((and script (< param1 0)) (script cue: param1 &rest))
(else
(self
setScript:
(switch (= global134 param1)
(1 babyScript)
(2 miserScript)
(3 ladyScript)
(4 lordScript)
(5 boyScript)
(else 0)
)
)
)
)
)
)
(instance babyScript of Script
(properties)
(method (changeState newState)
(switch (= state newState)
(0
(= global133 59)
(= seconds 5)
)
(1
(Print 603 0)
(= seconds 10)
)
(2
(if
(and
(!= gCurRoomNum 61)
(!= gCurRoomNum 66)
(!= gCurRoomNum 59)
(!= gCurRoomNum 58)
)
(Print 603 1)
)
(-- state)
(= seconds (Random 10 30))
)
)
)
(method (cue)
(if (not argc) (super cue:))
)
)
(instance miserScript of Script
(properties)
(method (changeState newState &tmp temp0 temp1 temp2)
(switch (= state newState)
(0
(Load rsVIEW 200)
(Load rsVIEW 201)
(= global133 164)
(= local0 1)
(= seconds (Random 5 10))
)
(1
(Print 603 2)
(= cycles 5)
)
(2 (= seconds 3))
(3
(if
(and
(!= gCurRoomNum 66)
(!= gCurRoomNum 61)
(!= gCurRoomNum 58)
)
(Print 603 3)
)
(-- state)
(= seconds (Random 40 99))
)
(4
(= seconds 0)
(= global135 1)
(miserGhostMusic play:)
(switch global133
(67 (= temp1 145))
(68 (= temp1 180))
(64 (= temp1 145))
)
(switch local0
(0 (= temp0 -33))
(1 (= temp0 333))
)
(switch local0
(0 (= temp2 333))
(1 (= temp2 -33))
)
(theGhost
view: 201
illegalBits: 0
posn: temp0 temp1
ignoreActors: 1
init:
setLoop: local0
setCycle: Walk
setMotion: MoveTo temp2 temp1 self
)
(= global225 1)
)
(5 (= global225 0))
(6
(proc0_8)
(Print 603 4)
(gEgo put: 13 -1)
(gGame changeScore: 2)
(theGhost setLoop: setMotion: 0)
(= seconds 2)
)
(7
(theGhost
view: 200
cycleSpeed: 1
setCel: 255
setCycle: Beg self
)
)
(8
(= global225 0)
(proc0_9)
(regHauntedHouse notify: 3)
)
)
)
(method (cue param1)
(cond
((not argc) (super cue:))
((== param1 -1)
(= seconds 0)
(self
changeState: (cond
((< state 4) 4)
((< state 6) 6)
)
)
)
((== param1 -2)
(switch global133
(164
(= global133 64)
(= local0 1)
)
(64
(if (== local0 1)
(= global133 68)
else
(= global133 164)
)
)
(68
(if (== local0 1)
(= global133 67)
else
(= global133 64)
)
)
(67
(if (== local0 1)
(= global133 167)
else
(= global133 68)
)
)
(167
(= global133 67)
(= local0 0)
)
)
(if (< state 6) (self changeState: 2))
)
)
)
(method (handleEvent pEvent &tmp gInvSaidMe)
(if
(or
(pEvent claimed?)
(!= (pEvent type?) evSAID)
(!= gCurRoomNum global133)
(not (gCast contains: theGhost))
(== global225 0)
)
(return)
)
(cond
((Said 'look/chain') (Print 603 5))
((Said 'get/chain') (Print 603 6))
((Said 'deliver>')
(cond
(
(or
(not (= gInvSaidMe (gInv saidMe:)))
(not (gEgo has: (gInv indexOf: gInvSaidMe)))
)
(pEvent claimed: 0)
)
((> (gEgo distanceTo: theGhost) 30) (proc0_13))
((!= (gInv indexOf: gInvSaidMe) 13) (Print 603 7))
(else (self cue: -1))
)
)
((Said 'converse') (Print 603 8))
((Said 'look') (Print 603 9))
((Said 'kiss') (Print 603 10))
((Said 'capture,get') (Print 603 11))
((Said 'kill') (Print 603 12))
((Said 'help') (Print 603 13))
)
)
)
(instance ladyScript of Script
(properties)
(method (changeState newState)
(switch (= state newState)
(0
(theGhost posn: (theGhost x?) (+ (theGhost y?) 1000))
(Load rsVIEW 202)
(Load rsVIEW 203)
(= global133 60)
(= global225 0)
(= seconds 3)
)
(1
(Print 603 14)
(= seconds (Random 10 30))
)
(2 (= seconds 3))
(3
(if
(and
(!= gCurRoomNum 66)
(!= gCurRoomNum 61)
(!= gCurRoomNum 58)
(!= gCurRoomNum 60)
)
(Print 603 15)
)
(-- state)
(= seconds (Random 50 99))
)
(4
(= global135 1)
(= seconds 3)
)
(5
(ladyGhostMusic play:)
(= global225 1)
(theGhost
view: 202
posn: 85 133
ignoreActors: 1
cycleSpeed: 3
loop: 0
cel: 0
setCycle: End self
init:
)
)
(6
(theGhost view: 203 setCycle: Fwd)
)
(7
(proc0_8)
(theGhost
view: 202
loop: 0
setCel: 255
setCycle: Beg self
)
)
(8
(= global225 0)
(proc0_9)
(= global133 67)
(regHauntedHouse notify: 4)
)
)
)
(method (cue param1)
(cond
((not argc) (super cue:))
((== param1 -1)
(= seconds 0)
(self
changeState: (cond
((< state 4) 4)
((< state 7) 7)
)
)
)
((and (== param1 -2) (< state 7)) (self changeState: 2))
)
)
)
(instance lordScript of Script
(properties)
(method (changeState newState)
(switch (= state newState)
(0
(theGhost posn: (theGhost x?) (+ (theGhost y?) 1000))
(Load rsVIEW 204)
(Load rsVIEW 206)
(= seconds 3)
)
(1
(Print 603 16)
(= seconds (Random 3 5))
)
(2 (= seconds 3))
(3
(if
(and
(!= gCurRoomNum 66)
(!= gCurRoomNum 61)
(!= gCurRoomNum 58)
)
(Print 603 17)
)
(-- state)
(= seconds (Random 40 99))
)
(4
(= global135 1)
(= seconds (Random 2 5))
)
(5
(= seconds 0)
(lordGhostMusic play:)
(theGhost
view: 204
cel: 0
posn: 150 160
illegalBits: 0
cycleSpeed: 1
ignoreActors: 1
setStep: 4 2
setCycle: End self
init:
)
)
(6
(theGhost
view: 206
loop: (Random 0 3)
moveSpeed: 1
cycleSpeed: 1
setLoop: -1
setCycle: Walk
)
(if (== gCurRoomNum 68)
(theGhost setMotion: GhostWander 78 156 225 185)
else
(theGhost setMotion: GhostWander 75 130 225 175)
)
(= global225 1)
(= seconds (Random 13 30))
)
(7
(theGhost
view: 204
loop: 0
setCel: 255
setCycle: Beg self
)
)
(8
(= global225 0)
(= state 4)
(= seconds (Random 20 99))
)
(9
(proc0_8)
(Print 603 18)
(theGhost setMotion: 0)
(= seconds 3)
)
(10
(= seconds 0)
(gEgo put: 29 -1)
(gGame changeScore: 2)
(theGhost
view: 204
loop: 0
setCel: 255
setCycle: Beg self
)
)
(11
(proc0_9)
(= global225 0)
(regHauntedHouse notify: 5)
)
)
)
(method (cue param1 param2)
(cond
((not argc) (super cue:))
((== param1 -1)
(= seconds 0)
(self
changeState: (cond
((< state 4) 4)
((< state 9) 9)
)
)
)
((== param1 -2)
(= global133
(if
(and
(<= 64 param2)
(<= param2 68)
(!= param2 66)
(Random 0 1)
)
param2
else
0
)
)
(self changeState: 2)
)
)
)
(method (handleEvent pEvent &tmp gInvSaidMe)
(if
(or
(pEvent claimed?)
(!= (pEvent type?) evSAID)
(!= gCurRoomNum global133)
(not global135)
(== global225 0)
)
(return)
)
(cond
((Said 'deliver>')
(cond
(
(or
(not (= gInvSaidMe (gInv saidMe:)))
(not (gEgo has: (gInv indexOf: gInvSaidMe)))
)
(pEvent claimed: 0)
)
((> (gEgo distanceTo: theGhost) 30) (proc0_13))
((!= (gInv indexOf: gInvSaidMe) 29) (Print 603 19))
(else (self changeState: 9))
)
)
((Said 'converse') (Print 603 20))
((Said 'look') (Print 603 21))
((Said 'kiss') (Print 603 10))
((Said 'get,capture/*') (Print 603 22))
((Said 'kill/*') (Print 603 12))
((Said 'help/*') (Print 603 23))
)
)
)
(instance boyScript of Script
(properties)
(method (changeState newState)
(switch (= state newState)
(0 (= seconds 2))
(1
(theGhost posn: (theGhost x?) (+ (theGhost y?) 1000))
(Load rsVIEW 207)
(Load rsVIEW 208)
(= global134 5)
(= seconds 2)
)
(2
(boyGhostMusic client: 0 stop:)
(cond
((== gCurRoomNum 60) (= global135 1) (= cycles 1))
(
(and
(!= gCurRoomNum 66)
(!= gCurRoomNum 61)
(!= gCurRoomNum 58)
)
(= global135 1)
(= seconds (Random 1 3))
)
)
)
(3
(boyGhostMusic play:)
(theGhost
view: 207
illegalBits: 0
ignoreActors: 1
setPri: -1
loop: 0
cel: 0
setCycle: End self
posn:
(switch gCurRoomNum
(60 159)
(64 83)
(65 255)
(67 239)
(68 165)
)
(switch gCurRoomNum
(60 136)
(64 124)
(65 148)
(67 136)
(68 83)
)
init:
)
(if (== gCurRoomNum 60) (theGhost setPri: 10))
)
(4
(if (== local1 0)
(= local1 1)
(Print 603 24)
else
(Print 603 25)
)
(theGhost
view: 208
moveSpeed: 0
cycleSpeed: 0
setLoop: -1
setCycle: Walk
)
(switch gCurRoomNum
(60
(theGhost
setPri: 10
setCycle: Fwd
setMotion: MoveTo 158 15
)
(= global133 63)
)
(64
(theGhost setPri: 9 setMotion: MoveTo 0 143 self)
(= global133 68)
)
(65
(theGhost setMotion: MoveTo 240 190 self)
(= global133 64)
)
(67
(theGhost setMotion: MoveTo 300 136 self)
(= global133 68)
)
(68
(theGhost setMotion: MoveTo 193 73 self)
(= global133 60)
)
)
)
(5
(theGhost
view: 207
loop: 0
setCel: 255
setCycle: Beg self
)
)
(6
(= global135 0)
(theGhost posn: (theGhost x?) (+ (theGhost y?) 1000))
)
(11
(= global135 1)
(Load rsVIEW 209)
(boyGhostMusic play:)
(theGhost
view: 207
loop: 1
cel: 0
posn: 167 117
setPri: 8
cycleSpeed: 1
setCycle: End self
illegalBits: 0
ignoreActors:
init:
)
)
(12
(theGhost
view: 209
loop: (Random 0 3)
cycleSpeed: 1
setCycle: Fwd
)
(= seconds 5)
)
(13
(if (== gCurRoomNum 63) (Print 603 26))
(= seconds 3)
)
(14
(theGhost loop: (Random 0 3))
(-- state)
(= cycles (Random 30 60))
)
(21
(proc0_8)
(Print 603 27)
(gEgo put: 30 -1)
(gGame changeScore: 2)
(= seconds 2)
)
(22
(= global134 255)
(theGhost
view: 207
loop: 1
setCel: 255
setCycle: Beg self
init:
)
)
(23
(proc0_9)
(theGhost dispose:)
(regHauntedHouse notify: 255)
)
)
)
(method (cue param1)
(cond
((not argc) (super cue:))
((== param1 -1)
(= seconds 0)
(self
changeState: (cond
((== gCurRoomNum 63) 11)
((< state 11) 2)
)
)
)
)
)
(method (handleEvent pEvent &tmp gInvSaidMe)
(if
(or
(pEvent claimed?)
(!= (pEvent type?) evSAID)
(!= gCurRoomNum global133)
(not global135)
)
(return)
)
(cond
((Said 'deliver>')
(cond
(
(or
(not (= gInvSaidMe (gInv saidMe:)))
(not (gEgo has: (gInv indexOf: gInvSaidMe)))
)
(pEvent claimed: 0)
)
((> (gEgo distanceTo: theGhost) 30) (proc0_13))
((!= (gInv indexOf: gInvSaidMe) 30) (Print 603 28))
((!= gCurRoomNum 63) (Print 603 29))
(else (self changeState: 21))
)
)
((Said 'converse') (Print 603 30))
((Said 'kiss') (Print 603 10))
((Said 'look/ghost[<boy]')
(if (== gCurRoomNum 63)
(Print 603 31)
else
(Print 603 32)
)
)
((Said 'play/ghost[<boy]') (Print 603 33))
((Said 'capture,get/ghost[<boy]') (Print 603 11))
((Said 'kill/*') (Print 603 12))
((Said 'help,save/*') (Print 603 34))
)
)
)
(instance lordGhostMusic of Sound
(properties
number 25
)
)
(instance miserGhostMusic of Sound
(properties
number 23
)
)
(instance ladyGhostMusic of Sound
(properties
number 24
)
)
(instance boyGhostMusic of Sound
(properties
number 26
)
)

View File

@@ -0,0 +1,105 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 504)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Cycle)
(use Game)
(use Feature)
(public
Gull_Region 0
)
(local
local0
[local1 4]
local5
)
(instance gullBlock1 of Cage
(properties)
)
(instance Gull_Region of Rgn
(properties
name "Gull Region"
)
(method (init)
(if (not global100)
(gullBlock1
top: -20
bottom: 55
left: -30
right: 349
init:
)
(= local0 2)
(if
(and (!= gCurRoomNum 7) (!= gCurRoomNum 40) global223)
(= local5 1)
(while (<= local5 local0)
(= [local1 local5]
((Act new:)
x: (Random 1 280)
y: (Random 1 30)
xStep: 1
yStep: 1
cycleSpeed: 1
observeBlocks: gullBlock1
setPri: 0
setCycle: Fwd
setMotion: Wander 15
view: (if (== gCurRoomNum 32) 325 else (Random 325 326))
ignoreHorizon: 1
illegalBits: 16384
init:
yourself:
)
)
(++ local5)
)
)
)
(super init:)
)
(method (handleEvent pEvent &tmp gInvSaidMe)
(if (pEvent claimed?) (return 1))
(return
(if (== (pEvent type?) evSAID)
(if (not global100)
(cond
((Said '/gull,gull,bird>')
(cond
((Said 'look') (Print 504 0))
((Said 'converse') (Print 504 1))
((Said 'get,capture') (Print 504 2))
((Said 'kiss') (Print 504 3))
((Said 'feed') (Print 504 4))
)
)
((Said 'deliver/*/gull,gull,bird')
(cond
((not (= gInvSaidMe (gInv saidMe:))) (Print 504 5))
((gEgo has: (gInv indexOf: gInvSaidMe)) (Print 504 6))
(else (proc0_17))
)
)
((Said 'fling')
(cond
((not (= gInvSaidMe (gInv saidMe:))) (Print 504 7))
((gEgo has: (gInv indexOf: gInvSaidMe)) (Print 504 8))
(else (proc0_17))
)
)
)
else
(Print 504 9)
)
else
0
)
)
)
)

View File

@@ -0,0 +1,554 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 120)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Sound)
(use Cycle)
(use Game)
(use User)
(use Feature)
(use Obj)
(public
intro 0
introSc 1
)
(local
local0
[local1 17]
local18
local19
local20
local21
local22
[local23 7]
local30
local31
[local32 202]
)
(instance openMusic of Sound
(properties)
)
(instance intro of Rm
(properties
horizon 40
)
(method (init)
(Load rsVIEW 750)
(Load rsVIEW 752)
(Load rsVIEW 755)
(Load rsVIEW 756)
(Load rsVIEW 757)
(Load rsVIEW 758)
(Load rsVIEW 759)
(Load rsVIEW 760)
(Load rsVIEW 761)
(Load rsVIEW 762)
(Load rsVIEW 766)
(Load rsVIEW 767)
(Load rsVIEW 768)
(Load rsVIEW 769)
(Load rsPIC 201)
(Load rsPIC 202)
(Load rsPIC 203)
(Load rsPIC 204)
(Load rsPIC 205)
(self setRegions: 520)
(super init:)
(= gIntroSc introSc)
(gRoom setScript: introSc)
(= gUserFont gSmallFont)
)
(method (handleEvent pEvent)
(cond
(
(and
(== (pEvent type?) evKEYBOARD)
(== (pEvent message?) KEY_F2)
)
(DoSound sndSET_SOUND (not (DoSound sndSET_SOUND)))
)
(
(and
(== (pEvent type?) evKEYBOARD)
(== (pEvent message?) KEY_RETURN)
)
(gGame restart:)
)
)
)
(method (newRoom newRoomNumber)
(if (IsObject local30) (local30 dispose:))
(super newRoom: newRoomNumber)
)
)
(instance introSc of Script
(properties)
(method (changeState newState &tmp temp0)
(gAddToPics dispose:)
(switch (= state newState)
(0
(User canControl: 0 canInput: 0)
(gRoom drawPic: 201)
(openMusic number: 103 play:)
(= local19
((Act new:)
view: 750
loop: 0
posn: 130 130
stopUpd:
init:
yourself:
)
)
(= local20
((Act new:)
view: 769
loop: 2
posn: 140 119
stopUpd:
init:
yourself:
)
)
(= local21
((Act new:)
view: 760
posn: 220 148
loop: 1
cel: 5
stopUpd:
init:
yourself:
)
)
(= local18
((Act new:)
view: 759
loop: 1
posn: 212 135
stopUpd:
init:
yourself:
)
)
(= local22
((Act new:)
view: 767
posn: 48 120
xStep: 4
yStep: 2
loop: 0
cycleSpeed: 0
cel: 3
stopUpd:
init:
yourself:
)
)
((View new:)
view: 768
posn: 158 64
setPri: 0
ignoreActors:
addToPic:
)
((View new:)
view: 769
loop: 3
posn: 48 139
setPri: 0
ignoreActors:
addToPic:
)
(Timer setReal: self 2)
)
(1
(= local30 (Print 120 0 67 -1 10 70 300 88))
(Timer setReal: self 10)
)
(2
(local19 setCycle: Walk setMotion: MoveTo 145 140 self)
)
(3
(local19 setMotion: MoveTo 48 144 self)
)
(4
(local22 hide:)
(local19 setMotion: MoveTo 130 140 self)
)
(5
(if gModelessDlg (gModelessDlg dispose:))
(local19 setMotion: MoveTo 134 131 self)
)
(6
(local19 setLoop: 0)
(= local30 (Print 120 1 70 300 67 -1 12 88))
(= seconds 11)
)
(7
(local19 view: 750 setLoop: 2 cel: 255 setCycle: End self)
)
(8
(local22
show:
posn: (+ (local19 x?) 10) (- (local19 y?) 20)
setCycle: Rev
moveSpeed: 1
ignoreActors:
illegalBits: 0
setMotion: MoveTo 220 70 self
)
(local21
view: 761
setLoop: 0
setCycle: Walk
setMotion: MoveTo 275 145
)
(local18
view: 761
setLoop: 1
setCycle: Walk
setMotion: MoveTo 275 135
)
)
(9
(local19 setLoop: 3 setCycle: End stopKing)
(= seconds 1)
)
(10
(local22 stopUpd:)
(= seconds 1)
)
(11
(if gModelessDlg (gModelessDlg dispose:))
(gCast eachElementDo: #hide)
(gRoom drawPic: 202)
(local22
show:
setLoop: 1
setCel: 0
posn: 105 99
ignoreActors:
setStep: 4 2
moveSpeed: 0
cycleSpeed: 0
setCycle: Rev
setMotion: MoveTo 275 120
)
(= local30 (Print 120 2 30 1 67 -1 150 88))
(Timer setReal: self 3)
)
(12
(if gModelessDlg (gModelessDlg dispose:))
(= local30 (Print 120 3 67 -1 150 88))
(Timer setReal: self 3)
)
(13
(if gModelessDlg (gModelessDlg dispose:))
(local22 hide:)
(= local31
((Act new:)
view: 769
loop: 0
posn: 160 114
cycleSpeed: 5
cel: 255
setCycle: End stopKing
init:
yourself:
)
)
(= local30 (Print 120 4 67 -1 140 88))
(Timer setReal: self 7)
)
(14
(if gModelessDlg (gModelessDlg dispose:))
(local31 dispose:)
(gRoom drawPic: 201)
(local19
cycleSpeed: 0
view: 769
posn: 135 130
setLoop: 1
cel: 255
setCycle: End stopKing
ignoreActors:
show:
)
(local18
show:
view: 759
setLoop: 1
xStep: 2
setCycle: Walk
setMotion: MoveTo 227 136
)
(local21
show:
view: 760
loop: 1
xStep: 2
setCycle: Walk
setMotion: MoveTo 216 147 self
)
(local20
show:
view: 769
cycleSpeed: 4
setLoop: 2
setCycle: End stopQueen
)
((View new:)
view: 768
posn: 158 64
ignoreActors:
addToPic:
)
((View new:)
view: 769
loop: 3
posn: 48 139
setPri: 0
ignoreActors:
addToPic:
)
(local22
show:
setCel: 3
setLoop: 0
posn: 300 144
stopUpd:
)
(= local30
(Print 120 5 80 {King Graham} 67 53 155 88)
)
)
(15
(if gModelessDlg (gModelessDlg dispose:))
(Timer setReal: self 3)
)
(16
(gCast eachElementDo: #hide)
(gRoom drawPic: 203)
(local22 show: setCel: 0 setLoop: 2 posn: 180 99 stopUpd:)
(= local30 (Print 120 6 67 -1 152 88))
(Timer setReal: self 5)
)
(17
(if gModelessDlg (gModelessDlg dispose:))
(local22 dispose:)
(gRoom drawPic: 204)
((View new:)
view: 752
loop: 2
cel: 0
posn: 123 89
ignoreActors:
setPri: 0
addToPic:
)
((View new:)
view: 752
loop: 2
cel: 0
posn: 204 89
ignoreActors:
setPri: 0
addToPic:
)
((Prop new:)
view: 752
loop: 4
posn: 123 63
cycleSpeed: 0
setCycle: Fwd
init:
yourself:
)
((Prop new:)
view: 752
loop: 4
posn: 204 63
cycleSpeed: 0
setCycle: Rev
init:
yourself:
)
((View new:)
view: 752
loop: 3
posn: 47 139
ignoreActors:
addToPic:
)
(local19
show:
setPri: 15
view: 752
setLoop: 0
setCel: 0
posn: 162 144
stopUpd:
)
(local20
show:
view: 756
setPri: 9
setLoop: 1
setCel: 0
ignoreActors:
posn: 85 177
stopUpd:
)
(local21
show:
view: 756
setPri: 9
loop: 0
cel: 0
ignoreActors:
posn: 228 176
stopUpd:
)
(local18
show:
view: 756
setPri: 10
loop: 2
cel: 0
posn: 251 177
stopUpd:
)
(= local0 (Timer setReal: checkHang 15))
(self cue:)
)
(18
(if (!= (openMusic prevSignal?) -1)
(-- state)
(Timer setReal: self 2)
else
(Timer setReal: self 5)
(if (IsObject local0) (local0 dispose:))
)
)
(19
(gCast eachElementDo: #hide)
(gRoom drawPic: 205)
(openMusic dispose:)
((ScriptID 520 1) play:)
(local19
show:
view: 752
setLoop: 1
setCel: 0
posn: 162 119
setPri: 8
)
(= local30 (Print 120 7 67 -1 134 88))
(Timer setReal: self 7)
)
(20
(proc0_21)
(gRoom drawPic: 204)
(gCast eachElementDo: #show)
((View new:)
view: 752
loop: 3
posn: 47 139
ignoreActors:
addToPic:
)
((View new:)
view: 752
loop: 2
cel: 0
posn: 123 89
ignoreActors:
setPri: 0
addToPic:
)
((View new:)
view: 752
loop: 2
cel: 0
posn: 204 89
ignoreActors:
setPri: 0
addToPic:
)
(local19
view: 752
setPri: 15
setLoop: 0
setCel: 0
posn: 163 137
stopUpd:
)
(local20 setCel: 255 stopUpd:)
(local21 setCel: 255 stopUpd:)
(local18
setStep: 4 -1
setCycle: End
setMotion: MoveTo 340 176
)
(= local30 (Print 120 8 67 -1 10 70 300 88))
(Timer setReal: self 4)
)
(21
(= global205 1)
(if gModelessDlg (gModelessDlg dispose:))
(gRoom newRoom: 221)
)
)
)
)
(instance stopKing of Script
(properties)
(method (cue)
(local19 stopUpd:)
)
)
(instance stopQueen of Script
(properties)
(method (cue)
(local20 stopUpd:)
)
)
(instance stopSon of Script
(properties)
(method (cue)
(local21 stopUpd:)
)
)
(instance stopRosella of Script
(properties)
(method (cue)
(local18 stopUpd:)
)
)
(instance checkHang of Script
(properties)
(method (cue)
(gTimers eachElementDo: #dispose 84)
(introSc changeState: 19)
)
)

Binary file not shown.

View File

@@ -0,0 +1,177 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 995)
(include sci.sh)
(use Main)
(use Class_255_0)
(use SysWindow)
(use Obj)
(local
newDButton
)
(class InvI of Obj
(properties
said 0
description 0
owner 0
view 0
loop 0
cel 0
script 0
)
(method (showSelf)
(IconPrint (if description else name) view loop cel)
)
(method (saidMe)
(Said said)
)
(method (ownedBy param1)
(return (== owner param1))
)
(method (moveTo theOwner)
(= owner theOwner)
(return self)
)
(method (changeState newState)
(if script (script changeState: newState))
)
)
(class Inv of Set
(properties
elements 0
size 0
carrying {You are carrying:}
empty {You are carrying nothing!}
)
(method (init)
(= gInv self)
)
(method (showSelf param1)
(invD text: carrying doit: param1)
)
(method (saidMe)
(self firstTrue: #saidMe)
)
(method (ownedBy param1)
(self firstTrue: #ownedBy param1)
)
)
(instance invD of Dialog
(properties)
(method (init param1 &tmp temp0 temp1 temp2 temp3 newDText gInvFirst temp6)
(= temp2 (= temp0 (= temp1 4)))
(= temp3 0)
(= gInvFirst (gInv first:))
(while gInvFirst
(if
((= temp6 (NodeValue gInvFirst)) ownedBy: param1)
(++ temp3)
(self
add:
((= newDText (DText new:))
value: temp6
text: (temp6 name?)
nsLeft: temp0
nsTop: temp1
state: 3
font: gSmallFont
setSize:
yourself:
)
)
(if
(< temp2 (- (newDText nsRight?) (newDText nsLeft?)))
(= temp2 (- (newDText nsRight?) (newDText nsLeft?)))
)
(if
(>
(= temp1
(+ temp1 (- (newDText nsBottom?) (newDText nsTop?)) 1)
)
140
)
(= temp1 4)
(= temp0 (+ temp0 temp2 10))
(= temp2 0)
)
)
(= gInvFirst (gInv next: gInvFirst))
)
(if (not temp3) (self dispose:) (return 0))
(= window SysWindow)
(self setSize:)
(= newDButton (DButton new:))
(newDButton
text: {OK}
setSize:
moveTo: (- nsRight (+ 4 (newDButton nsRight?))) nsBottom
)
(newDButton
move: (- (newDButton nsLeft?) (newDButton nsRight?)) 0
)
(self add: newDButton setSize: center:)
(return temp3)
)
(method (doit param1 &tmp theNewDButton)
(if (not (self init: param1))
(Print (gInv empty?))
(return)
)
(self open: 4 15)
(= theNewDButton newDButton)
(repeat
(if
(or
(not (= theNewDButton (super doit: theNewDButton)))
(== theNewDButton -1)
(== theNewDButton newDButton)
)
(break)
)
((theNewDButton value?) showSelf:)
)
(self dispose:)
)
(method (handleEvent pEvent &tmp pEventMessage pEventType)
(= pEventMessage (pEvent message?))
(switch (= pEventType (pEvent type?))
(4
(switch pEventMessage
(KEY_UP (= pEventMessage 3840))
(KEY_NUMPAD2
(= pEventMessage 9)
)
)
)
(64
(switch pEventMessage
(JOY_UP
(= pEventMessage 3840)
(= pEventType 4)
)
(JOY_DOWN
(= pEventMessage 9)
(= pEventType 4)
)
)
)
)
(pEvent type: pEventType message: pEventMessage)
(super handleEvent: pEvent)
)
)

Binary file not shown.

View File

@@ -0,0 +1,198 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 991)
(include sci.sh)
(use Main)
(use Cycle)
(class Jump of Motion
(properties
client 0
caller 0
x 20000
y 20000
dx 0
dy 0
b-moveCnt 0
b-i1 0
b-i2 0
b-di 0
b-xAxis 0
b-incr 0
completed 0
gx 0
gy 3
xStep 20000
yStep 0
signal $0000
illegalBits $0000
waitApogeeX 1
waitApogeeY 1
)
(method (init theClient theCaller &tmp clientHeading)
(= client theClient)
(if (== argc 2) (= caller theCaller))
(= illegalBits (client illegalBits?))
(= signal (client signal?))
(client illegalBits: 0 setPri:)
(if (== xStep 20000)
(= xStep
(cond
(
(or
(> (= clientHeading (client heading?)) 330)
(< clientHeading 30)
(and (< 150 clientHeading) (< clientHeading 210))
)
0
)
((< clientHeading 180) (client xStep?))
(else (- (client xStep?)))
)
)
)
(if (not (if waitApogeeX (< (* xStep gx) 0)))
(= waitApogeeX 0)
)
(if (not (if waitApogeeY (< (* yStep gy) 0)))
(= waitApogeeY 0)
)
(self setTest:)
)
(method (doit &tmp theXStep theYStep)
(client
x: (+ (client x?) xStep)
y: (+ (client y?) yStep)
)
(= theXStep xStep)
(= theYStep yStep)
(= xStep (+ xStep gx))
(= yStep (+ yStep gy))
(if
(and
(not waitApogeeX)
(!= x 20000)
(<= 0 (* dx (- (client x?) x)))
)
(client x: x)
(self moveDone:)
(return)
)
(if
(and
(not waitApogeeY)
(!= y 20000)
(<= 0 (* dy (- (client y?) y)))
)
(client y: y)
(self moveDone:)
(return)
)
(if (<= (* theXStep xStep) 0)
(= waitApogeeX 0)
(self setTest:)
)
(if (<= (* theYStep yStep) 0)
(= waitApogeeY 0)
(self setTest:)
)
)
(method (moveDone)
(client illegalBits: illegalBits signal: signal)
(if caller (= global58 1) (= completed 1))
)
(method (triedToMove)
(return 1)
)
(method (motionCue)
(client mover: 0)
(if (and completed (IsObject caller)) (caller cue:))
(self dispose:)
)
(method (setTest)
(= dx
(if
(or
(> (client x?) x)
(and (== (client x?) x) (> xStep 0))
)
-1
else
1
)
)
(= dy
(if
(or
(> (client y?) y)
(and (== (client y?) y) (> yStep 0))
)
-1
else
1
)
)
)
)
(class JumpTo of Jump
(properties
client 0
caller 0
x 20000
y 20000
dx 0
dy 0
b-moveCnt 0
b-i1 0
b-i2 0
b-di 0
b-xAxis 0
b-incr 0
completed 0
gx 0
gy 3
xStep 20000
yStep 0
signal $0000
illegalBits $0000
waitApogeeX 1
waitApogeeY 1
)
(method (init theClient theX theY param4 &tmp temp0 temp1 [temp2 52])
(= client theClient)
(= x theX)
(= y theY)
(if
(and (== x (theClient x?)) (== y (theClient y?)))
(= illegalBits (client illegalBits?))
(= signal (client signal?))
(self moveDone:)
(return)
)
(= temp0 (- x (theClient x?)))
(= temp1 (- y (theClient y?)))
(SetJump self temp0 temp1 gy)
(if (not temp0) (= x 20000))
(if (not temp1) (= y 20000))
(switch argc
(3 (super init: theClient))
(4
(super init: theClient param4)
)
)
)
(method (moveDone)
(if (!= x 20000) (client x: x))
(if (!= y 20000) (client y: y))
(super moveDone:)
)
)

Binary file not shown.

View File

@@ -0,0 +1,27 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 520)
(include sci.sh)
(use Sound)
(use Game)
(public
kq4Intro 0
KQ4MUSIC 1
)
(instance KQ4MUSIC of Sound
(properties
number 104
)
)
(instance kq4Intro of Rgn
(properties)
(method (init)
(if initialized (return))
(= keep 1)
(super init:)
((ScriptID 520 1) owner: kq4Intro init:)
)
)

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1,48 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 506)
(include sci.sh)
(use Class_255_0)
(use Game)
(public
meadReg 0
)
(synonyms
(flora flora flora blossom flora flora)
)
(local
[local0 7]
)
(instance meadReg of Rgn
(properties)
(method (handleEvent pEvent)
(if (pEvent claimed?) (return 1))
(return
(if (== (pEvent type?) evSAID)
(cond
((Said 'look>')
(cond
((Said '/bush') (Print 506 0))
((Said '/boulder') (Print 506 1))
((or (Said '<down') (Said '/dirt,down')) (Print 506 2))
((Said '/grass') (Print 506 3))
((Said '/flora') (Print 506 4))
((Said '/forest') (Print 506 5))
)
)
((Said 'climb>')
(cond
((Said '/forest') (Print 506 6))
((Said '/boulder') (Print 506 7))
)
)
((Said 'get/flora,flora') (Print 506 8))
)
else
0
)
)
)
)

Binary file not shown.

View File

@@ -0,0 +1,207 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 997)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Gauge)
(use Sound)
(use InvI)
(use User)
(class TheMenuBar of Class_255_0
(properties
state $0000
)
(method (init)
(AddMenu { \01_} {About KQ4`^a:Help`#1})
(AddMenu
{ File_}
{Save`#5:Restore`#7:-!:Restart`#9:Quit`^q}
)
(AddMenu { Action_} {Pause`^p:Inventory`^i:Retype`#3})
(AddMenu
{ Speed_}
{Speed`^s:-!:Faster`+:Normal`=:Slower`-}
)
(AddMenu { Sound_} {Volume`^v:-!:Turn Off=1`#2})
(SetMenu
1283
110
(if (DoSound sndSET_SOUND) {Turn Off} else {Turn On})
)
(SetMenu 513 109 'save[/game]')
(SetMenu 514 109 'restore[/game]')
(SetMenu 516 109 'restart[/game]')
(SetMenu 517 109 'quit[/game]')
(SetMenu 769 109 'pause[/game]')
(SetMenu 770 109 'inventory')
)
(method (handleEvent pEvent &tmp temp0 temp1 [temp2 4] temp6 [temp7 288])
(switch (= temp0 (super handleEvent: pEvent))
(257
(= temp6 (Sound pause: 1))
(Print
(Format @temp7 997 0 global28)
80
{A Ken Williams Production}
33
gSmallFont
30
1
67
20
10
70
260
)
(Sound pause: temp6)
)
(258
(= temp6 (Sound pause: 1))
(Print 997 1 33 gSmallFont)
(Sound pause: temp6)
)
(513
(if (not (proc0_12 1028))
(Print 997 2)
else
(gGame save:)
)
)
(514
(if (not (proc0_12 1028))
(Print 997 3)
else
(gGame restore:)
)
)
(516
(= temp6 (Sound pause: 1))
(if
(Print
997
4
82
100
0
0
33
0
81
{ Restart_}
1
81
{Continue}
0
)
(gGame restart:)
)
(Sound pause: temp6)
)
(517
(= temp6 (Sound pause: 1))
(= gQuit
(Print
997
5
82
100
0
0
33
0
81
{____Quit____}
1
81
{ Continue_}
0
)
)
(Sound pause: temp6)
)
(769
(= temp6 (Sound pause: 1))
(Print 997 6 33 0 30 1 81 { Continue_} 0)
(Sound pause: temp6)
)
(770
(if (not (proc0_12 2348))
(Print 997 7)
else
(= temp6 (Sound pause: 1))
(Inv showSelf: gEgo)
(Sound pause: temp6)
)
)
(771
(pEvent claimed: 0 type: 4 message: (User echo?))
)
(1025
(if (not (proc0_12 1850))
(Print 997 8)
else
(= temp1
((Gauge new:)
description:
{Use the mouse or the left and right arrow keys to change the speed of moving characters.}
text: {Animation Speed}
minimum: 0
normal: 10
maximum: 15
higher: {Faster}
lower: {Slower}
doit: (- 16 gSpeed)
)
)
(gGame setSpeed: (- 16 temp1))
(DisposeScript 987)
)
)
(1027
(if (> gSpeed 1) (gGame setSpeed: (-- gSpeed)))
)
(1028 (gGame setSpeed: 6))
(1029
(gGame setSpeed: (++ gSpeed))
)
(1281
(if (not (proc0_12 1850))
(Print 997 9)
else
(= temp6 (DoSound sndPAUSE 1))
(= temp1
((Gauge new:)
description:
{Use the mouse or left and right arrow keys to change the volume.}
text: {Sound Volume}
minimum: 0
normal: 12
maximum: 15
higher: {Louder}
lower: {Softer}
doit: (DoSound sndVOLUME)
)
)
(DoSound sndPAUSE temp6)
(DoSound sndVOLUME temp1)
(DisposeScript 987)
)
)
(1283
(if (= temp1 (DoSound sndSET_SOUND))
(SetMenu 1283 110 {Turn On})
else
(SetMenu 1283 110 {Turn Off})
)
(DoSound sndSET_SOUND (not temp1))
)
(else
(if global202 (global202 doit: temp0))
)
)
)
)

Binary file not shown.

View File

@@ -0,0 +1,12 @@
Copy Protection:
Main.sc line 720 changed (self newRoom: 701) to (self newRoom: 700) to skip the CP script
Main.sc line 777 Set cursor to normal from wait cursor after bypassing CP script
Warning: (rm92.sc) Duplicate case values. Already encountered a case for '6' Line: 368, col: 4
rm92.sc line 368 changed duplicate (6 to (7
rm92.sc line 378 changed (7 to (8 to make room for renaming duplicate (6 to (7

View File

@@ -0,0 +1,27 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 511)
(include sci.sh)
(use Class_255_0)
(use Game)
(public
mountReg 0
)
(instance mountReg of Rgn
(properties)
(method (handleEvent pEvent)
(if (pEvent claimed?) (return 1))
(return
(if (== (pEvent type?) evSAID)
(cond
((Said 'look/cliff') (Print 511 0))
((Said 'climb,cross/cliff') (Print 511 1))
)
else
0
)
)
)
)

Binary file not shown.

View File

@@ -0,0 +1,232 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 516)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Avoid)
(use Sound)
(use Cycle)
(use Game)
(use InvI)
(use Feature)
(use Obj)
(public
regMinstrel 0
notes 1
)
(synonyms
(man man man man boy person bard)
(kiss kiss embrace)
)
(local
local0
local1
)
(instance thisSong of Sound
(properties)
)
(instance notes of Prop
(properties)
(method (cue)
(notes dispose:)
)
)
(instance regMinstrel of Rgn
(properties)
(method (init)
(super init:)
(if
(or
(and (== gCurRoomNum 13) (== global118 1))
(and (== gCurRoomNum 14) (== global118 2))
(and (== gCurRoomNum 19) (== global118 3))
)
(gNewAct_2 setScript: minstrelActions)
(notes
view: 888
ignoreActors:
cycleSpeed: 1
setCycle: Fwd
posn: (+ (gNewAct_2 x?) 16) (- (gNewAct_2 y?) 20)
init:
)
(thisSong number: 19 play: minstrelActions)
(minstrelActions changeState: 1)
)
(= global189 1)
)
(method (dispose)
(= global189 0)
(thisSong dispose:)
(super dispose:)
)
(method (handleEvent pEvent &tmp gInvSaidMe)
(super handleEvent: pEvent)
(if (pEvent claimed?) (return 1))
(return
(if
(and
(== (pEvent type?) evSAID)
(gCast contains: gNewAct_2)
)
(cond
((Said 'get/man') (Print 516 0))
((Said 'kiss') (Print 516 1))
((Said 'deliver>')
(cond
((Said '/book')
(if (gEgo has: 18)
(if (>= (gEgo distanceTo: gNewAct_2) 25)
(Print 516 2)
else
(gSounds eachElementDo: #stop 0)
(minstrelActions changeState: 10)
)
else
(proc0_17)
)
)
(
(and
(= gInvSaidMe (gInv saidMe:))
(gEgo has: (gInv indexOf: gInvSaidMe))
)
(Print 516 3)
)
(else (pEvent claimed: 0))
)
)
((Said 'rob/lute') (Print 516 4))
((Said 'look/man')
(if ((Inv at: 18) ownedBy: 203)
(if (gCast contains: gNewAct_2)
(Print 516 5)
else
(Print 516 6)
)
else
(Print 516 7)
)
)
((Said 'converse[/man]')
(cond
(((Inv at: 9) ownedBy: 203)
(++ global184)
(gSounds eachElementDo: #stop 0)
(if (> global184 4)
(= local1 (Random 2 4))
else
(= local1 global184)
)
(switch local1
(1
(Print 516 8)
(Print 516 9)
(thisSong number: 17 play: minstrelActions)
)
(2
(Print 516 10)
(thisSong number: 16 play: minstrelActions)
)
(3
(Print 516 11)
(thisSong number: 15 play: minstrelActions)
)
(4
(Print 516 12)
(thisSong number: 18 play: minstrelActions)
)
)
(minstrelActions changeState: 1)
)
((gCast contains: gNewAct_2) (Print 516 13))
(else (pEvent claimed: 0))
)
)
((Said 'get/lute')
(if ((Inv at: 9) ownedBy: 203)
(Print 516 14)
else
(Print 516 15)
)
)
((Said 'hum/') (Print 516 16))
)
else
0
)
)
)
)
(instance minstrelActions of Script
(properties)
(method (changeState newState)
(switch (= state newState)
(1
(notes show: setPri: (gNewAct_2 priority?))
(gNewAct_2 cycleSpeed: 1 setCycle: Fwd)
)
(2
(gNewAct_2 setCycle: 0 cel: 0)
(notes hide:)
)
(10
(notes hide:)
(proc0_8)
(Print 516 17)
(gNewAct_2
view: 173
cel: 0
loop: 0
cycleSpeed: 2
setCycle: Fwd
)
(= global118 -1)
(= seconds 4)
)
(11
(Print 516 18)
(= global182 1)
((Inv at: 18) moveTo: 203)
((Inv at: 9) moveTo: gEgo)
(gGame changeScore: 3)
(proc0_9)
(gNewAct_2
view: 171
cel: 0
loop: 2
xStep: 2
cycleSpeed: 0
yStep: 1
setAvoider: Avoid
setCycle: Walk
)
(switch gCurRoomNum
(13
(gNewAct_2 setMotion: MoveTo 329 125 self)
)
(14
(gNewAct_2 setMotion: MoveTo 329 136 self)
)
(19
(gNewAct_2 setMotion: MoveTo 329 125 self)
)
)
)
(12
(gNewAct_2 setScript: 0)
(gNewAct_2 dispose:)
)
)
)
)

Binary file not shown.

View File

@@ -0,0 +1,526 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 999)
(include sci.sh)
(use Main)
(use Class_255_0)
(public
proc999_0 0
proc999_1 1
)
(procedure (proc999_0 param1)
(return (if (< param1 0) -1 else (> param1 0)))
)
(procedure (proc999_1 param1 param2)
(if
(<
(= param1 (- param1 (* param2 (/ param1 param2))))
0
)
(= param1 (+ param1 param2))
)
(return param1)
)
(class Obj
(properties)
(method (new)
(Clone self)
)
(method (init)
)
(method (doit)
(return self)
)
(method (dispose)
(DisposeClone self)
)
(method (showStr param1)
(StrCpy param1 name)
)
(method (showSelf &tmp [temp0 200])
(Print (self showStr: @temp0))
)
(method (perform param1)
(param1 doit: self &rest)
)
(method (isKindOf param1 &tmp objSuperClass)
(= objSuperClass (self superClass?))
(cond
((== species (param1 species?)))
((IsObject objSuperClass) (objSuperClass isKindOf: param1))
)
)
(method (isMemberOf param1)
(return
(if
(and
(& (param1 -info-?) $8000)
(not (& -info- $8000))
)
(== species (param1 species?))
else
0
)
)
)
(method (respondsTo param1)
(RespondsTo self param1)
)
(method (yourself)
(return self)
)
)
(class Code of Obj
(properties)
(method (doit)
)
)
(class Collect of Obj
(properties
elements 0
size 0
)
(method (dispose)
(if elements
(self eachElementDo: #dispose)
(DisposeList elements)
)
(= size (= elements 0))
(super dispose:)
)
(method (showStr param1)
(Format param1 999 0 name size)
)
(method (showSelf &tmp [temp0 40])
(Print (self showStr: @temp0))
(self eachElementDo: #showSelf)
)
(method (add param1 &tmp temp0 temp1 temp2)
(if (not elements) (= elements (NewList)))
(= temp1 0)
(while (< temp1 argc)
(AddToEnd
elements
(NewNode [param1 temp1] [param1 temp1])
)
(++ size)
(++ temp1)
)
(return self)
)
(method (delete param1 &tmp temp0)
(= temp0 0)
(while (< temp0 argc)
(if (DeleteKey elements [param1 temp0]) (-- size))
(++ temp0)
)
(return self)
)
(method (eachElementDo param1 &tmp temp0 temp1 temp2)
(= temp0 (FirstNode elements))
(while temp0
(= temp1 (NextNode temp0))
(if (not (IsObject (= temp2 (NodeValue temp0))))
(return)
)
(temp2 param1: &rest)
(= temp0 temp1)
)
)
(method (firstTrue param1 &tmp temp0 temp1 temp2)
(= temp0 (FirstNode elements))
(while temp0
(= temp1 (NextNode temp0))
(= temp2 (NodeValue temp0))
(if (temp2 param1: &rest) (return temp2))
(= temp0 temp1)
)
(return 0)
)
(method (allTrue param1 &tmp temp0 temp1 temp2)
(= temp0 (FirstNode elements))
(while temp0
(= temp1 (NextNode temp0))
(= temp2 (NodeValue temp0))
(if (not (temp2 param1: &rest)) (return 0))
(= temp0 temp1)
)
(return 1)
)
(method (contains param1)
(FindKey elements param1)
)
(method (isEmpty)
(if (== elements 0) else (EmptyList elements))
)
(method (first)
(FirstNode elements)
)
(method (next param1)
(NextNode param1)
)
(method (release &tmp temp0 temp1)
(= temp0 (FirstNode elements))
(while temp0
(= temp1 (NextNode temp0))
(self delete: (NodeValue temp0))
(= temp0 temp1)
)
)
)
(class List of Collect
(properties
elements 0
size 0
)
(method (showStr param1)
(Format param1 999 1 name size)
)
(method (at param1 &tmp temp0)
(= temp0 (FirstNode elements))
(while (and param1 temp0)
(-- param1)
(= temp0 (NextNode temp0))
)
(NodeValue temp0)
)
(method (last)
(LastNode elements)
)
(method (prev param1)
(PrevNode param1)
)
(method (addToFront param1 &tmp temp0)
(if (not elements) (= elements (NewList)))
(= temp0 (- argc 1))
(while (<= 0 temp0)
(AddToFront
elements
(NewNode [param1 temp0] [param1 temp0])
)
(++ size)
(-- temp0)
)
(return self)
)
(method (addToEnd param1 &tmp temp0)
(if (not elements) (= elements (NewList)))
(= temp0 0)
(while (< temp0 argc)
(AddToEnd
elements
(NewNode [param1 temp0] [param1 temp0])
)
(++ size)
(++ temp0)
)
(return self)
)
(method (addAfter param1 param2 &tmp temp0 temp1 temp2)
(if (= temp2 (FindKey elements param1))
(-- argc)
(= temp0 0)
(while (< temp0 argc)
(= temp2
(AddAfter
elements
temp2
(NewNode [param2 temp0] [param2 temp0])
)
)
(++ size)
(++ temp0)
)
)
(return self)
)
(method (indexOf param1 &tmp temp0 temp1)
(= temp0 0)
(= temp1 (FirstNode elements))
(while temp1
(if (== param1 (NodeValue temp1)) (return temp0))
(++ temp0)
(= temp1 (NextNode temp1))
)
(return -1)
)
)
(class Set of List
(properties
elements 0
size 0
)
(method (showStr param1)
(Format param1 999 2 name size)
)
(method (add param1 &tmp temp0 temp1 temp2)
(if (not elements) (= elements (NewList)))
(= temp1 0)
(while (< temp1 argc)
(= temp2 [param1 temp1])
(if (not (self contains: temp2))
(AddToEnd elements (NewNode temp2 temp2))
(++ size)
)
(++ temp1)
)
)
)
(class EventHandler of Set
(properties
elements 0
size 0
)
(method (handleEvent pEvent &tmp temp0 temp1 temp2)
(= temp0 (FirstNode elements))
(while (and temp0 (not (pEvent claimed?)))
(= temp1 (NextNode temp0))
(breakif (not (IsObject (= temp2 (NodeValue temp0)))))
(temp2 handleEvent: pEvent)
(= temp0 temp1)
)
(pEvent claimed?)
)
)
(class Script of Obj
(properties
client 0
state $ffff
start 0
timer 0
cycles 0
seconds 0
lastSeconds 0
register 0
script 0
caller 0
)
(method (init theClient theCaller theRegister)
(if (>= argc 1)
(= client theClient)
(if (>= argc 2)
(= caller theCaller)
(if (>= argc 3) (= register theRegister))
)
)
(self changeState: start)
)
(method (doit &tmp theLastSeconds)
(if script (script doit:))
(cond
(cycles (if (not (-- cycles)) (self cue:)))
(
(and
seconds
(!= lastSeconds (= theLastSeconds (GetTime 1)))
)
(= lastSeconds theLastSeconds)
(if (not (-- seconds)) (self cue:))
)
)
)
(method (dispose)
(if (IsObject script) (script dispose:))
(if (IsObject timer) (timer dispose:))
(if (IsObject client) (client script: 0))
(if (IsObject caller) (caller cue: register))
(super dispose:)
)
(method (changeState newState)
(= state newState)
)
(method (cue)
(self changeState: (+ state 1) &rest)
)
(method (handleEvent pEvent)
(if script (script handleEvent: pEvent))
(pEvent claimed?)
)
(method (setScript theScript)
(if (IsObject script) (script dispose:))
(if (= script theScript)
((= script theScript) init: self &rest)
)
)
)
(class Event of Obj
(properties
type $0000
message 0
modifiers $0000
y 0
x 0
claimed 0
)
(method (new param1 &tmp newSuper)
(= newSuper (super new:))
(GetEvent (if argc param1 else 32767) newSuper)
(return newSuper)
)
)
(class Timer of Obj
(properties
cycleCnt -1
seconds -1
lastTime -1
client 0
)
(procedure (localproc_0768 &tmp theClient)
(= theClient client)
(= client 0)
(if (IsObject theClient)
(if (theClient respondsTo: #timer) (theClient timer: 0))
(if (theClient respondsTo: #cue) (theClient cue:))
)
)
(method (new)
(return (if (== self Timer) (super new:) else self))
)
(method (init theClient)
(= client theClient)
(gTimers add: self)
(if (theClient respondsTo: #timer)
(if (IsObject (theClient timer?))
((theClient timer?) dispose:)
)
(theClient timer: self)
)
)
(method (doit &tmp theLastTime)
(cond
((!= cycleCnt -1) (if (not (-- cycleCnt)) (localproc_0768)))
((!= lastTime (= theLastTime (GetTime 1)))
(= lastTime theLastTime)
(if (not (-- seconds)) (localproc_0768))
)
)
)
(method (dispose)
(if
(and (IsObject client) (client respondsTo: #timer))
(client timer: 0)
)
(= client 0)
)
(method (set param1 param2 param3 param4 &tmp temp0 temp1 theGNewSpeed [temp3 50])
(if (== (= theGNewSpeed gSpeed) 0)
(= theGNewSpeed 1)
)
(= temp1 (/ (* param2 60) theGNewSpeed))
(if (> argc 2)
(= temp1 (+ temp1 (/ (* param3 3600) theGNewSpeed)))
)
(if (> argc 3)
(= temp1
(+ temp1 (* (/ (* param4 3600) theGNewSpeed) 60))
)
)
((= temp0 (if (& -info- $8000) (self new:) else self))
init: param1
cycleCnt: temp1
)
(return temp0)
)
(method (setCycle theCycler sendParams &tmp temp0)
((= temp0 (if (& -info- $8000) (self new:) else self))
init: theCycler
cycleCnt: sendParams
)
(return temp0)
)
(method (setReal param1 param2 param3 param4 &tmp temp0 temp1)
(= temp1 param2)
(if (> argc 2) (= temp1 (+ temp1 (* param3 60))))
(if (> argc 3) (= temp1 (+ temp1 (* param4 3600))))
((= temp0 (if (& -info- $8000) (self new:) else self))
init: param1
seconds: temp1
)
(return temp0)
)
(method (delete)
(if (== client 0)
(gTimers delete: self)
(super dispose:)
)
)
)
(class TO of Obj
(properties
timeLeft 0
)
(method (doit)
(if timeLeft (-- timeLeft))
)
(method (set theTimeLeft)
(= timeLeft theTimeLeft)
)
)

Binary file not shown.

View File

@@ -0,0 +1,83 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 519)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Game)
(use InvI)
(public
Ocean_Region 0
)
(synonyms
(flora flora flora blossom flora flora)
(ocean seawater ocean)
)
(instance Ocean_Region of Rgn
(properties
name "Ocean Region"
)
(method (handleEvent pEvent)
(if (pEvent claimed?) (return 1))
(return
(if (== (pEvent type?) evSAID)
(cond
(
(or
(Said 'look<in/ocean,water')
(Said 'look<under/ocean,water')
(Said 'look<in/water')
(Said 'look<under/water')
)
(Print 519 0)
)
((Said 'look/fish')
(cond
((gEgo has: 24) ((Inv at: 24) showSelf:))
((not global100) (Print 519 1))
(else (Print 519 2))
)
)
((Said 'converse/fish')
(if (not global100)
(Print 519 3)
else
(Print 519 4)
)
)
((Said 'chew,kill,kiss/fish')
(if (not global100)
(Print 519 5)
else
(Print 519 4)
)
)
(
(or (Said 'get,capture/fish') (Said 'fish[/!*]')) (Print 519 6))
((Said 'look/ocean,water') (Print 519 7))
((Said 'look/sky')
(if (not global100)
(Print 519 8)
else
(Print 519 9)
)
)
((Said 'bathe[/!*]') (Print 519 10))
(
(or
(Said 'dive/ocean,water')
(Said 'dive[/!*]')
(Said 'bathe<under/ocean,water')
)
(Print 519 11)
)
((or (Said 'get/drink') (Said 'drink')) (Print 519 12))
)
else
0
)
)
)
)

View File

@@ -0,0 +1,52 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 517)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Game)
(public
Ogre_s_Region 0
)
(synonyms
(kiss kiss embrace)
(giant giant giant giant man giant)
)
(instance Ogre_s_Region of Rgn
(properties
name "Ogre's Region"
)
(method (handleEvent pEvent &tmp gInvSaidMe)
(if (pEvent claimed?) (return 1))
(return
(if
(and
(== (pEvent type?) evSAID)
(gCast contains: gNewAct)
)
(cond
((Said 'look/giant') (Print 517 0))
((Said 'converse') (Print 517 1))
((Said 'kill/giant') (Print 517 2))
((Said 'get,capture/giant') (Print 517 3))
((Said 'kiss') (Print 517 4))
((Said 'deliver>')
(if
(and
(= gInvSaidMe (gInv saidMe:))
(gEgo has: (gInv indexOf: gInvSaidMe))
)
(Print 517 5)
else
(Print 517 6)
)
)
)
else
0
)
)
)
)

View File

@@ -0,0 +1,75 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 304)
(include sci.sh)
(use Main)
(use Sound)
(use Cycle)
(use Feature)
(use Obj)
(public
playFlute 0
)
(local
gEgoViewer
newProp
)
(instance fluteMusic of Sound
(properties)
)
(instance playFlute of Script
(properties)
(method (init)
(= global204 1)
(Load rsVIEW 55)
(super init:)
)
(method (changeState newState)
(switch (= state newState)
(0
(proc0_8)
(= newProp (Prop new:))
(newProp
view: 888
ignoreActors:
setPri: (+ (gEgo priority?) 1)
cycleSpeed: 1
setCycle: Fwd
posn: (+ (gEgo x?) 10) (- (gEgo y?) 27)
init:
)
(= gEgoViewer (gEgo viewer?))
(gEgo
viewer: 0
view: 55
loop: (if (== (gEgo view?) 2) 0 else 1)
setMotion: 0
cycleSpeed: 2
setCycle: Fwd
)
(gSounds eachElementDo: #stop 0)
(fluteMusic number: 77 play: self)
)
(1
(gEgo
viewer: gEgoViewer
view: (if (== (gEgo loop?) 0) 2 else 4)
)
(gEgo
script: gGEgoScript
cycleSpeed: 0
loop: 2
setCycle: Walk
)
(newProp dispose:)
(proc0_9)
(fluteMusic dispose:)
(DisposeScript 304)
)
)
)
)

Binary file not shown.

View File

@@ -0,0 +1,97 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 303)
(include sci.sh)
(use Main)
(use Sound)
(use Cycle)
(use Feature)
(use Obj)
(public
playIt 0
)
(local
newProp
gEgoViewer
)
(instance musicLute of Sound
(properties
number 54
)
)
(instance playIt of Script
(properties)
(method (init)
(Load rsVIEW 54)
(= global204 1)
(super init:)
)
(method (changeState newState)
(switch (= state newState)
(0
(proc0_8)
(= newProp (Prop new:))
(if
(and (!= (gEgo view?) 2) (!= (gEgo view?) 4))
(proc0_9)
(musicLute dispose:)
(DisposeScript 303)
(return)
)
(if (== (gEgo view?) 2)
(newProp
view: 888
ignoreActors:
setPri: (gEgo priority?)
cycleSpeed: 1
setCycle: Fwd
posn: (+ (gEgo x?) 13) (- (gEgo y?) 27)
init:
)
else
(newProp
view: 888
ignoreActors:
setPri: (gEgo priority?)
cycleSpeed: 1
setCycle: Fwd
posn: (+ (gEgo x?) 15) (- (gEgo y?) 37)
init:
)
)
(gSounds eachElementDo: #stop 0)
(musicLute play: self)
(= gEgoViewer (gEgo viewer?))
(gEgo
viewer: 0
view: 54
setMotion: 0
loop: (if (== (gEgo view?) 2) 0 else 1)
cycleSpeed: 2
setCycle: Fwd
)
)
(1
(gEgo
viewer: gEgoViewer
view: (if (== (gEgo loop?) 0) 2 else 4)
)
(newProp dispose:)
(gEgo
viewer: gEgoViewer
script: gGEgoScript
cycleSpeed: 0
loop: 2
setCycle: Walk
)
(proc0_9)
(musicLute dispose:)
(DisposeScript 303)
)
)
)
)

Binary file not shown.

View File

@@ -0,0 +1,132 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 306)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Obj)
(public
readBook 0
readBook 1
readNote 2
)
(instance readBook of Script
(properties)
(method (changeState newState)
(switch (= state newState)
(1
(Print 306 0 33 gSmallFont 30 1 67 -1 15 70 290)
)
(2
(Print 306 1 33 gSmallFont 30 1 67 -1 15 70 290)
)
(3
(Print 306 2 33 gSmallFont 30 1 67 -1 15 70 290)
)
(4
(Print 306 3 33 gSmallFont 30 1 67 -1 15 70 290)
)
(5
(Print 306 4 33 gSmallFont 30 1 67 -1 15 70 290)
)
(6
(Print 306 5 33 gSmallFont 30 1 67 -1 15 70 290)
)
(7
(Print 306 6 33 gSmallFont 30 1 67 -1 15 70 290)
)
(8
(Print 306 7 33 gSmallFont 30 1 67 -1 15 70 290)
)
(9
(Print 306 8 33 gSmallFont 30 1 67 -1 15 70 290)
)
(10
(Print 306 9 33 gSmallFont 30 1 67 -1 15 70 290)
)
(11
(Print 306 10 33 gSmallFont 30 1 67 -1 15 70 290)
)
(12
(Print 306 11 33 gSmallFont 30 1 67 -1 15 70 290)
)
(13
(Print 306 12 33 gSmallFont 30 1 67 -1 15 70 290)
)
(14
(Print 306 13 33 gSmallFont 30 1 67 -1 15 70 290)
)
(15
(Print 306 14 33 gSmallFont 30 1 67 -1 15 70 290)
)
(16
(Print 306 15 33 gSmallFont 30 1 67 -1 15 70 290)
)
(17
(Print 306 16 33 gSmallFont 30 1 67 -1 15 70 290)
)
(18
(Print 306 17 33 gSmallFont 30 1 67 -1 15 70 290)
)
(19
(Print 306 18 33 gSmallFont 30 1 67 -1 15 70 290)
)
(20
(Print 306 19 33 gSmallFont 30 1 67 -1 15 70 290)
)
(21
(Print 306 20 33 gSmallFont 30 1 67 -1 15 70 290)
)
(22
(Print 306 21 33 gSmallFont 30 1 67 -1 15 70 290)
)
(23
(Print 306 22 33 gSmallFont 30 1 67 -1 15 70 290)
)
(24
(Print 306 23 33 gSmallFont 30 1 67 -1 15 70 290)
)
(25
(Print 306 24 33 gSmallFont 30 1 67 -1 15 70 290)
)
(26
(Print 306 25 33 gSmallFont 30 1 67 -1 15 70 290)
)
(27
(Print 306 26 33 gSmallFont 30 1 67 -1 15 70 290)
)
(28
(Print 306 27 33 gSmallFont 30 1 67 -1 15 70 290)
)
(29
(Print 306 28 33 gSmallFont 30 1 67 -1 15 70 290)
)
(30
(Print 306 29 33 gSmallFont 30 1 67 -1 15 70 290)
)
)
(DisposeScript 306)
)
)
(instance readNote of Script
(properties)
(method (cue)
(switch (Random 1 9)
(1 (Print 306 30))
(2 (Print 306 31))
(3 (Print 306 32))
(4 (Print 306 33))
(5 (Print 306 34))
(6 (Print 306 35))
(7 (Print 306 36))
(8 (Print 306 37))
(9 (Print 306 38))
(10 (Print 306 39))
)
(DisposeScript 306)
)
)

Binary file not shown.

View File

@@ -0,0 +1,125 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 512)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Cycle)
(use Game)
(use Obj)
(public
riverReg 0
)
(synonyms
(brook brook brook)
)
(local
local0
gEgoViewer
)
(instance riverReg of Rgn
(properties)
(method (init)
(super init:)
(self setScript: riverActions)
(Load rsVIEW 21)
)
(method (dispose)
((ScriptID 0 4) dispose: delete:)
(super dispose:)
)
(method (handleEvent pEvent)
(super handleEvent: pEvent)
(if (pEvent claimed?) (return 1))
(return
(if (== (pEvent type?) evSAID)
(cond
((Said 'look<in/brook')
(if
(or
(& (= local0 (proc0_2 gEgo 20)) $0008)
(& local0 $0800)
(& local0 $0002)
(& local0 $0200)
)
(Print 512 0)
else
(proc0_13)
)
)
((or (Said 'look/brook') (Said 'look/water')) (Print 512 1))
(
(or
(Said 'bathe/brook')
(Said 'bathe')
(Said 'enter/bathe')
)
(Print 512 2)
)
(
(or
(Said 'fish[/!*]')
(Said 'fish<enter')
(Said 'look,capture/fish')
(Said 'cast/pole')
)
(Print 512 3)
)
((Said 'wade/brook')
(if (== global105 0)
(Print 512 4)
else
(Print 512 5)
)
)
((or (Said 'drink') (Said 'get/drink'))
(cond
((!= global105 0) (Print 512 6))
(
(or
(& (= local0 (proc0_2 gEgo 10)) $0008)
(& local0 $0800)
(& local0 $0002)
(& local0 $0200)
)
(= global120 (Print 512 7 67 -1 10 88))
(riverActions changeState: 1)
)
(else (proc0_13))
)
)
((Said 'get/water') (Print 512 8))
)
else
0
)
)
)
)
(instance riverActions of Script
(properties)
(method (changeState newState)
(switch (= state newState)
(1
(proc0_8)
(= gEgoViewer (gEgo viewer?))
(gEgo viewer: 0 view: 21 cel: 0 setCycle: End self)
)
(2
((ScriptID 0 4) setReal: self 6)
)
(3 (gEgo setCycle: Beg self))
(4
(gEgo view: 2 setCycle: Walk viewer: gEgoViewer)
(proc0_21)
(proc0_9)
)
)
)
)

Binary file not shown.

View File

@@ -0,0 +1,63 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 305)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Cycle)
(use InvI)
(use Obj)
(public
shootBow 0
)
(local
gEgoViewer
)
(instance shootBow of Script
(properties)
(method (init)
(= global204 1)
(Load rsVIEW 31)
(Load rsVIEW 68)
(super init:)
)
(method (changeState newState)
(switch (= state newState)
(0
(proc0_8)
(= gGEgoView (gEgo view?))
(= gGEgoBaseSetter (gEgo baseSetter?))
(= gEgoViewer (gEgo viewer?))
(gEgo
viewer: 0
baseSetter: (ScriptID 0 1)
view: (if (== gGEgoView 2) 31 else 68)
setMotion: 0
cel: 0
setCycle: End self
)
)
(1
(gEgo view: gGEgoView setCycle: Walk)
(= global204 0)
((Inv at: 14) loop: (+ ((Inv at: 14) loop?) 1))
(= global120 (Print 305 0 67 -1 10 88))
(Timer setReal: self 4)
)
(2
(proc0_21)
(Print 305 1)
(gEgo
viewer: gEgoViewer
baseSetter: gGEgoBaseSetter
script: gGEgoScript
)
(proc0_9)
(DisposeScript 305)
)
)
)
)

Binary file not shown.

View File

@@ -0,0 +1,82 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 989)
(include sci.sh)
(use Main)
(use Obj)
(class Sound of Obj
(properties
state $0000
number 0
priority 0
loop 1
handle 0
signal $0000
prevSignal 0
client 0
owner 0
)
(method (new param1)
((super new:) owner: (if argc param1 else 0) yourself:)
)
(method (init)
(= state (= signal 0))
(gSounds add: self)
(DoSound sndINIT self)
)
(method (dispose param1)
(if (and argc (not param1)) (= client 0))
(gSounds delete: self)
(if handle (DoSound sndDISPOSE handle) (= handle 0))
(super dispose:)
)
(method (play param1 &tmp temp0)
(self stop:)
(if (not loop) (= loop 1))
(self init:)
(= client (if argc param1 else 0))
(DoSound sndPLAY self)
)
(method (playMaybe)
(self play: &rest)
(if (== state 2) (self dispose:))
)
(method (stop param1)
(if (and argc (not param1)) (= client 0))
(if handle (DoSound sndSTOP handle))
)
(method (check)
(if signal
(if (IsObject client) (client cue: self))
(= prevSignal signal)
(= signal 0)
)
)
(method (pause param1)
(DoSound sndPAUSE param1)
)
(method (changeState)
(DoSound sndUPDATE self)
)
(method (clean param1)
(if (or (not owner) (== owner param1))
(self dispose:)
)
)
(method (fade param1)
(if (and argc (not param1)) (= client 0))
(DoSound sndFADE handle)
)
)

Binary file not shown.

View File

@@ -0,0 +1,313 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 513)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Sound)
(use Cycle)
(use Game)
(use Feature)
(use Obj)
(public
swampReg 0
)
(synonyms
(water water marsh)
)
(local
local0
local1
newProp
newAct
local4
gEgoViewer
)
(instance poofSound of Sound
(properties
number 59
)
)
(instance swampReg of Rgn
(properties)
(method (init)
(Load rsVIEW 5)
(Load rsVIEW 6)
(Load rsVIEW 7)
(Load rsVIEW 10)
(Load rsVIEW 372)
(Load rsVIEW 377)
(Load rsVIEW 193)
(Load rsVIEW 680)
(Load rsVIEW 370)
(= local0 0)
(gEgo viewer: swamp)
(super init:)
)
(method (handleEvent pEvent)
(if (pEvent claimed?) (return 1))
(return
(if (== (pEvent type?) evSAID)
(cond
((Said 'bathe,dive,wade[<enter][/ocean]') (Print 513 0))
(
(or
(Said 'enter/fish')
(Said 'fish[/!*]')
(Said 'capture/fish')
(Said 'cast/pole')
)
(Print 513 1)
)
((Said 'get/water') (Print 513 2))
((or (Said 'drink') (Said 'get/drink'))
(if (== (gEgo view?) 2)
(if
(or
(& (= local4 (proc0_2 gEgo 12)) $0008)
(& local4 $0800)
(& local4 $0002)
(& local4 $0200)
)
(= gGEgoScript (gEgo script?))
(gEgo setScript: drinking)
else
(Print 800 1)
)
else
(Print 513 3)
)
)
((Said 'look<in/water') (Print 513 4))
((Said 'look,climb/boulder<[gray]') (Print 513 5))
((Said 'look>')
(cond
((Said '/water') (Print 513 6))
((Said '/cliff') (Print 513 7))
((Said '/dirt') (Print 513 8))
((Said '/tuft') (Print 513 9))
((Said '/grass') (Print 513 10))
((Said '/bush') (Print 513 11))
((Said '/flora') (Print 513 12))
((Said '/blossom') (Print 513 13))
((Said '/forest') (Print 513 14))
)
)
((Said 'climb,cross/cliff') (Print 513 15))
((Said 'get/blossom') (Print 513 13))
(
(or (Said 'dennis/crown') (Said 'place/crown'))
(cond
(
(and (gEgo inRect: 115 149 274 181) (== gCurRoomNum 78)) (Print 513 16))
((!= (gEgo view?) 2) (Print 513 17))
((gEgo has: 10) (swamp changeState: 20))
(else (Print 800 2))
)
)
(
(or (Said 'detach/crown') (Said 'get<off/crown'))
(if (== global105 13)
(swamp changeState: 30)
else
(Print 513 18)
)
)
)
else
0
)
)
)
)
(instance swamp of Script
(properties)
(method (doit)
(super doit:)
(= local0 (= local1 (gEgo onControl: 1)))
(cond
((and (== global105 12) (== global132 0))
(switch local1
(1
(gEgo illegalBits: -32768 view: 2)
)
(2048
(gEgo illegalBits: -31744 view: 5)
)
(512
(gEgo illegalBits: -31744 view: 6)
)
(8
(gEgo illegalBits: -31744 view: 7)
)
(2 (self changeState: 1))
)
)
((== global105 13)
(if (== (gEgo mover?) 0) (gEgo cel: 0))
(switch local1
(1
(gEgo illegalBits: -16384 view: 372)
)
(2048
(gEgo illegalBits: -32768 view: 377)
)
(512
(gEgo illegalBits: -32768 view: 377)
)
(8
(gEgo view: 377 illegalBits: -32768)
)
(2 (self changeState: 10))
(1024
(gEgo illegalBits: -32768 view: 372)
)
(else
(gEgo illegalBits: -15360 view: 377)
)
)
)
)
)
(method (changeState newState)
(switch (= state newState)
(1
(proc0_8)
(= global105 0)
(gEgo
illegalBits: 1
view: 73
cel: 0
loop: (& (gEgo loop?) $0001)
cycleSpeed: 2
setCycle: End self
)
)
(2
(gEgo hide:)
(Print 513 19)
(Print 513 20)
(Timer setReal: self 5)
)
(3 (= global127 1))
(10
(proc0_8)
(= global105 0)
(= newAct (Act new:))
(newAct
view: 193
posn: (gEgo x?) (- (gEgo y?) 5)
loop: 0
cel: 0
ignoreActors:
setCycle: End self
init:
)
((Sound new:) number: 47 play:)
)
(11
(gEgo hide:)
(= global105 0)
(newAct loop: 1 cel: 0 setCycle: End self)
)
(12
(newAct loop: 2 cel: 0 setCycle: Fwd)
(Timer setReal: self 4)
)
(13
(Print 513 21 67 -1 10)
(newAct cel: 0 loop: 3 setCycle: End self)
)
(14
(newAct dispose:)
(Timer setReal: self 5)
)
(15 (= global127 1))
(20
(proc0_8)
(gSounds eachElementDo: #stop 0)
(poofSound play:)
(= newProp (Prop new:))
(newProp
posn: (gEgo x?) (gEgo y?)
setPri: (+ (gEgo priority?) 1)
view: 680
cel: 0
loop: 0
ignoreActors:
setCycle: CT 5 1 self
init:
)
)
(21
(newProp setCycle: End self)
(= global105 13)
(gEgo observeControl: 16384)
(gEgo view: 370)
)
(22
(Timer setReal: self 3)
(newProp dispose:)
)
(23
(gEgo view: 372 setCycle: Walk)
(proc0_9)
)
(30
(proc0_8)
(gSounds eachElementDo: #stop 0)
(poofSound play:)
(= newProp (Prop new:))
(newProp
posn: (gEgo x?) (gEgo y?)
setPri: (+ (gEgo priority?) 1)
view: 680
cel: 0
loop: 0
ignoreActors:
setCycle: CT 5 1 self
init:
)
)
(31
(newProp setCycle: End self)
(= global105 12)
(gEgo view: 2 ignoreControl: 16384 setCycle: Walk)
(proc0_9)
)
(32 (newProp dispose:))
)
)
)
(instance drinking of Script
(properties)
(method (changeState newState)
(switch (= state newState)
(0
(proc0_8)
(= gEgoViewer (gEgo viewer?))
(gEgo viewer: 0 view: 21 cel: 0 setCycle: End self)
)
(1
(= global120 (Print 513 22 67 -1 10 88))
(Timer setReal: self 4)
)
(2 (gEgo setCycle: Beg self))
(3
(proc0_21)
(gEgo view: 2 setCycle: Walk)
(gEgo viewer: gEgoViewer script: gGEgoScript)
(proc0_9)
)
)
)
)

Binary file not shown.

View File

@@ -0,0 +1,702 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 990)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Obj)
(public
proc990_0 0
)
(local
local0
local1
local2
local3
local4
[local5 4] = [{Restore} {__Save__} {Replace} {Replace}]
[local9 4] = [{Select the game that you would like to restore.} {Type the description of this saved game.} {This directory/disk can hold no more saved games. You must replace one of your saved games or use Change Directory to save on a different directory/disk.} {This directory/disk can hold no more saved games. You must replace one of your saved games or use Change Directory to save on a different directory/disk.}]
)
(procedure (proc990_0 param1 &tmp temp0 [temp1 33] [temp34 40])
(asm
code_0732:
pushi 13
pushi 990
pushi 1
pushi 33
pushi 0
pushi 41
pushi 2
lea @temp1
push
lsp param1
callk StrCpy, 4
push
pushi 29
pushi 81
lofsa {OK}
push
pushi 1
pushi 81
lofsa {Cancel}
push
pushi 0
calle Print, 26
sat temp0
not
bnt code_0765
ldi 0
ret
code_0765:
pushi 1
lea @temp1
push
callk StrLen, 2
not
bnt code_0779
pushi 1
lea @temp1
push
callk GetCWD, 2
code_0779:
pushi 1
lea @temp1
push
callk ValidPath, 2
bnt code_0794
pushi 2
lsp param1
lea @temp1
push
callk StrCpy, 4
ldi 1
ret
jmp code_0732
code_0794:
pushi 3
pushi 4
lea @temp34
push
pushi 990
pushi 2
lea @temp1
push
callk Format, 8
push
pushi 33
pushi 0
calle Print, 6
jmp code_0732
ret
)
)
(procedure (localproc_0494)
(return
(cond
((== self Restore) 0)
((localproc_07b3) 1)
(local2 2)
(else 3)
)
)
)
(procedure (localproc_07b3)
(if (< local2 20) (CheckFreeSpace global30))
)
(procedure (localproc_07c2)
(Print 990 3 33 0)
)
(class SysWindow of Obj
(properties
top 0
left 0
bottom 0
right 0
color 0
back 15
priority -1
window 0
type $0000
title 0
brTop 0
brLeft 0
brBottom 190
brRight 320
)
(method (dispose)
(DisposeWindow window)
(super dispose:)
)
(method (open)
(= window
(NewWindow
top
left
bottom
right
title
type
priority
color
back
)
)
)
)
(class SRDialog of Dialog
(properties
elements 0
size 0
text 0
window 0
theItem 0
nsTop 0
nsLeft 0
nsBottom 0
nsRight 0
time 0
timer 0
busy 0
)
(method (init param1 param2 param3)
(= window SysWindow)
(= nsBottom 0)
(if
(==
(= local2 (GetSaveFiles (gGame name?) param2 param3))
-1
)
(return 0)
)
(if (== (= local4 (localproc_0494)) 1)
(editI
text: (StrCpy param1 param2)
font: gSmallFont
setSize:
moveTo: 4 4
)
(self add: editI setSize:)
)
(selectorI
text: param2
font: gSmallFont
setSize:
moveTo: 4 (+ nsBottom 4)
state: 2
)
(= local1 (+ (selectorI nsRight?) 4))
(okI
text: [local5 local4]
setSize:
moveTo: local1 (selectorI nsTop?)
state: (if (== local4 3) 0 else 3)
)
(cancelI
setSize:
moveTo: local1 (+ (okI nsBottom?) 4)
state: (& (cancelI state?) $fff7)
)
(changeDirI
setSize:
moveTo: local1 (+ (cancelI nsBottom?) 4)
state: (& (changeDirI state?) $fff7)
)
(self add: selectorI okI cancelI changeDirI setSize:)
(textI
text: [local9 local4]
setSize: (- (- nsRight nsLeft) 8)
moveTo: 4 4
)
(= local1 (+ (textI nsBottom?) 4))
(self eachElementDo: #move 0 local1)
(self add: textI setSize: center: open: 4 15)
(return 1)
)
(method (doit param1 &tmp temp0 temp1 temp2 temp3 [temp4 361] [temp365 21] [temp386 40])
(asm
pushSelf
lofsa Restore
eq?
bnt code_0265
lap argc
bnt code_0265
lap param1
bnt code_0265
pushi 1
pushi 4
lea @temp386
push
pushi 990
pushi 0
pushi #name
pushi 0
lag gGame
send 4
push
callk Format, 8
push
callk FOpen, 2
sat temp1
push
ldi 65535
eq?
bnt code_025f
ret
code_025f:
pushi 1
lst temp1
callk FClose, 2
code_0265:
pushi #init
pushi 3
lsp param1
lea @temp4
push
lea @temp365
push
self 10
not
bnt code_027e
ldi 65535
ret
code_027e:
lsl local4
dup
ldi 0
eq?
bnt code_0298
lal local2
bnt code_02b5
lofsa okI
jmp code_02b5
lofsa changeDirI
jmp code_02b5
code_0298:
dup
ldi 1
eq?
bnt code_02a5
lofsa editI
jmp code_02b5
code_02a5:
dup
ldi 2
eq?
bnt code_02b2
lofsa okI
jmp code_02b5
code_02b2:
lofsa changeDirI
code_02b5:
toss
sal local0
pushi #doit
pushi 1
push
super Dialog, 6
sal local1
pushi #indexOf
pushi 1
pushi #cursor
pushi 0
lofsa selectorI
send 4
push
lofsa selectorI
send 6
sal local3
push
ldi 18
mul
sat temp3
lsl local1
lofsa changeDirI
eq?
bnt code_037c
pushi 1
lsg global30
call proc990_0, 2
bnt code_027e
pushi 3
pushi #name
pushi 0
lag gGame
send 4
push
lea @temp4
push
lea @temp365
push
callk GetSaveFiles, 6
sal local2
push
ldi 65535
eq?
bnt code_0314
ldi 65535
sat temp2
jmp code_048c
code_0314:
lal local4
sat temp0
pushi 0
call localproc_0494, 0
sal local4
push
dup
ldi 0
eq?
bnt code_032a
jmp code_0370
code_032a:
dup
lat temp0
eq?
bnt code_035b
pushi #contains
pushi 1
lofsa editI
push
self 6
bnt code_0370
pushi #cursor
pushi 1
pushi 1
pushi 2
lsp param1
lea @temp4
push
callk StrCpy, 4
push
callk StrLen, 2
push
pushi 83
pushi 0
lofsa editI
send 10
jmp code_0370
code_035b:
pushi #dispose
pushi 0
pushi 87
pushi 3
lsp param1
lea @temp4
push
lea @temp365
push
self 14
code_0370:
toss
pushi #draw
pushi 0
lofsa selectorI
send 4
jmp code_027e
code_037c:
lsl local4
ldi 2
eq?
bnt code_03b2
lsl local1
lofsa okI
eq?
bnt code_03b2
pushi #doit
pushi 1
pushi 2
lsp param1
lat temp3
leai @temp4
push
callk StrCpy, 4
push
lofsa GetReplaceName
send 6
bnt code_027e
lal local3
lati temp365
sat temp2
jmp code_048c
jmp code_027e
code_03b2:
lsl local4
ldi 1
eq?
bnt code_0433
lsl local1
lofsa okI
eq?
bt code_03cc
lsl local1
lofsa editI
eq?
bnt code_0433
code_03cc:
pushi 1
lsp param1
callk StrLen, 2
push
ldi 0
eq?
bnt code_03e1
pushi 0
call localproc_07c2, 0
jmp code_027e
code_03e1:
ldi 65535
sat temp2
ldi 0
sal local1
code_03e9:
lsl local1
lal local2
lt?
bnt code_040b
pushi 2
lsp param1
lsl local1
ldi 18
mul
leai @temp4
push
callk StrCmp, 4
sat temp2
not
bnt code_0406
code_0406:
+al local1
jmp code_03e9
code_040b:
lat temp2
not
bnt code_0419
lal local1
lati temp365
jmp code_042b
code_0419:
lsl local2
ldi 20
eq?
bnt code_0429
lal local3
lati temp365
jmp code_042b
code_0429:
lal local2
code_042b:
sat temp2
jmp code_048c
jmp code_027e
code_0433:
lsl local1
lofsa okI
eq?
bnt code_0449
lal local3
lati temp365
sat temp2
jmp code_048c
jmp code_027e
code_0449:
lsl local1
ldi 0
eq?
bt code_045a
lsl local1
lofsa cancelI
eq?
bnt code_0464
code_045a:
ldi 65535
sat temp2
jmp code_048c
jmp code_027e
code_0464:
lsl local4
ldi 1
eq?
bnt code_027e
pushi #cursor
pushi 1
pushi 1
pushi 2
lsp param1
lat temp3
leai @temp4
push
callk StrCpy, 4
push
callk StrLen, 2
push
pushi 83
pushi 0
lofsa editI
send 10
jmp code_027e
code_048c:
pushi #dispose
pushi 0
self 4
lat temp2
ret
)
)
)
(class Restore of SRDialog
(properties
elements 0
size 0
text {Restore a Game}
window 0
theItem 0
nsTop 0
nsLeft 0
nsBottom 0
nsRight 0
time 0
timer 0
busy 0
)
)
(class Save of SRDialog
(properties
elements 0
size 0
text {Save a Game}
window 0
theItem 0
nsTop 0
nsLeft 0
nsBottom 0
nsRight 0
time 0
timer 0
busy 0
)
)
(instance GetReplaceName of Dialog
(properties)
(method (doit param1 &tmp temp0)
(= window SysWindow)
(text1 setSize: moveTo: 4 4)
(self add: text1 setSize:)
(oldName
text: param1
font: gSmallFont
setSize:
moveTo: 4 nsBottom
)
(self add: oldName setSize:)
(text2 setSize: moveTo: 4 nsBottom)
(self add: text2 setSize:)
(newName
text: param1
font: gSmallFont
setSize:
moveTo: 4 nsBottom
)
(self add: newName setSize:)
(button1 nsLeft: 0 nsTop: 0 setSize:)
(button2 nsLeft: 0 nsTop: 0 setSize:)
(button2
moveTo: (- nsRight (+ (button2 nsRight?) 4)) nsBottom
)
(button1
moveTo: (- (button2 nsLeft?) (+ (button1 nsRight?) 4)) nsBottom
)
(self add: button1 button2 setSize: center: open: 0 15)
(= temp0 (super doit: newName))
(self dispose:)
(if (not (StrLen param1))
(localproc_07c2)
(= temp0 0)
)
(return (if (== temp0 newName) else (== temp0 button1)))
)
)
(instance selectorI of DSelector
(properties
x 36
y 8
)
)
(instance editI of DEdit
(properties
max 35
)
)
(instance okI of DButton
(properties)
)
(instance cancelI of DButton
(properties
text { Cancel_}
)
)
(instance changeDirI of DButton
(properties
text {Change\0D\0ADirectory}
)
)
(instance textI of DText
(properties
font 0
)
)
(instance text1 of DText
(properties
text {Replace}
font 0
)
)
(instance text2 of DText
(properties
text {with:}
font 0
)
)
(instance oldName of DText
(properties)
)
(instance newName of DEdit
(properties
max 35
)
)
(instance button1 of DButton
(properties
text {Replace}
)
)
(instance button2 of DButton
(properties
text {Cancel}
)
)

Binary file not shown.

View File

@@ -0,0 +1,37 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 302)
(include sci.sh)
(use Main)
(use Class_255_0)
(use User)
(use Obj)
(public
timeOut 0
)
(instance timeOut of Script
(properties)
(method (changeState newState)
(switch (= state newState)
(0
(= global204 1)
(gEgo setMotion: 0)
(gCast eachElementDo: #hide)
(User canControl: 0 canInput: 0)
(DrawPic 991 dpOPEN_CHECKBOARD)
(Timer setReal: self 5)
)
(1
(= global120 (Print 302 0 88))
(Timer setReal: self 15)
)
(2
(if gModelessDlg (gModelessDlg dispose:))
(= global204 0)
(= global127 1)
)
)
)
)

Binary file not shown.

View File

@@ -0,0 +1,138 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 996)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Sound)
(use Cycle)
(use MenuBar)
(use Obj)
(local
[local0 23]
local23
)
(class User of Obj
(properties
alterEgo 0
canInput 0
controls 0
echo 32
prevDir 0
prompt {Enter input}
inputLineAddr 0
x -1
y -1
blocks 1
mapKeyToDir 1
)
(method (init param1 param2)
(= inputLineAddr (if argc param1 else @local0))
(= local23 (if (== argc 2) param2 else 45))
)
(method (doit &tmp newEvent newEventType newEventMessage)
(if ((= newEvent (Event new:)) type?)
(= gLastEvent newEvent)
(= newEventType (newEvent type?))
(if mapKeyToDir (MapKeyToDir newEvent))
(if TheMenuBar (TheMenuBar handleEvent: newEvent))
(GlobalToLocal newEvent)
(gGame handleEvent: newEvent)
(if (not (newEvent claimed?))
(switch (newEvent type?)
(1
(if
(and
controls
(IsObject alterEgo)
(gCast contains: alterEgo)
)
(alterEgo setMotion: MoveTo (newEvent x?) (newEvent y?))
(= prevDir 0)
(newEvent claimed: 1)
)
)
(64
(if
(and
controls
(IsObject alterEgo)
(gCast contains: alterEgo)
)
(= newEventMessage (newEvent message?))
(if
(and
(== newEventType 4)
(== newEventMessage prevDir)
(IsObject (alterEgo mover?))
)
(= newEventMessage 0)
)
(= prevDir
(if (== newEventType 4) newEventMessage else 0)
)
(alterEgo setDirection: newEventMessage)
(newEvent claimed: 1)
)
)
(else
(gCast handleEvent: newEvent)
)
)
)
(if
(and
(not (newEvent claimed?))
(== (newEvent type?) 4)
(or
(== (newEvent message?) echo)
(and
(<= 32 (newEvent message?))
(<= (newEvent message?) 127)
)
)
canInput
(self getInput: newEvent)
(Parse @local0 newEvent)
)
(newEvent type: 128)
(self said: newEvent)
)
)
(newEvent dispose:)
(= gLastEvent 0)
)
(method (canControl theControls)
(if argc (= controls theControls) (= prevDir 0))
(return controls)
)
(method (getInput param1 &tmp temp0 temp1)
(if (!= (param1 type?) 4) (= local0 0))
(if (!= (param1 message?) echo)
(Format @local0 996 0 (param1 message?))
)
(= temp0 (Sound pause: blocks))
(= temp1 (EditPrint @local0 local23 prompt 67 x y))
(Sound pause: temp0)
(return temp1)
)
(method (said param1)
(if TheMenuBar (gSFeatures addToFront: TheMenuBar))
(if global54
(__proc984_0 alterEgo gSFeatures gCast gFeatures)
else
(gSFeatures add: gCast gFeatures)
)
(gSFeatures addToEnd: gGame handleEvent: param1 release:)
(if
(and (== (param1 type?) 128) (not (param1 claimed?)))
(gGame pragmaFail: @local0)
)
)
)

Binary file not shown.

View File

@@ -0,0 +1,64 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 501)
(include sci.sh)
(use Main)
(use Cycle)
(use Game)
(use Obj)
(public
waterReg 0
)
(local
local0
local1
)
(instance waterReg of Rgn
(properties)
(method (init)
(super init:)
(Load rsVIEW 5)
(Load rsVIEW 6)
(Load rsVIEW 7)
(Load rsVIEW 8)
(gEgo viewer: water)
)
)
(instance water of Script
(properties)
(method (doit)
(if (!= (= local0 (gEgo onControl: 1)) local1)
(= local1 local0)
(if (!= global105 14)
(gEgo setCycle: Walk)
(switch local0
(1
(= global105 0)
(gEgo view: 2 setStep: 3 2)
)
(2048
(= global105 1)
(gEgo view: 5)
)
(512
(= global105 2)
(gEgo view: 6)
)
(8
(gEgo view: 7)
(= global105 3)
)
(2
(gEgo view: 8)
(= global105 4)
(gEgo setCycle: Fwd)
)
)
)
)
)
)

Binary file not shown.

View File

@@ -0,0 +1,103 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 301)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Sound)
(use Cycle)
(use User)
(use Feature)
(use Obj)
(public
wearCrown 0
)
(local
gEgoViewer
)
(instance poofSound of Sound
(properties)
)
(instance wearCrown of Script
(properties)
(method (init)
(= global204 1)
(Load rsVIEW 370)
(Load rsVIEW 687)
(super init:)
)
(method (changeState newState)
(switch (= state newState)
(0
(if (== global189 1)
(Print 301 0)
(gEgo script: gGEgoScript)
(DisposeScript 301)
(return)
else
(proc0_8)
(self changeState: 1)
)
)
(1
(= gEgoViewer (gEgo viewer?))
(gSounds eachElementDo: #stop 0)
(poofSound number: 59 play:)
(User canControl: 0 canInput: 0)
(= gGEgoView (gEgo view?))
(= gNewProp (Prop new:))
(gNewProp
x: (gEgo x?)
y: (gEgo y?)
view: 687
loop: 0
ignoreActors:
setPri: (+ (gEgo priority?) 1)
cel: 0
setCycle: CT 3 1 self
init:
)
)
(2
(gNewProp setCycle: End self)
(gEgo viewer: 0 view: 370 cycleSpeed: 2 setCycle: Fwd)
)
(3
(Timer setReal: self 5)
(gNewProp hide:)
(Print 301 1)
)
(4
(Print 301 2)
(poofSound number: 59 play:)
(gNewProp
x: (gEgo x?)
y: (gEgo y?)
show:
cel: 10
setCycle: CT 3 -1 self
)
)
(5
(gEgo view: gGEgoView cycleSpeed: 0 setCycle: Walk)
(gNewProp setCycle: Beg self)
)
(6 (= cycles 2))
(7
(if (== (poofSound state?) 3)
(self changeState: 6)
else
(poofSound dispose:)
(gNewProp dispose:)
(gEgo viewer: gEgoViewer script: gGEgoScript)
(proc0_9)
(DisposeScript 301)
)
)
)
)
)

Binary file not shown.

View File

@@ -0,0 +1,118 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 507)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Cycle)
(use Game)
(use Feature)
(use Obj)
(public
Woods_Region 0
)
(local
local0
)
(instance Woods_Region of Rgn
(properties
name "Woods Region"
)
(method (init)
(if (== (Random 1 5) 4)
(= gNewAct_4 (Act new:))
(gNewAct_4
view: 356
ignoreHorizon:
illegalBits: 0
ignoreActors:
setPri: 14
setScript: ravenActions
)
(if (== (Random 1 2) 1)
(gNewAct_4
posn: 5 30
xStep: 5
yStep: 4
setCycle: Fwd
setMotion: MoveTo 339 20 gNewAct_4
init:
)
else
(gNewAct_4
posn: 314 20
xStep: 5
yStep: 4
setCycle: Fwd
setMotion: MoveTo -20 40 gNewAct_4
init:
)
)
)
(super init:)
)
(method (handleEvent pEvent)
(if (pEvent claimed?) (return 1))
(return
(if (== (pEvent type?) evSAID)
(cond
((Said 'look>')
(cond
((Said '/boulder') (Print 507 0))
((Said '/flora') (Print 507 1))
((Said '/dirt,down') (Print 507 2))
((Said '/bush') (Print 507 3))
((Said '/grass') (Print 507 4))
((Said '/blossom') (Print 507 5))
((Said '/forest') (Print 507 6))
((Said '/crow,bird,crow')
(if (gCast contains: gNewAct_4)
(Print 507 7)
else
(Print 507 8)
)
)
)
)
((Said 'climb/boulder') (Print 507 9))
((Said 'get/blossom') (Print 507 10))
((Said 'climb/forest') (Print 507 11))
((Said 'converse/crow,bird,crow')
(if (gCast contains: gNewAct_4)
(Print 507 12)
else
(Print 507 13)
)
)
((Said 'get,capture/crow,bird,crow')
(if (gCast contains: gNewAct_4)
(Print 507 14)
else
(Print 507 15)
)
)
((Said 'kiss/crow,bird,crow')
(if (gCast contains: gNewAct_4)
(Print 507 16)
else
(Print 507 15)
)
)
)
else
0
)
)
)
)
(instance ravenActions of Script
(properties)
(method (cue)
(gNewAct_4 dispose:)
)
)

View File

@@ -0,0 +1,9 @@
/*************************************************************************
* SCI Game Header
*************************************************************************
* Put all the defines specific to your game in here
*************************************************************************/
// e.g.
// (define MAIN_SCRIPT 0)
// (define MENU_ABOUT $101)

View File

@@ -0,0 +1,283 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 505)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Cycle)
(use Game)
(use InvI)
(use Feature)
(use Obj)
(public
gfReg 0
)
(synonyms
(ocean seawater ocean)
)
(local
local0
local1
local2
newView
newAct
)
(instance gfReg of Rgn
(properties)
(method (init)
(super init:)
(switch gCurRoomNum
(33
(= local1 198)
(= local0 155)
)
(34
(= local1 172)
(= local0 133)
)
(35
(= local1 126)
(= local0 144)
)
(39
(= local1 224)
(= local0 113)
)
(40
(= local1 241)
(= local0 117)
)
(41
(= local1 102)
(= local0 109)
)
)
(if (< (Random 1 100) 75)
(= local2 (+ (Random 1 3) 32))
else
(= local2 (+ (Random 1 3) 38))
)
(if ((Inv at: 8) ownedBy: 888)
((Inv at: 8) moveTo: local2)
)
(if ((Inv at: 8) ownedBy: gCurRoomNum)
((= newView (View new:))
view: 514
posn: local1 local0
loop: 0
cel: 0
init:
stopUpd:
)
)
(if (and (<= (Random 1 100) 40) (> local1 0))
(Load rsVIEW 337)
(= newAct (Act new:))
(newAct
view: 336
moveSpeed: 1
cycleSpeed: 1
setCycle: Walk
setMotion: Wander 30000
illegalBits: -2
posn: local1 (- local0 4)
init:
setScript: peacockActions
setStep: 1 1
)
)
)
(method (doit)
(if
(and
(gCast contains: newAct)
(not (newAct inRect: -10 50 329 199))
)
(newAct dispose:)
)
)
(method (dispose)
(gTimers eachElementDo: #dispose 84)
(super dispose:)
)
(method (handleEvent pEvent)
(if (pEvent claimed?) (return 1))
(return
(if (== (pEvent type?) evSAID)
(cond
((Said 'look>')
(cond
((Said '/beach,beach')
(if ((Inv at: 8) ownedBy: gCurRoomNum)
(Print 505 0)
else
(Print 505 1)
)
)
((Said '/feather')
(cond
((gCast contains: newView) (Print 505 2))
((gEgo has: 8) ((Inv at: 8) showSelf:))
(else (Print 505 3))
)
)
((Said '/tamir') (Print 505 4))
((Said '<in,under/ocean,water')
(if (!= (gEgo view?) 2)
(Print 505 5)
else
(Print 505 6)
)
)
((Said '/ocean,water') (Print 505 7))
((or (Said '/dirt') (Said '<down'))
(cond
(((Inv at: 8) ownedBy: gCurRoomNum) (Print 505 0))
((and (>= gCurRoomNum 36) (<= gCurRoomNum 38)) (Print 505 8))
(else (Print 505 9))
)
)
((Said '/boulder') (Print 505 10))
((Said '/forest') (Print 505 11))
((Said '/grass') (Print 505 12))
((Said '/bush') (Print 505 13))
((Said '/flora') (Print 505 14))
((Said '/blossom') (Print 505 15))
((Said '/garden') (Print 505 16))
((Said '/castle') (Print 505 17))
((Said '/peacock')
(if (gCast contains: newAct)
(Print 505 18)
else
(Print 505 19)
)
)
((Said '/bird')
(if (gCast contains: newAct)
(Print 505 18)
else
(pEvent claimed: 0)
)
)
)
)
((Said 'climb/forest') (Print 505 20))
((Said 'converse>')
(cond
((Said '/peacock')
(if (gCast contains: newAct)
(Print 505 21)
else
(Print 505 19)
)
)
((Said '/bird')
(if (gCast contains: newAct)
(Print 505 21)
else
(pEvent claimed: 0)
)
)
)
)
((Said 'get/feather')
(cond
(((Inv at: 8) ownedBy: gCurRoomNum)
(if (< (gEgo distanceTo: newView) 15)
(gEgo get: 8)
(gGame changeScore: 2)
(gEgo setScript: getFeather)
else
(Print 800 1)
)
)
((gEgo has: 8) (pEvent claimed: 0))
(else (Print 505 22))
)
)
((Said 'get/blossom') (Print 505 23))
((Said 'get,capture/peacock')
(if (gCast contains: newAct)
(Print 505 24)
else
(Print 505 3)
)
)
((Said 'get,capture/bird,parrot') (Print 505 25))
((Said 'kiss')
(if (gCast contains: newAct)
(Print 505 26)
else
(pEvent claimed: 0)
)
)
)
else
0
)
)
)
)
(instance getFeather of Script
(properties)
(method (changeState newState)
(switch (= state newState)
(0
(proc0_8)
(gEgo view: 21)
(proc0_3 gEgo newView)
(gEgo setCycle: End self)
)
(1
(gEgo setCycle: Beg self)
(= global182 1)
(newView dispose:)
)
(2
(gEgo view: 2 setScript: 0 setCycle: Walk)
(proc0_9)
)
)
)
)
(instance peacockActions of Script
(properties)
(method (changeState newState)
(switch (= state newState)
(0
((ScriptID 0 4) setReal: self (Random 10 40))
)
(1
(newAct
view: 337
setLoop: 0
setMotion: 0
cel: 0
setCycle: End self
)
)
(2
((ScriptID 0 4) setReal: self 4)
)
(3 (newAct setCycle: Beg self))
(4
(newAct
view: 336
setLoop: -1
setCycle: Walk
setMotion: Wander 30000
)
(self changeState: 0)
)
)
)
)

Binary file not shown.

View File

@@ -0,0 +1,239 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 307)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Sound)
(use Cycle)
(use Feature)
(use Obj)
(public
openPbox 0
)
(local
local0
)
(instance openPbox of Script
(properties)
(method (init param1)
(Load rsVIEW 40)
(Load rsVIEW 21)
(Load rsVIEW 519)
(Load rsVIEW 43)
(Load rsVIEW 685)
(Load rsVIEW 684)
(super init: param1)
(proc0_8)
)
(method (changeState newState)
(switch (= state newState)
(0
(Print 307 0 67 -1 10 25 6)
(gEgo viewer: 0)
(if global101 (gEgo view: 40) else (gEgo view: 21))
(gEgo cel: 0 loop: 0 setCycle: End self)
)
(1
((Sound new:) number: 58 play:)
(gEgo
view: 43
loop: (if global101 0 else 2)
cel: 0
setCycle: End
)
(aBox
loop: (if global101 1 else 3)
cel: 0
x: (if global101 (+ (gEgo x?) 30) else (+ (gEgo x?) 24))
y: (gEgo y?)
init:
setCycle: End self
)
(ills
posn: (aBox x?) (- (aBox y?) 5)
ignoreHorizon: 1
ignoreActors: 1
setPri: (aBox priority?)
init:
setLoop: 6
setCycle: End
)
(Print 307 1 33 gSmallFont 67 5 10 70 120 88)
)
(2
(smokeFirst
posn: (aBox x?) (- (aBox y?) 5)
ignoreHorizon: 1
ignoreActors: 1
setPri: (aBox priority?)
init:
setLoop: 0
moveSpeed: 1
setCycle: End self
)
)
(3
(ills hide:)
((ills new:)
posn: (aBox x?) (- (aBox y?) 5)
ignoreHorizon: 1
ignoreActors: 1
setPri: (aBox priority?)
init:
setLoop: 0
setCycle: Fwd
setMotion: MoveTo (* 10 (Random 0 32)) -10
)
((ills new:)
posn: (aBox x?) (- (aBox y?) 5)
ignoreHorizon: 1
ignoreActors: 1
setPri: (aBox priority?)
init:
setLoop: 1
setCycle: Fwd
setMotion: MoveTo (Random 0 320) -10
)
((ills new:)
posn: (aBox x?) (- (aBox y?) 5)
ignoreHorizon: 1
ignoreActors: 1
setPri: (aBox priority?)
init:
setLoop: 2
setCycle: Fwd
setMotion: MoveTo (Random 0 320) -10
)
((ills new:)
posn: (aBox x?) (- (aBox y?) 5)
ignoreHorizon: 1
ignoreActors: 1
setPri: (aBox priority?)
init:
setLoop: 3
setCycle: Fwd
setMotion: MoveTo (Random 0 320) -10
)
((ills new:)
posn: (aBox x?) (- (aBox y?) 5)
ignoreHorizon: 1
ignoreActors: 1
setPri: (aBox priority?)
init:
setLoop: 4
setCycle: Fwd
setMotion: MoveTo (Random 0 320) -10
)
((ills new:)
posn: (aBox x?) (- (aBox y?) 5)
ignoreHorizon: 1
ignoreActors: 1
setPri: (aBox priority?)
init:
setLoop: 5
setCycle: Fwd
setMotion: MoveTo (Random 0 320) -10
)
(smokeFirst
setLoop: 1
setCycle: Fwd
setMotion: MoveTo (aBox x?) (- (aBox y?) 20) self
)
)
(4
((smokes new:)
posn: (smokeFirst x?) (smokeFirst y?)
setPri: (aBox priority?)
init:
setLoop: 2
setMotion: MoveTo (* 10 (Random 10 20)) -10
)
((smokes new:)
posn: (smokeFirst x?) (smokeFirst y?)
setPri: (aBox priority?)
init:
setLoop: 3
moveSpeed: 1
setMotion: MoveTo (* 10 (Random 10 20)) -10
)
((smokes new:)
posn: (smokeFirst x?) (smokeFirst y?)
setPri: (aBox priority?)
init:
setLoop: 4
setMotion: MoveTo (* 10 (Random 10 20)) -10
)
((smokes new:)
posn: (smokeFirst x?) (smokeFirst y?)
setPri: (aBox priority?)
init:
setLoop: 5
setMotion: MoveTo (* 10 (Random 10 20)) -10
)
(smokeFirst hide:)
((ScriptID 0 6) setReal: self 10)
)
(5
(gEgo
loop: (if global101 1 else 3)
cycleSpeed: 2
setCycle: End
)
(proc0_21)
((ScriptID 0 6) setReal: self 10)
)
(6 (= global127 1))
)
)
)
(instance aBox of Prop
(properties
view 519
)
)
(instance smokeFirst of Act
(properties
view 685
illegalBits $0000
)
(method (init param1)
(super init: param1)
(self
ignoreHorizon: 1
ignoreActors: 1
moveSpeed: 1
setCycle: Fwd
)
)
)
(instance smokes of Act
(properties
view 685
illegalBits $0000
)
(method (init param1)
(super init: param1)
(self
ignoreHorizon: 1
ignoreActors: 1
moveSpeed: 1
setCycle: Fwd
)
)
)
(instance ills of Act
(properties
view 684
illegalBits $0000
)
)

Binary file not shown.

View File

@@ -0,0 +1,413 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 604)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Avoid)
(use Sound)
(use Cycle)
(use Game)
(use User)
(use Feature)
(use Obj)
(public
regBFCastle 0
)
(local
newAct_2
newProp
newAct
local3
)
(instance henchCatchMusic of Sound
(properties
number 42
)
)
(instance henchChaseMusic of Sound
(properties
number 41
)
)
(instance regBFCastle of Rgn
(properties)
(method (init)
(= keep 1)
(Load rsVIEW 355)
(Load rsVIEW 356)
(Load rsVIEW 358)
(= global189 1)
(if (< global109 5) (= local3 92))
(if (not global223) (= local3 0))
(super init:)
)
(method (doit)
(if
(and
(!= global105 16)
global169
(== (gEgo script?) 0)
(gCast contains: newAct)
(== (newAct script?) 0)
(or
(and
(or (== gCurRoomNum 92) (== gCurRoomNum 91))
(< (gEgo y?) 140)
(< (gEgo distanceTo: newAct) 45)
(> (Random 1 1000) 996)
)
(< (gEgo distanceTo: newAct) 20)
)
)
(newAct setScript: henchChaseReg)
)
(super doit:)
)
(method (dispose)
(if (gCast contains: newAct)
(newAct setMotion: 0 setCycle: 0)
)
(if (== keep 0) (= global189 0) (super dispose:))
)
(method (handleEvent pEvent &tmp temp0)
(super handleEvent: pEvent)
(return
(cond
((pEvent claimed?) (return 1))
((== (pEvent type?) evSAID)
(cond
((Said 'blow/whistle') (if (gEgo has: 27) (Print 604 0) else (proc0_17)))
((Said 'look/wall') (Print 604 1))
(
(and
(gCast contains: newAct)
(Said 'converse[/goon,man]')
)
(if (and global169 (not global175))
(if (< (gEgo distanceTo: newAct) 40)
(newAct setScript: henchChaseReg)
else
(Print 604 2)
)
else
(Print 604 3 67 -1 10)
)
)
((Said '/goon,man>')
(cond
((not (gCast contains: newAct)) (Print 604 4) (pEvent claimed: 1))
((Said 'look')
(if (and global169 (not global175))
(Print 604 5)
else
(Print 604 6 67 -1 10)
)
)
((Said 'awaken')
(if (and global169 (not global175))
(if (< (gEgo distanceTo: newAct) 40)
(newAct setScript: henchChaseReg)
else
(Print 604 2)
)
else
(Print 604 7)
)
)
((Said 'get,capture') (Print 604 8))
((Said 'kiss') (Print 604 9))
((Said 'deliver') (Print 604 10) (pEvent claimed: 1))
)
)
((Said '/bird,crow>')
(cond
((not (gCast contains: newAct_2)) (Print 604 11) (pEvent claimed: 1))
((Said 'look') (Print 604 12))
((Said 'converse') (Print 604 13))
((Said 'get,capture') (Print 604 14))
((Said 'kiss') (Print 604 15))
((Said 'deliver') (Print 604 16) (pEvent claimed: 1))
)
)
)
)
)
)
)
(method (newRoom newRoomNumber)
(henchChaseReg seconds: 0)
(super newRoom: newRoomNumber)
)
(method (notify param1)
(initializeRoom changeState: param1)
)
)
(instance initializeRoom of Script
(properties)
(method (changeState newState)
(switch (= state newState)
(0
(henchChaseReg state: 0)
(if
(and
(or (== gCurRoomNum 91) (== gCurRoomNum 92))
global223
)
((= newProp (Prop new:))
view: 358
loop: 0
cel: 0
posn:
(switch gCurRoomNum
(91 258)
(92 275)
)
(switch gCurRoomNum
(91 136)
(92 156)
)
init:
stopUpd:
setScript: ravenStuff
)
)
(if
(and
(> global109 3)
global169
(or
(== gCurRoomNum 90)
(== gCurRoomNum 91)
(== gCurRoomNum 92)
(== gCurRoomNum 93)
)
)
((= newAct (Act new:))
view: 145
loop: 4
cel: (if (== gCurRoomNum 90) 1 else 0)
posn:
(switch gCurRoomNum
(90 188)
(91 210)
(92 200)
(93 124)
)
(switch gCurRoomNum
(90 128)
(91 119)
(92 128)
(93 129)
)
init:
setAvoider: Avoid
stopUpd:
)
)
)
)
)
)
(instance ravenStuff of Script
(properties)
(method (doit)
(if
(and
(== gCurRoomNum local3)
(not (gCast contains: newAct_2))
)
(self changeState: 0)
)
(if
(and
(gCast contains: newAct_2)
(!= (newAct_2 priority?) (newProp priority?))
)
(newAct_2 setPri: (CoordPri (newProp y?)))
)
(super doit:)
)
(method (changeState newState)
(switch (= state newState)
(0
(if
(and
(not (gCast contains: newAct_2))
(== gCurRoomNum local3)
(or (== gCurRoomNum 91) (== gCurRoomNum 92))
)
((= newAct_2 (Act new:))
view: 356
ignoreActors: 1
illegalBits: 0
xStep: 6
yStep: 2
posn:
(switch gCurRoomNum
(91 316)
(92 51)
)
(switch gCurRoomNum
(91 90)
(92 81)
)
init:
)
(newAct_2
setPri: (+ (newProp priority?) 1)
setCycle: Fwd
setMotion: MoveTo (newProp x?) (- (newProp y?) 60) self
)
else
(self changeState: 5)
)
)
(1
(newAct_2
setPri: (newProp priority?)
setMotion: MoveTo (newProp x?) (- (newProp y?) 40) self
)
)
(2
(newAct_2
view: 355
loop: 3
setMotion: 0
setScript: preenShit
)
(= seconds 30)
)
(3
(newAct_2 setScript: 0 setCycle: 0)
(newAct_2 cel: 0 loop: 2 setCycle: End self)
)
(4
(newAct_2
setScript: 0
view: 356
setPri: 11
setLoop: -1
setCycle: Fwd
setMotion:
MoveTo
(switch gCurRoomNum
(91 316)
(92 53)
)
(switch gCurRoomNum
(91 103)
(92 81)
)
self
)
)
(5
(if (gCast contains: newAct_2) (newAct_2 dispose:))
(cond
((== local3 92) (= local3 91))
(global223 (= local3 92))
)
(self cue:)
)
(6 (= state -1) (= seconds 30))
)
)
)
(instance preenShit of Script
(properties)
(method (init param1)
(super init: param1)
)
(method (changeState newState)
(switch (= state newState)
(0
(switch (/ (Random 0 59) 10)
(1
(newAct_2 loop: 0 setCycle: End self)
)
(2
(newAct_2 loop: 1 setCycle: End self)
)
(else (self cue:))
)
)
(1
(newAct_2 loop: 3)
(= seconds 4)
)
(2 (= state -1) (self cue:))
)
)
)
(instance henchChaseReg of Script
(properties)
(method (changeState newState)
(switch (= state newState)
(0
(newAct loop: 2 setCycle: End self)
)
(1
(newAct loop: 0 setCycle: End self)
)
(2
(= global175 1)
(if (not (gCast contains: newAct))
(newAct
setStep: 6 3
posn:
(switch gCurRoomNum
(93 (- (gEgo x?) 30))
(91 (+ (gEgo x?) 30))
)
(gEgo y?)
init:
)
)
(newAct
view: 141
ignoreActors: 1
setStep: 6 3
setCycle: Walk
setMotion: Chase gEgo 15 self
)
(henchChaseMusic play:)
)
(3
(User canControl: 0 canInput: 0)
(gEgo moveSpeed: 0 setMotion: 0)
(henchChaseMusic dispose:)
(henchCatchMusic play:)
(= seconds 4)
)
(4
(henchCatchMusic dispose:)
(if (== gCurRoomNum gNewRoomNumber_2)
(= global205 1)
(gRoom newRoom: 81)
else
(User canControl: 1 canInput: 1)
)
)
)
)
)

View File

@@ -0,0 +1,45 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 601)
(include sci.sh)
(use Main)
(use Sound)
(use Game)
(public
regDwarfHouse 0
)
(synonyms
(dwarf ass man person)
)
(instance theSound of Sound
(properties
number 62
loop -1
)
)
(instance regDwarfHouse of Rgn
(properties)
(method (init)
(if initialized (return))
(super init:)
(Load rsVIEW 290)
(Load rsSOUND 62)
(= global189 (= keep 1))
(theSound owner: self init:)
)
(method (dispose)
(if (not keep) (= global189 0) (super dispose:))
)
(method (notify param1)
(if param1
(theSound play:)
else
(theSound client: 0 stop:)
)
)
)

View File

@@ -0,0 +1,89 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 602)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Game)
(use Obj)
(public
regOgreHouse 0
)
(synonyms
(giant troll man)
(giantess ass giantess fishwife)
)
(instance regOgreHouse of Rgn
(properties)
(method (init)
(if initialized (return))
(= keep 1)
(super init:)
(if (not global166) (self setScript: ogreHere))
(= global189 1)
)
(method (doit)
(super doit:)
)
(method (dispose)
(if (== keep 0) (= global189 0) (super dispose:))
)
(method (newRoom newRoomNumber)
(if
(and
(== newRoomNumber 49)
(== gCurRoomNum 48)
(== (ogreHere state?) 0)
)
(ogreHere seconds: 90)
)
(if (and (== newRoomNumber 51) (gEgo has: 33))
(ogreHere changeState: 3)
)
)
)
(instance ogreHere of Script
(properties)
(method (changeState newState)
(switch (= state newState)
(0 (= seconds 50))
(1
(if (and (!= gCurRoomNum 51) (!= gCurRoomNum 48))
(Print 602 0 25 5)
)
(if (== gCurRoomNum 48)
(= seconds 60)
else
(= seconds 10)
)
)
(2
(= global165 1)
(if (== gCurRoomNum 51)
(Print 602 1)
(= seconds 60)
)
)
(3
(if (not global166)
(= global165 2)
(if (== gCurRoomNum 51) (Print 602 2))
)
(= seconds 60)
)
(4
(if (and (== gCurRoomNum 51) (not global166))
(= global165 5)
(Print 602 3)
)
)
)
)
)

View File

@@ -0,0 +1,278 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 514)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Avoid)
(use Sound)
(use Cycle)
(use Game)
(use InvI)
(use Feature)
(use Obj)
(public
regPan 0
)
(synonyms
(kiss kiss embrace)
(pan pan pan man pan pan person animal pan)
)
(local
local0
local1
local2
newProp_2
newProp
local5
)
(instance panCage of Cage
(properties)
)
(instance panTheme of Sound
(properties)
)
(instance luteMusic of Sound
(properties
number 54
)
)
(instance regPan of Rgn
(properties)
(method (init)
(super init:)
(if ((Inv at: 0) ownedBy: 201)
(= local0 157)
(= local5
(+
(* (- global160 global211) 60)
(- global159 global212)
)
)
(if (and (<= (Random 1 100) 40) (>= local5 2))
(panCage
left: 0
right: 319
bottom: 189
top: (gRoom horizon?)
init:
)
(Load rsVIEW 157)
(if (gEgo has: 9) (Load rsVIEW 54) (Load rsVIEW 150))
(= gNewAct_5 (Act new:))
(gNewAct_5
posn: (Random 10 300) (Random (+ (gRoom horizon?) 20) 169)
xStep: 2
yStep: 1
setCycle: Fwd
observeBlocks: panCage
setScript: panActions
setMotion: Wander 1500
view: local0
init:
yourself:
)
(= newProp (Prop new:))
(newProp
view: 888
cycleSpeed: 1
ignoreActors:
setCycle: Fwd
init:
)
(panTheme number: 7 loop: -1 play:)
else
(= gNewAct_5 0)
)
else
(= gNewAct_5 0)
)
)
(method (doit)
(super doit:)
(if (gCast contains: gNewAct_5)
(if
(or
(== (gNewAct_5 view?) 158)
(== (gNewAct_5 view?) 157)
)
(newProp
setPri: (gNewAct_5 priority?)
x: (+ (gNewAct_5 x?) 8)
y: (- (gNewAct_5 y?) 22)
)
)
(if (not (gNewAct_5 inRect: 0 0 319 219))
(gNewAct_5 dispose:)
(if (IsObject newProp) (newProp dispose:))
(panTheme loop: 1 changeState:)
)
)
)
(method (dispose)
((ScriptID 0 4) dispose: delete:)
(super dispose:)
)
(method (handleEvent pEvent &tmp gInvSaidMe)
(if (pEvent claimed?) (return 1))
(return
(if
(and
(== (pEvent type?) evSAID)
(gCast contains: gNewAct_5)
)
(cond
((Said 'play/lute')
(if (gEgo has: 9)
(if (== (gNewAct_5 view?) 157)
(gEgo setScript: playLute)
(playLute changeState: 1)
else
(Print 514 0)
)
else
(Print 800 2)
)
)
((Said 'play/flute')
(if (gEgo has: 0)
(if (== (panTheme state?) 3)
(Print 514 1)
else
(pEvent claimed: 0)
)
else
(Print 800 2)
)
)
((Said 'hum') (Print 514 2))
((Said 'kill/pan') (Print 514 3))
((Said 'play<with/pan') (Print 514 4))
((Said 'dance') (Print 514 5))
((Said 'get/pan') (Print 514 6))
((Said 'capture/pan') (Print 514 7))
((Said 'deliver/lute')
(if (gEgo has: 9)
(if local2
(if (< (gEgo distanceTo: gNewAct_5) 22)
((Inv at: 9) moveTo: 201)
(Print 514 8)
((Inv at: 0) moveTo: gEgo)
(gGame changeScore: 3)
(gEgo setMotion: 0)
(gNewAct_5 view: 158 setMotion: Wander 3000)
(= local0 158)
(panTheme number: 8 loop: -1 play:)
(newProp show:)
else
(Print 800 1)
)
else
(Print 514 9)
)
else
(Print 800 2)
)
)
((Said 'deliver>')
(if (= gInvSaidMe (gInv saidMe:))
(if (gEgo has: (gInv indexOf: gInvSaidMe))
(Print 514 10)
else
(proc0_17)
)
else
(Print 514 11)
(pEvent claimed: 1)
)
)
((Said 'kiss') (Print 514 12))
((== (gNewAct_5 view?) 157)
(cond
((Said 'look/pan') (Print 514 13))
((Said 'converse[/pan]') (Print 514 14))
((Said 'get/flute') (Print 514 15))
((Said 'rob/flute') (Print 514 16))
)
)
((== (gNewAct_5 view?) 158)
(cond
((Said 'get,rob/lute') (Print 514 17))
((Said 'look/pan') (Print 514 18))
((Said 'converse[/pan]') (Print 514 19))
)
)
((== (gNewAct_5 view?) 150)
(cond
((Said 'converse[/pan]') (Print 514 20))
((Said 'look/pan') (Print 514 21))
((Said 'get/flute') (Print 514 15))
)
)
)
else
0
)
)
)
)
(instance playLute of Script
(properties)
(method (changeState newState)
(switch (= state newState)
(1
(proc0_8)
(panTheme client: 0 stop:)
(luteMusic play: self)
(gEgo view: 54 setLoop: 0 setCycle: Fwd)
(= newProp_2 (Prop new:))
(newProp_2
view: 888
setPri: (gEgo priority?)
cycleSpeed: 1
setCycle: Fwd
posn: (+ (gEgo x?) 15) (- (gEgo y?) 25)
init:
)
(gNewAct_5
view: 150
setAvoider: Avoid
setCycle: Walk
setMotion: Follow gEgo 55
)
(newProp hide:)
)
(2
(Print 514 21 67 -1 10 83)
(gEgo view: 2 setLoop: -1 setCycle: Walk)
(if (IsObject newProp_2) (newProp_2 dispose:))
(proc0_3 gEgo gNewAct_5)
(= local2 1)
(proc0_9)
)
)
)
)
(instance panActions of Script
(properties)
(method (changeState newState)
(switch (= state newState)
(0 (= seconds 25))
(1
(gNewAct_5 ignoreBlocks: panCage)
)
)
)
)

Binary file not shown.

View File

@@ -0,0 +1,432 @@
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 605)
(include sci.sh)
(use Main)
(use Class_255_0)
(use Avoid)
(use Sound)
(use Cycle)
(use Game)
(use Feature)
(use Obj)
(public
regTroll 0
)
(synonyms
(dirt dirt dirt dirt dirt)
(kiss kiss embrace)
(troll troll troll troll troll man)
)
(local
newAct
local1
local2
local3
)
(instance trollCaveMusic of Sound
(properties
number 66
priority -1
)
)
(instance caughtMusic of Sound
(properties
number 38
priority 3
)
)
(instance trollMusic of Sound
(properties
number 37
priority 2
loop -1
)
(method (play)
(trollCaveMusic client: 0 stop:)
(super play: &rest)
)
)
(instance regTroll of Rgn
(properties)
(method (init)
(if initialized (return))
(= keep 1)
(if (gEgo has: 3) (Load rsVIEW 967))
(Load rsVIEW 904)
(Load rsVIEW 190)
(super init:)
(= global189 1)
(= local2 0)
(= global126 0)
(= local1 0)
(= local3 0)
(trollCaveMusic owner: self init:)
(trollMusic owner: self init:)
(caughtMusic owner: self init:)
(doMusic cue:)
)
(method (doit)
(super doit:)
(if (== script gotchaScript) (return))
(if
(and
(not (proc0_20))
(not (& (gEgo onControl: 0) $0002))
)
(gEgo dispose:)
(proc0_18)
(Print 605 1)
(self setScript: gotchaScript)
(return)
)
(if
(and (not (gCast contains: newAct)) (== global126 1))
(trollScript changeState: 1)
)
(if (not local1)
(= local1 1)
(if
(and
(not global126)
(< (Random 0 100) 50)
(!= gCurRoomNum 76)
(!= gCurRoomNum 73)
)
(trollScript start: 0)
(self setScript: trollScript)
)
)
)
(method (dispose)
(if (== keep 0) (= global189 0) (super dispose:))
)
(method (handleEvent pEvent &tmp gInvSaidMe temp1 temp2)
(super handleEvent: pEvent)
(if (pEvent claimed?) (return 1))
(return
(if (== (pEvent type?) evSAID)
(= temp2 (if (proc0_20) (gEgo has: 3) else 0))
(cond
(
(and (gEgo has: 3) (Said '/chandelier,lantern[<oil]>'))
(cond
((Said 'extinguish,(turn<off)') (self notify: 0))
((Said 'light,ignite,(turn<on)') (self notify: 1))
)
)
((Said 'look>')
(cond
((Said '<out[/cave]') (Print 605 2))
((and temp2 (Said '[<in,at]/cave[<troll,dark]')) (Print 605 3))
(
(and temp2 (or (Said '/dirt') (Said '<down'))) (Print 605 4))
((and temp2 (Said '/passageway')) (Print 605 5))
((Said '/troll') (Print 605 6))
((gInv saidMe:) (pEvent claimed: 0))
(else (Print 605 7) (pEvent claimed: 1))
)
)
(
(or (Said 'climb/boulder') (Said 'get/boulder')) (Print 605 8))
((Said 'find/troll') (Print 605 6))
((gCast contains: newAct)
(cond
((Said 'converse/troll') (Print 605 9))
((Said 'kill/troll') (Print 605 10))
((Said 'get,capture/troll') (Print 605 11))
((or (Said 'kiss/troll') (Said 'kiss[/!*]')) (Print 605 12))
(
(and
(Said 'deliver>')
(= gInvSaidMe (gInv saidMe:))
(gEgo has: (gInv indexOf: gInvSaidMe))
)
(Print 605 13)
)
)
)
)
else
0
)
)
)
(method (newRoom newRoomNumber)
(= local1 0)
(= local3 0)
(proc0_21)
(if
(and
(!= newRoomNumber 77)
(!= newRoomNumber 70)
(not (gCast contains: newAct))
)
(doMusic cue:)
)
(super newRoom: newRoomNumber)
)
(method (notify param1)
(switch param1
(2
(gEgo view: 904)
(theLight dispose:)
)
(3
(gEgo view: 967)
(theLight setLoop: 4 init:)
)
(1
(gEgo view: 967)
(theLight setLoop: 4 init:)
(proc0_18)
(proc0_20 1)
)
(0
(gEgo view: 904)
(theLight dispose:)
(cond
(local3 (gEgo dispose:) (proc0_18))
((& (gEgo onControl: 0) $0002) (proc0_20 0))
(else
(gEgo dispose:)
(proc0_18)
(Print 605 0)
(self setScript: gotchaScript)
)
)
)
(4
(trollMusic client: 0 stop:)
(if (IsObject newAct)
(newAct setMotion: 0 setScript: 0)
)
)
)
)
)
(instance trollScript of Script
(properties)
(method (doit)
(if
(and
(gCast contains: newAct)
(< (self state?) 5)
(< (gEgo distanceTo: newAct) 5)
)
(self changeState: 5)
(return)
)
(super doit:)
)
(method (changeState newState)
(switch (= state newState)
(0
(if (not local2) (= seconds 2))
)
(1
(if
(and
(not global126)
(or
(== gCurRoomNum 71)
(== gCurRoomNum 72)
(== gCurRoomNum 74)
(== gCurRoomNum 75)
)
)
(Print 605 14 67 200 40 88)
(= global126 1)
((= newAct (Act new:))
view: 190
setAvoider: Avoid 1
illegalBits: 0
xStep: 5
yStep: 2
init:
setCycle: Walk
)
(switch gCurRoomNum
(71 (newAct posn: 230 96))
(72 (newAct posn: 190 180))
(74 (newAct posn: 73 166))
(75 (newAct posn: 107 89))
)
(trollCaveMusic client: 0 stop:)
(trollMusic stop: loop: 1 play:)
else
(if (or (!= global126 1) (== gCurRoomNum 73)) (return))
((= newAct (Act new:))
view: 190
setAvoider: Avoid 1
setCycle: Walk
illegalBits: 0
ignoreActors: 1
xStep: 6
yStep: 2
init:
)
(switch gCurRoomNum
(71
(switch gPrevRoomNum
(74 (newAct posn: 213 210))
(72 (newAct posn: 250 101))
(else (newAct posn: 179 196))
)
)
(72
(switch gPrevRoomNum
(71 (newAct posn: 20 92))
(75 (newAct posn: 180 220))
(else (newAct posn: 178 154))
)
)
(74
(switch gPrevRoomNum
(71 (newAct posn: 114 -20))
(75 (newAct posn: 340 170))
(else (newAct posn: 158 132))
)
)
(75
(switch gPrevRoomNum
(74 (newAct posn: -20 170))
(76 (newAct posn: 340 170))
(72 (newAct posn: 140 -20))
(else (newAct posn: 148 118))
)
)
(76 (newAct posn: -40 170))
)
(if (== gCurRoomNum 76)
(switch (Random 0 1)
(0
(newAct xStep: 6 yStep: 3)
(gSounds eachElementDo: #stop 0)
(trollMusic loop: 1 play:)
)
(1
(newAct hide:)
(= local2 1)
(self changeState: 7)
(return)
)
)
else
(trollCaveMusic client: 0 stop:)
(trollMusic client: 0 stop: loop: 1 play:)
)
(proc0_18)
)
(if (not local2) (self cue:) (return))
)
(2
(if (gCast contains: newAct)
(newAct
moveSpeed: 1
cycleSpeed: 1
setMotion: Chase gEgo 55 self
)
else
(self cue:)
)
)
(3
(Print 605 15 25 4 67 200 10 88)
(self cue:)
)
(4
(if (gCast contains: newAct)
(newAct setMotion: Chase gEgo 4 self)
else
(self cue:)
)
)
(5
(gotchaScript start: 1)
(gRoom setScript: gotchaScript)
)
)
)
)
(instance gotchaScript of Script
(properties)
(method (changeState newState)
(switch (= state newState)
(0
(proc0_8)
(proc0_21)
(trollCaveMusic client: 0 stop:)
(trollMusic play:)
(= seconds 5)
)
(1
(proc0_8)
(trollCaveMusic client: 0 stop:)
(trollMusic client: 0 stop:)
(caughtMusic play:)
(proc0_21)
(Print 605 16 67 -1 10)
(= local3 1)
(regTroll notify: 0)
(Print 605 17 67 -1 10)
(= seconds 4)
)
(2 (= global127 1))
)
)
)
(instance theLight of Prop
(properties
view 967
loop 4
)
(method (init)
(self
posn: (gEgo x?) (- (gEgo y?) 3)
ignoreActors: 1
setCycle: Fwd
priority: (- (gEgo priority?) 1)
)
(super init:)
)
(method (doit)
(self
posn: (gEgo x?) (- (gEgo y?) 3)
priority: (- (gEgo priority?) 1)
)
(super doit:)
)
)
(instance doMusic of Script
(properties)
(method (changeState newState)
(switch (= state newState)
(0 (Timer setReal: self 2))
(1
(trollCaveMusic loop: 1 playMaybe:)
)
)
)
)

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