aboutsummaryrefslogtreecommitdiff
path: root/devtools/tasmrecover/dreamweb/use.asm
diff options
context:
space:
mode:
authorEugene Sandulenko2011-06-15 09:04:07 -0700
committerEugene Sandulenko2011-06-15 09:04:07 -0700
commit624042eedd0f2e86308173c995e9760b4cd8de3f (patch)
treeb411f99a03f4f3379c5c5e542a90a7514d059a9f /devtools/tasmrecover/dreamweb/use.asm
parent5b7754e3f095eb8a469dd4b7de5a6379f8e13c27 (diff)
parent9599894a4b2f79672fc3e2ca5a93ef9c7d457c08 (diff)
downloadscummvm-rg350-624042eedd0f2e86308173c995e9760b4cd8de3f.tar.gz
scummvm-rg350-624042eedd0f2e86308173c995e9760b4cd8de3f.tar.bz2
scummvm-rg350-624042eedd0f2e86308173c995e9760b4cd8de3f.zip
Merge pull request #45 from fuzzie/dreamweb
DREAMWEB: Merge in engine
Diffstat (limited to 'devtools/tasmrecover/dreamweb/use.asm')
-rw-r--r--devtools/tasmrecover/dreamweb/use.asm3810
1 files changed, 3810 insertions, 0 deletions
diff --git a/devtools/tasmrecover/dreamweb/use.asm b/devtools/tasmrecover/dreamweb/use.asm
new file mode 100644
index 0000000000..4b82f946f0
--- /dev/null
+++ b/devtools/tasmrecover/dreamweb/use.asm
@@ -0,0 +1,3810 @@
+;Copyright (c) 1990-2011 by Neil Dodwell
+;Released with permission from Neil Dodwell under GPLv2
+;See LICENSE file for full license text
+
+Useobject proc near
+
+ mov withobject,255
+
+ cmp commandtype,229
+ jz alreadyuse
+ mov commandtype,229
+
+ mov bl,command
+ mov bh,objecttype
+ mov al,51
+ call commandwithob
+alreadyuse: mov ax,mousebutton
+ cmp ax,oldbutton
+ jz nouse
+ and ax,1
+ jnz douse
+nouse: ret
+
+douse: call useroutine
+ ret
+
+ endp
+
+
+
+
+
+
+
+Useroutine proc near
+
+ cmp reallocation,50
+ jc nodream7
+ cmp pointerpower,0
+ jnz powerok
+ ret
+powerok: mov pointerpower,0
+
+nodream7: call getanyad
+ mov dx,seg uselist
+ mov ds,dx
+ mov si,offset uselist
+checkuselist: push si
+ lodsb
+ sub al,"A"
+ cmp al,[es:bx+12]
+ jnz failed
+ lodsb
+ sub al,"A"
+ cmp al,[es:bx+13]
+ jnz failed
+ lodsb
+ sub al,"A"
+ cmp al,[es:bx+14]
+ jnz failed
+ lodsb
+ sub al,"A"
+ cmp al,[es:bx+15]
+ jnz failed
+ lodsw
+ pop si
+ call ax
+ ret
+failed: pop si
+ add si,6
+ cmp byte ptr [si],140
+ jnz checkuselist
+
+ call delpointer
+ call getobtextstart
+ call findnextcolon
+ cmp al,0
+ jz cantuse2
+ call findnextcolon
+ cmp al,0
+ jz cantuse2
+ mov al,[es:si]
+ cmp al,0
+ jz cantuse2
+ call usetext
+ mov cx,400
+ call hangonp
+ call putbackobstuff
+ ret
+cantuse2: call createpanel
+ call showpanel
+ call showman
+ call showexit
+ call obicons
+ mov di,33
+ mov bx,100
+ mov al,63
+ mov dl,241
+ call printmessage
+ call worktoscreenm
+ mov cx,50
+ call hangonp
+ call putbackobstuff
+ mov commandtype,255
+ ret
+
+Uselist: db "NETW"
+ dw usemon
+ db "ELVA"
+ dw useelevator1
+ db "ELVB"
+ dw useelevator2
+ db "ELVC"
+ dw useelevator3
+ db "ELVE"
+ dw useelevator4
+ db "ELVF"
+ dw useelevator5
+ db "CGAT"
+ dw usechurchgate
+ db "REMO"
+ dw usestereo
+ db "BUTA"
+ dw usebuttona
+ db "CBOX"
+ dw usewinch
+ db "LITE"
+ dw uselighter
+ db "PLAT"
+ dw useplate
+ db "LIFT"
+ dw usecontrol
+ db "WIRE"
+ dw usewire
+ db "HNDL"
+ dw usehandle
+ db "HACH"
+ dw usehatch
+ db "DOOR"
+ dw useelvdoor
+ db "CSHR"
+ dw usecashcard
+ db "GUNA"
+ dw usegun
+ db "CRAA"
+ dw usecardreader1
+ db "CRBB"
+ dw usecardreader2
+ db "CRCC"
+ dw usecardreader3
+ db "SEAT"
+ dw sitdowninbar
+ db "MENU"
+ dw usemenu
+ db "COOK"
+ dw usecooker
+ db "ELCA"
+ dw callhotellift
+ db "EDCA"
+ dw calledenslift
+ db "DDCA"
+ dw calledensdlift
+ db "ALTR"
+ dw usealtar
+ db "LOKA"
+ dw openhoteldoor
+ db "LOKB"
+ dw openhoteldoor2
+ db "ENTA"
+ dw openlouis
+ db "ENTB"
+ dw openryan
+ db "ENTE"
+ dw openpoolboss
+ db "ENTC"
+ dw openyourneighbour
+ db "ENTD"
+ dw openeden
+ db "ENTH"
+ dw opensarters
+ db "WWAT"
+ dw wearwatch
+ db "POOL"
+ dw usepoolreader
+ db "WSHD"
+ dw wearshades
+ db "GRAF"
+ dw grafittidoor
+ db "TRAP"
+ dw trapdoor
+ db "CDPE"
+ dw edenscdplayer
+
+ db "DLOK"
+ dw opentvdoor
+
+ db "HOLE"
+ dw usehole
+
+ db "DRYR"
+ dw usedryer
+
+ db "HOLY"
+ dw usechurchhole
+
+ db "WALL"
+ dw usewall
+ db "BOOK"
+ dw usediary
+
+ db "AXED"
+ dw useaxe
+ db "SHLD"
+ dw useshield
+
+ db "BCNY"
+ dw userailing
+ db "LIDC"
+ dw usecoveredbox
+ db "LIDU"
+ dw useclearbox
+ db "LIDO"
+ dw useopenbox
+ db "PIPE"
+ dw usepipe
+
+ db "BALC"
+ dw usebalcony
+ db "WIND"
+ dw usewindow
+ db "PAPR"
+ dw viewfolder
+
+ db "UWTA"
+ dw usetrainer
+ db "UWTB"
+ dw usetrainer
+
+ db "STAT"
+ dw entersymbol
+ db "TLID"
+ dw opentomb
+ db "SLAB"
+ dw useslab
+ db "CART"
+ dw usecart
+ db "FCAR"
+ dw usefullcart
+
+
+ db "SLBA"
+ dw slabdoora
+ db "SLBB"
+ dw slabdoorb
+ db "SLBC"
+ dw slabdoorc
+ db "SLBD"
+ dw slabdoord
+ db "SLBE"
+ dw slabdoore
+ db "SLBF"
+ dw slabdoorf
+ db "PLIN"
+ dw useplinth
+
+ db "LADD"
+ dw useladder
+ db "LADB"
+ dw useladderb
+
+ db "GUMA"
+ dw chewy
+
+ db "SQEE"
+ dw wheelsound
+ db "TAPP"
+ dw runtap
+ db "GUIT"
+ dw playguitar
+ db "CONT"
+ dw hotelcontrol
+
+ db "BELL"
+ dw hotelbell
+
+ db 140,140,140,140
+
+ endp
+
+
+
+
+
+
+;-----------------------------------------------------------Puzzle routines----
+
+
+Wheelsound proc near
+
+ mov al,17
+ call playchannel1
+ call showfirstuse
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+
+Runtap proc near
+
+ cmp withobject,255
+ jnz tapwith
+ call withwhat
+ ret
+tapwith: mov al,withobject
+ mov ah,withtype
+ mov cl,"C"
+ mov ch,"U"
+ mov dl,"P"
+ mov dh,"E"
+ call compare
+ jz fillcupfromtap
+ mov al,withobject
+ mov ah,withtype
+ mov cl,"C"
+ mov ch,"U"
+ mov dl,"P"
+ mov dh,"F"
+ call compare
+ jz cupfromtapfull
+ mov cx,300
+ mov al,56
+ call showpuztext
+ call putbackobstuff
+ ret
+
+fillcupfromtap: mov al,withobject
+ call getexad
+ mov byte ptr [es:bx+15],"F"-"A"
+ mov al,8
+ call playchannel1
+ mov cx,300
+ mov al,57
+ call showpuztext
+ call putbackobstuff
+ ret
+
+cupfromtapfull: mov cx,300
+ mov al,58
+ call showpuztext
+ call putbackobstuff
+ ret
+
+
+ endp
+
+
+
+Playguitar proc near
+
+ mov al,14
+ call playchannel1
+ call showfirstuse
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+Hotelcontrol proc near
+
+ cmp reallocation,21
+ jnz notrightcont
+ cmp mapx,33
+ jnz notrightcont
+ call showfirstuse
+ call putbackobstuff
+ ret
+notrightcont: call showseconduse
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+
+Hotelbell proc near
+
+ if demo
+ mov al,24
+ else
+ mov al,12
+ endif
+ call playchannel1
+ call showfirstuse
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+
+
+Opentomb proc near
+
+ inc progresspoints
+ call showfirstuse
+ mov watchingtime,35*2
+ mov reeltowatch,1
+ mov endwatchreel,33
+ mov watchspeed,1
+ mov speedcount,1
+ mov getback,1
+ ret
+
+ endp
+
+
+
+Usetrainer proc near
+
+ call getanyad
+ cmp byte ptr [es:bx+2],4
+ jnz notheldtrainer
+ inc progresspoints
+ call makeworn
+ call showseconduse
+ call putbackobstuff
+ ret
+notheldtrainer: call nothelderror
+ ret
+
+ endp
+
+
+
+Nothelderror proc near
+
+ call createpanel
+ call showpanel
+ call showman
+ call showexit
+ call obicons
+ mov di,64
+ mov bx,100
+ mov al,63
+ mov ah,1
+ mov dl,201
+ call printmessage2
+ call worktoscreenm
+ mov cx,50
+ call hangonp
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+Usepipe proc near
+
+ cmp withobject,255
+ jnz pipewith
+ call withwhat
+ ret
+pipewith: mov al,withobject
+ mov ah,withtype
+ mov cl,"C"
+ mov ch,"U"
+ mov dl,"P"
+ mov dh,"E"
+ call compare
+ jz fillcup
+ mov al,withobject
+ mov ah,withtype
+ mov cl,"C"
+ mov ch,"U"
+ mov dl,"P"
+ mov dh,"F"
+ call compare
+ jz alreadyfull
+ mov cx,300
+ mov al,14
+ call showpuztext
+ call putbackobstuff
+ ret
+
+fillcup: mov cx,300
+ mov al,36
+ call showpuztext
+ call putbackobstuff
+ mov al,withobject
+ call getexad
+ mov byte ptr [es:bx+15],"F"-"A"
+ ret
+
+alreadyfull: mov cx,300
+ mov al,35
+ call showpuztext
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+
+
+
+Usefullcart proc near
+
+ inc progresspoints
+ mov al,2
+ mov ah,roomnum
+ add ah,6
+ call turnanypathon
+ mov manspath,4
+ mov facing,4
+ mov turntoface,4
+ mov finaldest,4
+ call findxyfrompath
+ mov resetmanxy,1
+ call showfirstuse
+ mov watchingtime,72*2
+ mov reeltowatch,58
+ mov endwatchreel,142
+ mov watchspeed,1
+ mov speedcount,1
+ mov getback,1
+ ret
+
+ endp
+
+
+
+
+
+
+
+Useplinth proc near
+
+ cmp withobject,255
+ jnz plinthwith
+ call withwhat
+ ret
+
+plinthwith: mov al,withobject
+ mov ah,withtype
+ mov cl,"D"
+ mov ch,"K"
+ mov dl,"E"
+ mov dh,"Y"
+ call compare
+ jz isrightkey
+ call showfirstuse
+ call putbackobstuff
+ ret
+
+isrightkey: inc progresspoints
+ call showseconduse
+ mov watchingtime,220
+ mov reeltowatch,0
+ mov endwatchreel,104
+ mov watchspeed,1
+ mov speedcount,1
+ mov getback,1
+ mov al,roomafterdream
+ mov newlocation,al
+ ret
+
+ endp
+
+
+
+Chewy proc near
+
+ call showfirstuse
+ call getanyad
+ mov byte ptr [es:bx+2],255
+ mov getback,1
+ ret
+
+ endp
+
+
+
+
+
+Useladder proc near
+
+ call showfirstuse
+ sub mapx,11
+ call findroominloc
+ mov facing,6
+ mov turntoface,6
+ mov manspath,0
+ mov destination,0
+ mov finaldest,0
+ call findxyfrompath
+ mov resetmanxy,1
+ mov getback,1
+ ret
+
+ endp
+
+
+
+
+
+Useladderb proc near
+
+ call showfirstuse
+ add mapx,11
+ call findroominloc
+ mov facing,2
+ mov turntoface,2
+ mov manspath,1
+ mov destination,1
+ mov finaldest,1
+ call findxyfrompath
+ mov resetmanxy,1
+ mov getback,1
+ ret
+
+ endp
+
+
+
+
+
+Slabdoora proc near
+
+ call showfirstuse
+ mov getback,1
+ mov watchspeed,1
+ mov speedcount,1
+ mov reeltowatch,13
+ cmp dreamnumber,3
+ jnz slabawrong
+ inc progresspoints
+ mov watchingtime,60
+ mov endwatchreel,42
+ mov newlocation,47
+ ret
+slabawrong: mov watchingtime,40
+ mov endwatchreel,34
+ mov watchspeed,1
+ mov speedcount,1
+ ret
+
+ endp
+
+
+
+
+Slabdoorb proc near
+
+ cmp dreamnumber,1
+ jnz slabbwrong
+ mov al,"S"
+ mov ah,"H"
+ mov cl,"L"
+ mov ch,"D"
+ call isryanholding
+ jnz gotcrystal
+ mov al,44
+ mov cx,200
+ call showpuztext
+ call putbackobstuff
+ ret
+gotcrystal: call showfirstuse
+ inc progresspoints
+ mov getback,1
+ mov watchspeed,1
+ mov speedcount,1
+ mov reeltowatch,44
+ mov watchingtime,60
+ mov endwatchreel,71
+ mov newlocation,47
+ ret
+slabbwrong: call showfirstuse
+ mov getback,1
+ mov watchspeed,1
+ mov speedcount,1
+ mov reeltowatch,44
+ mov watchingtime,40
+ mov endwatchreel,63
+ mov watchspeed,1
+ mov speedcount,1
+ ret
+
+ endp
+
+
+
+Slabdoord proc near
+
+ call showfirstuse
+ mov getback,1
+ mov watchspeed,1
+ mov speedcount,1
+ mov reeltowatch,75
+ cmp dreamnumber,0
+ jnz slabcwrong
+ inc progresspoints
+ mov watchingtime,60
+ mov endwatchreel,102
+ mov newlocation,47
+ ret
+slabcwrong: mov watchingtime,40
+ mov endwatchreel,94
+ mov watchspeed,1
+ mov speedcount,1
+ ret
+
+ endp
+
+
+
+Slabdoorc proc near
+
+ call showfirstuse
+ mov getback,1
+ mov watchspeed,1
+ mov speedcount,1
+ mov reeltowatch,108
+ cmp dreamnumber,4
+ jnz slabdwrong
+ inc progresspoints
+ mov watchingtime,60
+ mov endwatchreel,135
+ mov newlocation,47
+ ret
+slabdwrong: mov watchingtime,40
+ mov endwatchreel,127
+ mov watchspeed,1
+ mov speedcount,1
+ ret
+
+ endp
+
+
+
+Slabdoore proc near
+
+ call showfirstuse
+ mov getback,1
+ mov watchspeed,1
+ mov speedcount,1
+ mov reeltowatch,141
+ cmp dreamnumber,5
+ jnz slabewrong
+ inc progresspoints
+ mov watchingtime,60
+ mov endwatchreel,168
+ mov newlocation,47
+ ret
+slabewrong: mov watchingtime,40
+ mov endwatchreel,160
+ mov watchspeed,1
+ mov speedcount,1
+ ret
+
+ endp
+
+
+
+Slabdoorf proc near
+
+ call showfirstuse
+ mov getback,1
+ mov watchspeed,1
+ mov speedcount,1
+ mov reeltowatch,171
+ cmp dreamnumber,2
+ jnz slabfwrong
+ inc progresspoints
+ mov watchingtime,60
+ mov endwatchreel,197
+ mov newlocation,47
+ ret
+slabfwrong: mov watchingtime,40
+ mov endwatchreel,189
+ mov watchspeed,1
+ mov speedcount,1
+ ret
+
+ endp
+
+
+
+
+
+
+Useslab proc near
+
+ cmp withobject,255
+ jnz slabwith
+ call withwhat
+ ret
+slabwith: mov al,withobject
+ mov ah,withtype
+ mov cl,"J"
+ mov ch,"E"
+ mov dl,"W"
+ mov dh,"L"
+ call compare
+ jz nextslab
+ mov cx,300
+ mov al,14
+ call showpuztext
+ call putbackobstuff
+ ret
+nextslab: mov al,withobject
+ call getexad
+ mov byte ptr [es:bx+2],0
+ mov al,command
+ push ax
+ call removesetobject
+ pop ax
+ inc al
+ push ax
+ call placesetobject
+ pop ax
+ cmp al,54
+ jnz notlastslab
+ mov al,0
+ call turnpathon
+ mov watchingtime,22
+ mov reeltowatch,35
+ mov endwatchreel,48
+ mov watchspeed,1
+ mov speedcount,1
+notlastslab: inc progresspoints
+ call showfirstuse
+ mov getback,1
+ ret
+
+ endp
+
+
+
+
+
+Usecart proc near
+
+ cmp withobject,255
+ jnz cartwith
+ call withwhat
+ ret
+cartwith: mov al,withobject
+ mov ah,withtype
+ mov cl,"R"
+ mov ch,"O"
+ mov dl,"C"
+ mov dh,"K"
+ call compare
+ jz nextcart
+ mov cx,300
+ mov al,14
+ call showpuztext
+ call putbackobstuff
+ ret
+nextcart: mov al,withobject
+ call getexad
+ mov byte ptr [es:bx+2],0
+ mov al,command
+ push ax
+ call removesetobject
+ pop ax
+ inc al
+ call placesetobject
+ inc progresspoints
+ mov al,17
+ call playchannel1
+ call showfirstuse
+ mov getback,1
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+Useclearbox proc near
+
+ cmp withobject,255
+ jnz clearboxwith
+ call withwhat
+ ret
+clearboxwith: mov al,withobject
+ mov ah,withtype
+ mov cl,"R"
+ mov ch,"A"
+ mov dl,"I"
+ mov dh,"L"
+ call compare
+ jz openbox
+ mov cx,300
+ mov al,14
+ call showpuztext
+ call putbackobstuff
+ ret
+
+openbox: inc progresspoints
+ call showfirstuse
+ mov watchingtime,80
+ mov reeltowatch,67
+ mov endwatchreel,105
+ mov watchspeed,1
+ mov speedcount,1
+ mov getback,1
+ ret
+
+ endp
+
+
+
+
+
+Usecoveredbox proc near
+
+ inc progresspoints
+ call showfirstuse
+ mov watchingtime,50
+ mov reeltowatch,41
+ mov endwatchreel,66
+ mov watchspeed,1
+ mov speedcount,1
+ mov getback,1
+ ret
+
+ endp
+
+
+
+Userailing proc near
+
+ call showfirstuse
+ mov watchingtime,80
+ mov reeltowatch,0
+ mov endwatchreel,30
+ mov watchspeed,1
+ mov speedcount,1
+ mov getback,1
+ mov mandead,4
+ ret
+
+ endp
+
+
+
+
+
+Useopenbox proc near
+
+ cmp withobject,255
+ jnz openboxwith
+ call withwhat
+ ret
+openboxwith: mov al,withobject
+ mov ah,withtype
+ mov cl,"C"
+ mov ch,"U"
+ mov dl,"P"
+ mov dh,"F"
+ call compare
+ jz destoryopenbox
+ mov al,withobject
+ mov ah,withtype
+ mov cl,"C"
+ mov ch,"U"
+ mov dl,"P"
+ mov dh,"E"
+ call compare
+ jz openboxwrong
+ call showfirstuse
+ ret
+
+destoryopenbox: inc progresspoints
+ mov cx,300
+ mov al,37
+ call showpuztext
+ mov al,withobject
+ call getexad
+ mov byte ptr [es:bx+15],"E"-"A"
+ mov watchingtime,140
+ mov reeltowatch,105
+ mov endwatchreel,181
+ mov watchspeed,1
+ mov speedcount,1
+ mov al,4
+ call turnpathon
+ mov getback,1
+ ret
+
+openboxwrong: mov cx,300
+ mov al,38
+ call showpuztext
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Wearwatch proc near
+
+ cmp watchon,1
+ jz wearingwatch
+ call showfirstuse
+ mov watchon,1
+ mov getback,1
+ call getanyad
+ call makeworn
+ ret
+wearingwatch: call showseconduse
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+
+Wearshades proc near
+
+ cmp shadeson,1
+ jz wearingshades
+ mov shadeson,1
+ call showfirstuse
+ mov getback,1
+ call getanyad
+ call makeworn
+ ret
+wearingshades: call showseconduse
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+Sitdowninbar proc near
+
+ cmp watchmode,-1
+ jnz satdown
+ call showfirstuse
+ mov watchingtime,50
+ mov reeltowatch,55
+ mov endwatchreel,71
+ mov reeltohold,73
+ mov endofholdreel,83
+ mov watchspeed,1
+ mov speedcount,1
+ mov getback,1
+ ret
+satdown: call showseconduse
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+Usechurchhole proc near
+
+ call showfirstuse
+ mov getback,1
+ mov watchingtime,28
+ mov reeltowatch,13
+ mov endwatchreel,26
+ mov watchspeed,1
+ mov speedcount,1
+ ret
+
+ endp
+
+
+
+Usehole proc near
+
+ cmp withobject,255
+ jnz holewith
+ call withwhat
+ ret
+holewith: mov al,withobject
+ mov ah,withtype
+ mov cl,"H"
+ mov ch,"N"
+ mov dl,"D"
+ mov dh,"A"
+ call compare
+ jz righthand
+ mov cx,300
+ mov al,14
+ call showpuztext
+ call putbackobstuff
+ ret
+
+righthand: call showfirstuse
+ mov al,86
+ call removesetobject
+ mov al,withobject
+ call getexad
+ mov byte ptr [es:bx+2],255
+ mov canmovealtar,1
+ mov getback,1
+ ret
+
+ endp
+
+
+
+
+Usealtar proc near
+
+ mov al,"C"
+ mov ah,"N"
+ mov cl,"D"
+ mov ch,"A"
+ call findexobject
+ cmp al,numexobjects
+ jz thingsonaltar
+ mov al,"C"
+ mov ah,"N"
+ mov cl,"D"
+ mov ch,"B"
+ call findexobject
+ cmp al,numexobjects
+ jz thingsonaltar
+ cmp canmovealtar,1
+ jz movealtar
+ mov cx,300
+ mov al,23
+ call showpuztext
+ mov getback,1
+ ret
+
+movealtar: inc progresspoints
+ call showseconduse
+ mov watchingtime,160
+ mov reeltowatch,81
+ mov endwatchreel,174
+ mov watchspeed,1
+ mov speedcount,1
+
+ mov al,47 ;message number
+ mov bl,52 ;x pos of message
+ mov bh,76 ;and y pos
+ mov cx,32 ;time on screen
+ mov dx,98 ;pause before show
+ call setuptimeduse
+ mov getback,1
+ ret
+
+thingsonaltar: call showfirstuse
+ mov getback,1
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+Opentvdoor proc near
+
+ cmp withobject,255
+ jnz tvdoorwith
+ call withwhat
+ ret
+tvdoorwith: mov al,withobject
+ mov ah,withtype
+ mov cl,"U"
+ mov ch,"L"
+ mov dl,"O"
+ mov dh,"K"
+ call compare
+ jz keyontv
+ mov cx,300
+ mov al,14
+ call showpuztext
+ call putbackobstuff
+ ret
+
+keyontv: call showfirstuse
+ mov lockstatus,0
+ mov getback,1
+ ret
+
+ endp
+
+
+
+
+
+
+
+Usedryer proc near
+
+ mov al,12
+ call playchannel1
+ call showfirstuse
+ mov getback,1
+ ret
+
+ endp
+
+
+
+
+
+Openlouis proc near
+
+ mov al,5
+ mov ah,2
+ mov cl,3
+ mov ch,8
+ call entercode
+ mov getback,1
+ ret
+
+ endp
+
+
+
+
+Nextcolon proc near
+
+lookcolon: mov al,[es:si]
+ inc si
+ cmp al,":"
+ jnz lookcolon
+ ret
+
+ endp
+
+
+
+
+Openyourneighbour proc near
+
+ mov al,255
+ mov ah,255
+ mov cl,255
+ mov ch,255
+ call entercode
+ mov getback,1
+ ret
+
+ endp
+
+
+
+Usewindow proc near
+
+ cmp manspath,6
+ jnz notonbalc
+ inc progresspoints
+ call showfirstuse
+ mov newlocation,29
+ mov getback,1
+ ret
+notonbalc: call showseconduse
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+Usebalcony proc near
+
+ call showfirstuse
+ mov al,6
+ call turnpathon
+ mov al,0
+ call turnpathoff
+ mov al,1
+ call turnpathoff
+ mov al,2
+ call turnpathoff
+ mov al,3
+ call turnpathoff
+ mov al,4
+ call turnpathoff
+ mov al,5
+ call turnpathoff
+ inc progresspoints
+ mov manspath,6
+ mov destination,6
+ mov finaldest,6
+ call findxyfrompath
+ call switchryanoff
+ mov resetmanxy,1
+
+ mov watchingtime,30*2
+ mov reeltowatch,183
+ mov endwatchreel,212
+ mov watchspeed,1
+ mov speedcount,1
+ mov getback,1
+ ret
+
+ endp
+
+
+
+Openryan proc near
+
+ mov al,5
+ mov ah,1
+ mov cl,0
+ mov ch,6
+ call entercode
+ mov getback,1
+ ret
+
+ endp
+
+
+
+Openpoolboss proc near
+
+ mov al,5
+ mov ah,2
+ mov cl,2
+ mov ch,2
+ call entercode
+ mov getback,1
+ ret
+
+ endp
+
+
+
+
+Openeden proc near
+
+ mov al,2
+ mov ah,8
+ mov cl,6
+ mov ch,5
+ call entercode
+ mov getback,1
+ ret
+
+ endp
+
+
+Opensarters proc near
+
+ mov al,7
+ mov ah,8
+ mov cl,3
+ mov ch,3
+ call entercode
+ mov getback,1
+ ret
+
+ endp
+
+
+
+
+Isitright proc near
+
+ mov bx,seg presslist
+ mov es,bx
+ mov bx,offset es:presslist
+ cmp [es:bx+0],al
+ jnz notright
+ cmp [es:bx+1],ah
+ jnz notright
+ cmp [es:bx+2],cl
+ jnz notright
+ cmp [es:bx+3],ch
+notright: ret
+
+ endp
+
+
+
+
+Drawitall proc near
+
+ call createpanel
+ call drawfloor
+ ;call dumpallmap
+ call printsprites
+ call showicon
+ ret
+
+ endp
+
+
+
+
+Openhoteldoor proc near
+
+ cmp withobject,255
+ jnz hoteldoorwith
+ call withwhat
+ ret
+hoteldoorwith: mov al,withobject
+ mov ah,withtype
+ mov cl,"K"
+ mov ch,"E"
+ mov dl,"Y"
+ mov dh,"A"
+ call compare
+ jz keyonhotel1
+ mov cx,300
+ mov al,14
+ call showpuztext
+ call putbackobstuff
+ ret
+
+keyonhotel1: if demo
+ mov al,27
+ else
+ mov al,16
+ endif
+ call playchannel1
+ call showfirstuse
+ ;mov destination,1
+ ;mov finaldest,1
+ ;call autosetwalk
+ mov lockstatus,0
+ mov getback,1
+ ret
+
+ endp
+
+
+
+Openhoteldoor2 proc near
+
+ cmp withobject,255
+ jnz hoteldoorwith2
+ call withwhat
+ ret
+hoteldoorwith2: mov al,withobject
+ mov ah,withtype
+ mov cl,"K"
+ mov ch,"E"
+ mov dl,"Y"
+ mov dh,"A"
+ call compare
+ jz keyonhotel2
+ mov cx,300
+ mov al,14
+ call showpuztext
+ call putbackobstuff
+ ret
+
+keyonhotel2: if demo
+ mov al,27
+ else
+ mov al,16
+ endif
+ call playchannel1
+ call showfirstuse
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+
+
+
+Grafittidoor proc near
+
+ cmp withobject,255
+ jnz grafwith
+ call withwhat
+ ret
+grafwith: mov al,withobject
+ mov ah,withtype
+ mov cl,"A"
+ mov ch,"P"
+ mov dl,"E"
+ mov dh,"N"
+ call compare
+ jz dograf
+ mov cx,300
+ mov al,14
+ call showpuztext
+ call putbackobstuff
+ ret
+
+dograf: call showfirstuse
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+
+
+Trapdoor proc near
+
+ inc progresspoints
+ call showfirstuse
+ call switchryanoff
+ mov watchingtime,20*2
+ mov reeltowatch,181
+ mov endwatchreel,197
+ mov newlocation,26
+ mov watchspeed,1
+ mov speedcount,1
+ mov getback,1
+ ret
+
+ endp
+
+
+
+
+Callhotellift proc near
+
+ if demo
+ mov al,24
+ else
+ mov al,12
+ endif
+ call playchannel1
+ call showfirstuse
+ mov counttoopen,8
+ mov getback,1
+ mov destination,5
+ mov finaldest,5
+ call autosetwalk
+ mov al,4
+ call turnpathon
+ ret
+
+ endp
+
+
+
+
+Calledenslift proc near
+
+ call showfirstuse
+ mov counttoopen,8
+ mov getback,1
+ mov al,2
+ call turnpathon
+ ret
+
+ endp
+
+
+
+Calledensdlift proc near
+
+ cmp liftflag,1
+ jz edensdhere
+ call showfirstuse
+ mov counttoopen,8
+ mov getback,1
+ mov al,2
+ call turnpathon
+ ret
+edensdhere: call showseconduse
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+
+
+
+Usepoolreader proc near
+
+ cmp withobject,255
+ jnz poolwith
+ call withwhat
+ ret
+poolwith: mov al,withobject
+ mov ah,withtype
+ mov cl,"M"
+ mov ch,"E"
+ mov dl,"M"
+ mov dh,"B"
+ call compare
+ jz openpool
+ mov cx,300
+ mov al,14
+ call showpuztext
+ call putbackobstuff
+ ret
+
+openpool: cmp talkedtoattendant,1
+ jz canopenpool
+ call showseconduse
+ call putbackobstuff
+ ret
+
+canopenpool: mov al,17
+ call playchannel1
+ call showfirstuse
+ mov counttoopen,6
+ mov getback,1
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+Uselighter proc near
+
+ cmp withobject,255
+ jnz gotlighterwith
+ call withwhat
+ ret
+gotlighterwith: mov al,withobject
+ mov ah,withtype
+ mov cl,"S"
+ mov ch,"M"
+ mov dl,"K"
+ mov dh,"E"
+ call compare
+ jz cigarette
+ call showfirstuse
+ call putbackobstuff
+ ret
+cigarette: mov cx,300
+ mov al,9
+ call showpuztext
+ mov al,withobject
+ call getexad
+ mov byte ptr [es:bx+2],255
+ mov getback,1
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+Showseconduse proc near
+
+ call getobtextstart
+ call nextcolon
+ call nextcolon
+ call nextcolon
+ call usetext
+ mov cx,400
+ call hangonp
+ ret
+
+ endp
+
+
+
+
+
+
+Usecardreader1 proc near
+
+ cmp withobject,255
+ jnz gotreader1with
+ call withwhat
+ ret
+gotreader1with: mov al,withobject
+ mov ah,withtype
+ mov cl,"C"
+ mov ch,"S"
+ mov dl,"H"
+ mov dh,"R"
+ call compare
+ jz correctcard
+ mov cx,300
+ mov al,14
+ call showpuztext
+ call putbackobstuff
+ ret
+correctcard: cmp talkedtosparky,0
+ jz notyet
+ cmp card1money,0
+ jz getscash
+ mov cx,300
+ mov al,17
+ call showpuztext
+ call putbackobstuff
+ ret
+getscash: mov al,16
+ call playchannel1
+ mov cx,300
+ mov al,18
+ call showpuztext
+ inc progresspoints
+ mov card1money,12432
+ mov getback,1
+ ret
+notyet: call showfirstuse
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+
+Usecardreader2 proc near
+
+ cmp withobject,255
+ jnz gotreader2with
+ call withwhat
+ ret
+gotreader2with: mov al,withobject
+ mov ah,withtype
+ mov cl,"C"
+ mov ch,"S"
+ mov dl,"H"
+ mov dh,"R"
+ call compare
+ jz correctcard2
+ mov cx,300
+ mov al,14
+ call showpuztext
+ call putbackobstuff
+ ret
+
+correctcard2: cmp talkedtoboss,0
+ jz notyetboss
+ cmp card1money,0
+ jz nocash
+ cmp gunpassflag,2
+ jz alreadygotnew
+ mov al,18
+ call playchannel1
+ mov cx,300
+ mov al,19
+ call showpuztext
+ mov al,94
+ call placesetobject
+ mov gunpassflag,1
+ sub card1money,2000
+ inc progresspoints
+ mov getback,1
+ ret
+nocash: mov cx,300
+ mov al,20
+ call showpuztext
+ call putbackobstuff
+ ret
+alreadygotnew: mov cx,300
+ mov al,22
+ call showpuztext
+ call putbackobstuff
+ ret
+notyetboss: call showfirstuse
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+
+
+
+
+Usecardreader3 proc near
+
+ cmp withobject,255
+ jnz gotreader3with
+ call withwhat
+ ret
+gotreader3with: mov al,withobject
+ mov ah,withtype
+ mov cl,"C"
+ mov ch,"S"
+ mov dl,"H"
+ mov dh,"R"
+ call compare
+ jz rightcard
+ mov cx,300
+ mov al,14
+ call showpuztext
+ call putbackobstuff
+ ret
+
+rightcard: cmp talkedtorecep,0
+ jz notyetrecep
+ cmp cardpassflag,0
+ jnz alreadyusedit
+ if demo
+ mov al,27
+ else
+ mov al,16
+ endif
+ call playchannel1
+ mov cx,300
+ mov al,25
+ call showpuztext
+ inc progresspoints
+ sub card1money,8300
+ mov cardpassflag,1
+ mov getback,1
+ ret
+alreadyusedit: mov cx,300
+ mov al,26
+ call showpuztext
+ call putbackobstuff
+ ret
+notyetrecep: call showfirstuse
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+Usecashcard proc near
+
+ call getridofreels
+ call loadkeypad
+ call createpanel
+ call showpanel
+ call showexit
+ call showman
+
+ mov di,114
+ if foreign
+ mov bx,120-3
+ else
+ mov bx,120
+ endif
+ mov ds,tempgraphics
+ mov al,39
+ mov ah,0
+ call showframe
+
+ mov ax,card1money
+ call moneypoke
+
+ call getobtextstart
+ call nextcolon
+ call nextcolon
+
+ mov di,36
+ mov bx,98
+ mov dl,241
+ mov al,0
+ mov ah,0
+ call printdirect
+
+ mov di,160
+ mov bx,155
+ push cs
+ pop es
+ mov si,offset cs:money1poke
+ mov charshift,91*2+75
+ mov al,0
+ mov ah,0
+ mov dl,240
+ call printdirect
+ mov di,187
+ mov bx,155
+ push cs
+ pop es
+ mov si,offset cs:money2poke
+ mov charshift,91*2+85
+ mov al,0
+ mov ah,0
+ mov dl,240
+ call printdirect
+ mov charshift,0
+ call worktoscreenm
+ mov cx,400
+ call hangonp
+ call getridoftemp
+ call restorereels
+ call putbackobstuff
+ ret
+
+money1poke: db "0000",0
+money2poke: db "00",0
+
+ endp
+
+
+
+
+Lookatcard proc near
+
+ mov manisoffscreen,1
+ call getridofreels
+ call loadkeypad
+
+ call createpanel2
+ mov di,160
+ mov bx,80
+ mov ds,tempgraphics
+ mov al,42
+ mov ah,128
+ call showframe
+
+ call getobtextstart
+ call findnextcolon
+ call findnextcolon
+ call findnextcolon
+ mov di,36
+ mov bx,124
+ mov dl,241
+ mov al,0
+ mov ah,0
+ call printdirect
+
+ push es si
+ call worktoscreenm
+ mov cx,280
+ call hangonw
+ call createpanel2
+ mov di,160
+ mov bx,80
+ mov ds,tempgraphics
+ mov al,42
+ mov ah,128
+ call showframe
+ pop si es
+
+ mov di,36
+ mov bx,130
+ mov dl,241
+ mov al,0
+ mov ah,0
+ call printdirect
+ call worktoscreenm
+
+ mov cx,200
+ call hangonw
+ mov manisoffscreen,0
+ call getridoftemp
+ call restorereels
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+
+
+Moneypoke proc near
+
+ mov bx,offset cs:money1poke
+ mov cl,48-1
+numberpoke0: inc cl
+ sub ax,10000
+ jnc numberpoke0
+ add ax,10000
+ mov [cs:bx],cl
+ inc bx
+
+ mov cl,48-1
+numberpoke1: inc cl
+ sub ax,1000
+ jnc numberpoke1
+ add ax,1000
+ mov [cs:bx],cl
+ inc bx
+
+ mov cl,48-1
+numberpoke2: inc cl
+ sub ax,100
+ jnc numberpoke2
+ add ax,100
+ mov [cs:bx],cl
+ inc bx
+
+ mov cl,48-1
+numberpoke3: inc cl
+ sub ax,10
+ jnc numberpoke3
+ add ax,10
+ mov [cs:bx],cl
+
+ mov bx,offset cs:money2poke
+ add al,48
+ mov [cs:bx],al
+ ret
+
+ endp
+
+
+
+
+
+
+
+Usecontrol proc near
+
+ cmp withobject,255
+ jnz gotcontrolwith
+ call withwhat
+ ret
+gotcontrolwith: mov al,withobject
+ mov ah,withtype
+ mov cl,"K"
+ mov ch,"E"
+ mov dl,"Y"
+ mov dh,"A"
+ call compare
+ jz rightkey
+ cmp reallocation,21
+ jnz balls
+ mov al,withobject
+ mov ah,withtype
+ mov cl,"K"
+ mov ch,"N"
+ mov dl,"F"
+ mov dh,"E"
+ call compare
+ jz jimmycontrols
+ mov al,withobject
+ mov ah,withtype
+ mov cl,"A"
+ mov ch,"X"
+ mov dl,"E"
+ mov dh,"D"
+ call compare
+ jz axeoncontrols
+
+balls: call showfirstuse
+ call putbackobstuff
+ ret
+
+rightkey: mov al,16
+ call playchannel1
+ cmp location,21
+ jz goingdown
+ mov cx,300
+ mov al,0
+ call showpuztext
+ mov newlocation,21
+ mov counttoclose,8
+ mov counttoopen,0
+ mov watchingtime,80
+ mov getback,1
+ ret
+
+goingdown: mov cx,300
+ mov al,3
+ call showpuztext
+ mov newlocation,30
+ mov counttoclose,8
+ mov counttoopen,0
+ mov watchingtime,80
+ mov getback,1
+ ret
+
+jimmycontrols: mov al,50
+ call placesetobject
+ mov al,51
+ call placesetobject
+ mov al,26
+ call placesetobject
+ mov al,30
+ call placesetobject
+ mov al,16
+ call removesetobject
+ mov al,17
+ call removesetobject
+ if demo
+ mov al,26
+ else
+ mov al,14
+ endif
+ call playchannel1
+ mov cx,300
+ mov al,10
+ call showpuztext
+ inc progresspoints
+ mov getback,1
+ ret
+
+axeoncontrols: mov cx,300
+ mov al,16
+ call showpuztext
+ inc progresspoints
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+
+
+
+Usehatch proc near
+
+ call showfirstuse
+ mov newlocation,40
+ mov getback,1
+ ret
+
+ endp
+
+
+
+
+
+Usewire proc near
+
+ cmp withobject,255
+ jnz gotwirewith
+ call withwhat
+ ret
+gotwirewith: mov al,withobject
+ mov ah,withtype
+ mov cl,"K"
+ mov ch,"N"
+ mov dl,"F"
+ mov dh,"E"
+ call compare
+ jz wireknife
+ mov al,withobject
+ mov ah,withtype
+ mov cl,"A"
+ mov ch,"X"
+ mov dl,"E"
+ mov dh,"D"
+ call compare
+ jz wireaxe
+
+ mov cx,300
+ mov al,14
+ call showpuztext
+ call putbackobstuff
+ ret
+
+wireaxe: mov cx,300
+ mov al,16
+ call showpuztext
+ call putbackobstuff
+ ret
+
+wireknife: mov al,51
+ call removesetobject
+ mov al,52
+ call placesetobject
+ mov cx,300
+ mov al,11
+ call showpuztext
+ inc progresspoints
+ mov getback,1
+ ret
+
+ endp
+
+
+
+
+
+
+
+Usehandle proc near
+
+ mov al,"C"
+ mov ah,"U"
+ mov cl,"T"
+ mov ch,"W"
+ call findsetobject
+ mov al,[es:bx+58]
+ cmp al,255
+ jnz havecutwire
+ mov cx,300
+ mov al,12
+ call showpuztext
+ mov getback,1
+ ret
+
+havecutwire: mov cx,300
+ mov al,13
+ call showpuztext
+ mov newlocation,22
+ mov getback,1
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+Useelevator1 proc near
+
+ call showfirstuse
+ call selectlocation
+ mov getback,1
+ ret
+
+ endp
+
+
+
+
+
+
+Showfirstuse proc near ;shows but does not delete the
+ ;first bit of text after the
+ call getobtextstart ;description
+ call findnextcolon
+ call findnextcolon
+ call usetext
+ mov cx,400
+ call hangonp
+ ret
+
+ endp
+
+
+
+
+
+Useelevator3 proc near
+
+ call showfirstuse
+ mov counttoclose,20
+ mov newlocation,34
+ mov reeltowatch,46
+ mov endwatchreel,63
+ mov watchspeed,1
+ mov speedcount,1
+ mov watchingtime,80 ;40
+ mov getback,1
+ ret
+
+ endp
+
+
+
+
+Useelevator4 proc near
+
+ call showfirstuse
+ mov reeltowatch,0
+ mov endwatchreel,11
+ mov watchspeed,1
+ mov speedcount,1
+ mov counttoclose,20
+ mov watchingtime,80 ;40
+ mov getback,1
+ mov newlocation,24
+ ret
+
+ endp
+
+
+
+Useelevator2 proc near
+
+ cmp location,23
+ jz inpoolhall
+ call showfirstuse
+ mov newlocation,23
+ mov counttoclose,20
+ mov counttoopen,0
+ mov watchingtime,80
+ mov getback,1
+ ret
+inpoolhall: call showfirstuse
+ mov newlocation,31
+ mov counttoclose,20
+ mov counttoopen,0
+ mov watchingtime,80
+ mov getback,1
+ ret
+
+ endp
+
+
+
+
+Useelevator5 proc near
+
+ mov al,4
+ call placesetobject
+ mov al,0
+ call removesetobject
+ mov newlocation,20
+ mov watchingtime,80
+ mov liftflag,1
+ mov counttoclose,8
+ mov getback,1
+ ret
+
+ endp
+
+
+
+
+
+Usekey proc near
+
+ cmp location,5
+ jz usekey1
+ cmp location,30
+ jz usekey1
+ cmp location,21
+ jz usekey2
+ mov cx,200
+ mov al,1
+ call showpuztext
+ call putbackobstuff
+ ret
+
+usekey1: cmp mapx,22
+ jnz wrongroom1
+ cmp mapy,10
+ jnz wrongroom1
+ mov cx,300
+ mov al,0
+ call showpuztext
+ mov counttoclose,100
+ mov getback,1
+ ret
+
+usekey2: cmp mapx,11
+ jnz wrongroom1
+ cmp mapy,10
+ jnz wrongroom1
+ mov cx,300
+ mov al,3
+ call showpuztext
+ mov newlocation,30
+ mov al,2
+ call fadescreendown
+ call showfirstuse
+ call putbackobstuff
+ ret
+
+wrongroom1: mov cx,200
+ mov al,2
+ call showpuztext
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+
+
+
+
+Usestereo proc near
+
+ cmp location,0
+ jz stereook
+ mov cx,400 ;Ryan isn't in his flat.
+ mov al,4
+ call showpuztext
+ call putbackobstuff
+ ret
+
+stereook: cmp mapx,11
+ jnz stereonotok
+ cmp mapy,0
+ jz stereook2
+stereonotok: mov cx,400 ;Ryan isn't in his bedroom.
+ mov al,5
+ call showpuztext
+ call putbackobstuff
+ ret
+
+stereook2: mov al,"C"
+ mov ah,"D"
+ mov cl,"P"
+ mov ch,"L"
+ call findsetobject ;find object number of CD player
+ mov ah,1 ;searching for inside a set ob
+ call checkinside ;see if there is anything inside
+ cmp cl,numexobjects
+ jnz cdinside
+ mov al,6 ;Need a CD inside
+ mov cx,400
+ call showpuztext
+ call putbackobstuff
+ call getanyad ;if the CD's been taken out,
+ mov al,255 ;make sure the player isn't still
+ mov [es:bx+10],al ;playing, ie:reset the puzzle
+ ret ;flag for the remote.
+
+cdinside: call getanyad
+ mov al,[es:bx+10]
+ xor al,1
+ mov [es:bx+10],al
+ cmp al,255
+ jz stereoon
+ mov al,7 ;The stereo works
+ mov cx,400
+ call showpuztext
+ call putbackobstuff
+ ret
+
+stereoon: mov al,8 ;Stereo was already on,
+ mov cx,400 ;so switch it off
+ call showpuztext
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Usecooker proc near
+
+ mov al,command
+ mov ah,objecttype
+ call checkinside ;see if there is anything inside
+ cmp cl,numexobjects
+ jnz foodinside
+ call showfirstuse
+ call putbackobstuff
+ ret ;flag for the remote.
+
+foodinside: call showseconduse
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+
+
+
+Useaxe proc near
+
+ cmp reallocation,22
+ jnz notinpool
+ cmp mapy,10
+ jz axeondoor
+ call showseconduse
+ inc progresspoints
+ mov lastweapon,2
+ mov getback,1
+ call removeobfrominv
+ ret
+
+notinpool: call showfirstuse
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+Useelvdoor proc near
+
+ cmp withobject,255
+ jnz gotdoorwith
+ call withwhat
+ ret
+gotdoorwith: mov al,withobject
+ mov ah,withtype
+ mov cl,"A"
+ mov ch,"X"
+ mov dl,"E"
+ mov dh,"D"
+ call compare
+ jz axeondoor
+ mov al,14
+ mov cx,300
+ call showpuztext
+ call putbackobstuff
+ ret
+
+axeondoor: mov al,15
+ mov cx,300
+ call showpuztext
+ inc progresspoints
+
+ mov watchingtime,46*2
+ mov reeltowatch,31
+ mov endwatchreel,77
+ mov watchspeed,1
+ mov speedcount,1
+ mov getback,1
+ ret
+
+ endp
+
+;------------------------------------------------------------------------------
+
+Withwhat proc near ;Gets player to identify object
+ ;to use selected item with.
+ call createpanel
+ call showpanel
+ call showman
+ call showexit
+ mov al,command
+ mov ah,objecttype
+ push cs
+ pop es
+ mov di,offset cs:commandline
+ call copyname
+
+ mov di,100
+ mov bx,21
+ mov dl,200
+ mov al,63
+ mov ah,2
+ call printmessage2
+
+ mov di,lastxpos
+ add di,5
+ mov bx,21
+ push cs
+ pop es
+ mov si,offset cs:commandline
+ mov dl,220
+ mov al,0
+ mov ah,0
+ call printdirect
+
+ mov di,lastxpos
+ add di,5
+ mov bx,21
+ mov dl,200
+ mov al,63
+ mov ah,3
+ call printmessage2
+
+ call fillryan
+ mov commandtype,255
+ call readmouse
+ call showpointer
+ call worktoscreen
+ call delpointer
+ mov invopen,2
+ ret
+
+ endp
+
+
+
+
+
+Selectob proc near
+
+ call findinvpos
+ mov ax,[es:bx]
+ cmp al,255
+ jnz canselectob
+ call blank
+ ret
+
+canselectob: mov withobject,al
+ mov withtype,ah
+ cmp ax,oldsubject
+ jnz diffsub3
+ cmp commandtype,221
+ jz alreadyselob
+ mov commandtype,221
+
+diffsub3: mov oldsubject,ax
+ mov bx,ax
+ mov al,0
+ call commandwithob
+alreadyselob: mov ax,mousebutton
+ cmp ax,oldbutton
+ jz notselob
+ and ax,1
+ jnz doselob
+notselob: ret
+
+doselob: call delpointer
+ mov invopen,0
+ call useroutine
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+Compare proc near
+
+ sub dl,"A"
+ sub dh,"A"
+ sub cl,"A"
+ sub ch,"A"
+ push cx dx
+ call getanyaddir
+ pop dx cx
+ cmp [es:bx+12],cx
+ jnz comparefin
+ cmp [es:bx+14],dx
+comparefin: ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+Findsetobject proc near ;searches set object ID's
+ ;for contents of ax,cx
+ sub al,"A" ;returns number in al and data
+ sub ah,"A" ;start point in es:bx
+ sub cl,"A"
+ sub ch,"A"
+ mov es,setdat
+ mov bx,0
+ mov dl,0 ;dl counts object number
+findsetloop: cmp al,[es:bx+12]
+ jnz nofind
+ cmp ah,[es:bx+13]
+ jnz nofind
+ cmp cl,[es:bx+14]
+ jnz nofind
+ cmp ch,[es:bx+15]
+ jnz nofind
+ mov al,dl
+ ret
+nofind: add bx,64
+ inc dl
+ cmp dl,128 ;number of objects to search
+ jnz findsetloop
+ mov al,dl
+ ret
+
+ endp
+
+
+
+
+
+
+Findexobject proc near ;searches ex object ID's
+ ;for contents of ax,cx
+ sub al,"A" ;returns number in al and data
+ sub ah,"A" ;start point in es:bx
+ sub cl,"A"
+ sub ch,"A"
+ mov es,extras
+ mov bx,exdata
+ mov dl,0 ;dl counts object number
+findexloop: cmp al,[es:bx+12]
+ jnz nofindex
+ cmp ah,[es:bx+13]
+ jnz nofindex
+ cmp cl,[es:bx+14]
+ jnz nofindex
+ cmp ch,[es:bx+15]
+ jnz nofindex
+ mov al,dl
+ ret
+nofindex: add bx,16
+ inc dl
+ cmp dl,numexobjects ;number of objects to search
+ jnz findexloop
+ mov al,dl
+ ret
+
+ endp
+
+
+
+Isryanholding proc near
+
+ sub al,"A" ;returns number in al and data
+ sub ah,"A" ;start point in es:bx
+ sub cl,"A"
+ sub ch,"A"
+ mov es,extras
+ mov bx,exdata
+ mov dl,0 ;dl counts object number
+searchinv: cmp byte ptr [es:bx+2],4
+ jnz nofindininv
+ cmp al,[es:bx+12]
+ jnz nofindininv
+ cmp ah,[es:bx+13]
+ jnz nofindininv
+ cmp cl,[es:bx+14]
+ jnz nofindininv
+ cmp ch,[es:bx+15]
+ jnz nofindininv
+ mov al,dl
+ cmp al,numexobjects
+ ret
+nofindininv: add bx,16
+ inc dl
+ cmp dl,numexobjects ;number of objects to search
+ jnz searchinv
+ mov al,dl
+ cmp al,numexobjects ;if not zero he is holding
+ ret ;if zero, he is not holding
+
+ endp
+
+
+
+
+Checkinside proc near ;finds an extra object inside
+ ;object number al, type ah
+
+ mov es,extras
+ mov bx,exdata
+ mov cl,0
+insideloop: cmp al,[es:bx+3] ;OI! might need to check room number!!!
+ jnz notfoundinside
+ cmp ah,[es:bx+2]
+ jnz notfoundinside
+ ret
+notfoundinside: add bx,16
+ inc cl
+ cmp cl,numexobjects
+ jnz insideloop
+ ret ;ch returns the object number
+ ;in the extras list
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+Usetext proc near
+
+ push es si
+ call createpanel
+ call showpanel
+ call showman
+ call showexit
+ call obicons
+ pop si es
+
+ mov di,36
+ mov bx,104
+ mov dl,241
+ mov al,0
+ mov ah,0
+ call printdirect
+
+ call worktoscreenm
+ ret
+
+ endp
+
+
+
+
+
+Putbackobstuff proc near
+
+ call createpanel
+ call showpanel
+ call showman
+ call obicons
+ call showexit
+ call obpicture
+ call describeob
+ call undertextline
+ mov commandtype,255
+ call readmouse
+ call showpointer
+ call worktoscreen
+ call delpointer
+ ret
+
+ endp
+
+
+
+
+
+
+
+Showpuztext proc near
+
+ push cx
+ call findpuztext
+ push es si
+ call createpanel
+ call showpanel
+ call showman
+ call showexit
+ call obicons
+ pop si es
+ mov di,36
+ mov bx,104
+ mov dl,241
+ mov ah,0
+ call printdirect
+ call worktoscreenm
+ pop cx
+ call hangonp
+ ret
+
+ endp
+
+
+
+Findpuztext proc near
+
+ mov ah,0
+ mov si,ax
+ add si,si
+ mov es,puzzletext
+ mov ax,[es:si]
+ add ax,textstart
+ mov si,ax
+ ret
+
+ endp
+
+
+
+;-------------------------------------------------------------------------------
+
+Placesetobject proc near
+
+ push es bx
+ mov cl,0
+ mov ch,0
+ call findormake
+ call getsetad
+ mov byte ptr [es:bx+58],0
+ pop bx es
+ ret
+
+ endp
+
+
+
+
+Removesetobject proc near
+
+ push es bx
+ mov cl,255
+ mov ch,0
+ call findormake
+ call getsetad
+ mov byte ptr [es:bx+58],255
+ pop bx es
+ ret
+
+ endp
+
+
+
+
+Issetobonmap proc near
+
+ push es bx
+ call getsetad
+ mov al,[es:bx+58]
+ pop bx es
+ cmp al,0
+ ret
+
+ endp
+
+
+
+
+
+
+Placefreeobject proc near
+
+ push es bx
+ mov cl,0
+ mov ch,1
+ call findormake
+ call getfreead
+ mov byte ptr [es:bx+2],0
+ pop bx es
+ ret
+
+ endp
+
+
+
+
+
+Removefreeobject proc near
+
+ push es bx
+ ;mov cl,255
+ ;mov ch,1
+ ;call findormake
+ call getfreead
+ mov byte ptr [es:bx+2],255
+ pop bx es
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+Findormake proc near
+
+ mov bx,listofchanges
+ push ax
+ mov es,buffers
+ mov ah,reallocation
+changeloop: cmp byte ptr [es:bx],255
+ jz haventfound
+ cmp ax,[es:bx]
+ jnz nofoundchange
+ cmp ch,[es:bx+3]
+ jz foundchange
+nofoundchange: add bx,4
+ jmp changeloop
+foundchange: pop ax
+ mov [es:bx+2],cl
+ ret
+haventfound: mov [es:bx],ax
+ mov [es:bx+2],cx
+ pop ax
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+Switchryanon proc near
+
+ mov ryanon,255
+ ret
+
+ endp
+
+
+
+
+
+Switchryanoff proc near
+
+ mov ryanon,1
+ ret
+
+ endp
+
+
+
+Setallchanges proc near
+
+ mov es,buffers
+ mov bx,listofchanges
+setallloop: mov ax,[es:bx]
+ cmp al,255
+ jz endsetloop
+ mov cx,[es:bx+2]
+ add bx,4
+ cmp ah,reallocation
+ jnz setallloop
+ push es bx
+ call dochange
+ pop bx es
+ jmp setallloop
+endsetloop: ret
+
+ endp
+
+
+
+
+
+
+Dochange proc near
+
+ cmp ch,0
+ jz object
+ cmp ch,1
+ jz freeobject
+
+path: push cx
+ mov ah,0
+ add ax,ax
+ add ax,ax
+ add ax,ax
+ push ax
+ mov al,ch
+ sub al,100
+ mov ah,0
+ mov cx,144
+ mul cx
+ pop bx
+ add bx,ax
+ add bx,pathdata
+ mov es,reels
+ pop cx
+ mov byte ptr [es:bx+6],cl
+nopath: ret
+
+object: push cx
+ call getsetad
+ pop cx
+ mov [es:bx+58],cl
+ ret
+
+freeobject: push cx
+ call getfreead
+ pop cx
+ cmp byte ptr [es:bx+2],255
+ jnz beenpickedup
+ mov [es:bx+2],cl
+beenpickedup: ret
+
+ endp
+
+
+
+Autoappear proc near ;places objects that appear
+ ;in rooms after certain
+ cmp location,32 ;conditions are met.
+ jnz notinalley
+ mov al,5 ;switch off travel to
+ call resetlocation ;hotel after kill
+ mov al,10
+ call setlocation
+ mov destpos,10
+ ret
+notinalley: cmp reallocation,24
+ jnz notinedens
+ cmp generaldead,1
+ jnz edenspart2
+ inc generaldead
+ mov al,44
+ call placesetobject
+ mov al,18
+ call placesetobject
+ mov al,93
+ call placesetobject
+ mov al,92
+ call removesetobject
+ mov al,55
+ call removesetobject
+ mov al,75
+ call removesetobject
+ mov al,84
+ call removesetobject
+ mov al,85
+ call removesetobject
+ ret
+edenspart2: cmp sartaindead,1
+ jnz notedens2
+ mov al,44
+ call removesetobject
+ mov al,93
+ call removesetobject
+ mov al,55
+ call placesetobject
+ inc sartaindead
+notedens2: ret
+notinedens: cmp reallocation,25
+ jnz notonsartroof
+ mov newsitem,3
+ mov al,6
+ call resetlocation ;turn off Sartain Industries
+ mov al,11
+ call setlocation ;turn on carpark for later
+ mov destpos,11
+ ret
+notonsartroof: cmp reallocation,2
+ jnz notinlouiss
+ cmp rockstardead,0
+ jz notinlouiss
+ mov al,23
+ call placesetobject
+notinlouiss: ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+;--------------------------------------------------------- Timed text stuff ----
+
+
+
+Getundertimed proc near
+
+ mov al,timedy
+ if foreign
+ sub al,3
+ endif
+ mov ah,0
+ mov bx,ax
+ mov al,timedx
+ mov ah,0
+ mov di,ax
+ mov ch,undertimedysize
+ mov cl,240
+ mov ds,buffers
+ mov si,undertimedtext
+ call multiget
+ ret
+
+ endp
+
+
+
+
+Putundertimed proc near
+
+ mov al,timedy
+ if foreign
+ sub al,3
+ endif
+ mov ah,0
+ mov bx,ax
+ mov al,timedx
+ mov ah,0
+ mov di,ax
+ mov ch,undertimedysize
+ mov cl,240
+ mov ds,buffers
+ mov si,undertimedtext
+ call multiput
+ ret
+
+ endp
+
+
+
+
+
+
+Dumptimedtext proc near
+
+ cmp needtodumptimed,1
+ jnz nodumptimed
+ mov al,timedy
+ if foreign
+ sub al,3
+ endif
+ mov ah,0
+ mov bx,ax
+ mov al,timedx
+ mov ah,0
+ mov di,ax
+ mov cl,240
+ mov ch,undertimedysize
+ call multidump
+ mov needtodumptimed,0
+nodumptimed: ret
+
+ endp
+
+
+
+
+
+
+
+
+Setuptimeduse proc near
+
+ cmp timecount,0
+ jnz cantsetup
+
+ mov timedy,bh
+ mov timedx,bl
+ mov counttotimed,cx
+ add dx,cx
+ mov timecount,dx
+ mov bl,al
+ mov bh,0
+ add bx,bx
+ mov es,puzzletext
+ mov cx,textstart
+ mov ax,[es:bx]
+ add ax,cx
+ mov bx,ax
+ mov timedseg,es
+ mov timedoffset,bx
+cantsetup: ret
+
+ endp
+
+
+
+Setuptimedtemp proc near
+
+ if cd
+ cmp ah,0
+ jz notloadspeech3
+ mov dl,"T"
+ mov dh,ah
+ mov cl,"T"
+ mov ah,0
+ call loadspeech
+ cmp speechloaded,1
+ jnz notloadspeech3
+ mov al,50+12
+ call playchannel1
+ ret
+notloadspeech3:
+ endif
+ cmp timecount,0
+ jnz cantsetup2
+ mov timedy,bh
+ mov timedx,bl
+ mov counttotimed,cx
+ add dx,cx
+ mov timecount,dx
+ mov bl,al
+ mov bh,0
+ add bx,bx
+ mov es,textfile1
+ mov cx,textstart
+ mov ax,[es:bx]
+ add ax,cx
+ mov bx,ax
+ mov timedseg,es
+ mov timedoffset,bx
+cantsetup2: ret
+
+ endp
+
+
+
+
+
+
+
+Usetimedtext proc near
+
+ cmp timecount,0
+ jz notext
+ dec timecount
+ cmp timecount,0
+ jz deltimedtext
+ mov ax,timecount
+ cmp ax,counttotimed
+ jz firsttimed
+ jnc notext
+ jmp notfirsttimed
+firsttimed: call getundertimed
+notfirsttimed: mov bl,timedy
+ mov bh,0
+ mov al,timedx
+ mov ah,0
+ mov di,ax
+ mov es,timedseg
+ mov si,timedoffset
+ mov dl,237
+ mov ah,0
+ call printdirect
+ mov needtodumptimed,1
+notext: ret
+
+deltimedtext: call putundertimed
+ mov needtodumptimed,1
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+
+Edenscdplayer proc near
+
+ call showfirstuse
+ mov watchingtime,18*2
+ mov reeltowatch,25
+ mov endwatchreel,42
+ mov watchspeed,1
+ mov speedcount,1
+ mov getback,1
+ ret
+
+ endp
+
+
+
+
+
+Usewall proc near
+
+ call showfirstuse
+ cmp manspath,3
+ jz gobackover
+ mov watchingtime,30*2
+ mov reeltowatch,2
+ mov endwatchreel,31
+ mov watchspeed,1
+ mov speedcount,1
+ mov getback,1
+ mov al,3
+ call turnpathon
+ mov al,4
+ call turnpathon
+ mov al,0
+ call turnpathoff
+ mov al,1
+ call turnpathoff
+ mov al,2
+ call turnpathoff
+ mov al,5
+ call turnpathoff
+ mov manspath,3
+ mov finaldest,3
+ call findxyfrompath
+ mov resetmanxy,1
+ call switchryanoff
+ ret
+gobackover: mov watchingtime,30*2
+ mov reeltowatch,34
+ mov endwatchreel,60
+ mov watchspeed,1
+ mov speedcount,1
+ mov getback,1
+ mov al,3
+ call turnpathoff
+ mov al,4
+ call turnpathoff
+ mov al,0
+ call turnpathon
+ mov al,1
+ call turnpathon
+ mov al,2
+ call turnpathon
+ mov al,5
+ call turnpathon
+ mov manspath,5
+ mov finaldest,5
+ call findxyfrompath
+ mov resetmanxy,1
+ call switchryanoff
+ ret
+
+ endp
+
+
+
+
+
+
+
+Usechurchgate proc near
+
+ cmp withobject,255
+ jnz gatewith
+ call withwhat
+ ret
+gatewith: mov al,withobject
+ mov ah,withtype
+ mov cl,"C"
+ mov ch,"U"
+ mov dl,"T"
+ mov dh,"T"
+ call compare
+ jz cutgate
+ mov cx,300
+ mov al,14
+ call showpuztext
+ call putbackobstuff
+ ret
+
+cutgate: call showfirstuse
+ mov watchingtime,64*2
+ mov reeltowatch,4
+ mov endwatchreel,70
+ mov watchspeed,1
+ mov speedcount,1
+ mov getback,1
+ inc progresspoints
+ mov al,3
+ call turnpathon
+ cmp aidedead,0
+ jz notopenchurch
+ mov al,2
+ call turnpathon
+notopenchurch: ret
+
+ endp
+
+
+
+
+
+Usegun proc near
+
+ cmp objecttype,4
+ jz istakengun
+ call showseconduse
+ call putbackobstuff
+ ret
+istakengun: cmp reallocation,22
+ jnz notinpoolroom
+ mov cx,300
+ mov al,34
+ call showpuztext
+ mov lastweapon,1
+ mov combatcount,39
+ mov getback,1
+ inc progresspoints
+ ret
+notinpoolroom: cmp reallocation,25
+ jnz nothelicopter
+ mov cx,300
+ mov al,34
+ call showpuztext
+ mov lastweapon,1
+ mov combatcount,19
+ mov getback,1
+ mov dreamnumber,2
+ mov roomafterdream,38
+ mov sartaindead,1
+ inc progresspoints
+ ret
+nothelicopter: cmp reallocation,27
+ jnz notinrockroom
+ mov cx,300
+ mov al,46
+ call showpuztext
+ mov pointermode,2 ;0
+ mov rockstardead,1
+ mov lastweapon,1
+ mov newsitem,1
+ mov getback,1
+ mov roomafterdream,32 ; skip
+ mov dreamnumber,0
+ inc progresspoints
+ ret
+notinrockroom: cmp reallocation,8
+ jnz notbystudio
+ cmp mapx,22
+ jnz notbystudio
+ cmp mapy,40
+ jnz notbystudio
+ mov al,92
+ call issetobonmap
+ jz notbystudio
+ cmp manspath,9
+ jz notbystudio
+ mov destination,9
+ mov finaldest,9
+ call autosetwalk
+ mov lastweapon,1
+ mov getback,1
+ inc progresspoints
+ ret
+notbystudio: cmp reallocation,6
+ jnz notsarters
+ cmp mapx,11
+ jnz notsarters
+ cmp mapy,20
+ jnz notsarters
+ mov al,5
+ call issetobonmap
+ jnz notsarters
+ mov destination,1
+ mov finaldest,1
+ call autosetwalk
+ mov al,5
+ call removesetobject
+ mov al,6
+ call placesetobject
+ mov al,1
+ mov ah,roomnum
+ dec ah
+ call turnanypathon
+ mov liftflag,1
+ mov watchingtime,40*2
+ mov reeltowatch,4
+ mov endwatchreel,43
+ mov watchspeed,1
+ mov speedcount,1
+ mov getback,1
+ inc progresspoints
+ ret
+notsarters: cmp reallocation,29
+ jnz notaide
+ mov getback,1
+ mov al,13
+ call resetlocation
+ mov al,12
+ call setlocation
+ mov destpos,12
+ mov destination,2
+ mov finaldest,2
+ call autosetwalk
+ mov watchingtime,164*2
+ mov reeltowatch,3
+ mov endwatchreel,164
+ mov watchspeed,1
+ mov speedcount,1
+ mov aidedead,1
+ mov dreamnumber,3
+ mov roomafterdream,33
+ inc progresspoints
+ ret
+notaide: cmp reallocation,23
+ jnz notwithboss
+ cmp mapx,0
+ jnz notwithboss
+ cmp mapy,50
+ jnz notwithboss
+ cmp manspath,5
+ jz pathokboss
+ mov destination,5
+ mov finaldest,5
+ call autosetwalk
+pathokboss: mov lastweapon,1
+ mov getback,1
+ ret
+notwithboss: cmp reallocation,8
+ jnz nottvsoldier
+ cmp mapx,11
+ jnz nottvsoldier
+ cmp mapy,10
+ jnz nottvsoldier
+ cmp manspath,2
+ jz pathoktv
+ mov destination,2
+ mov finaldest,2
+ call autosetwalk
+pathoktv: mov lastweapon,1
+ mov getback,1
+ ret
+nottvsoldier: call showfirstuse
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+
+
+
+
+Useshield proc near
+
+ cmp reallocation,20
+ jnz notinsartroom
+ cmp combatcount,0
+ jz notinsartroom
+ mov lastweapon,3
+ call showseconduse
+ mov getback,1
+ inc progresspoints
+ call removeobfrominv
+ ret
+notinsartroom: call showfirstuse
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+
+
+
+Usebuttona proc near
+
+ mov al,95
+ call issetobonmap
+ jz donethisbit
+
+ call showfirstuse
+ mov al,0
+ mov ah,roomnum
+ dec ah
+ call turnanypathon
+ mov al,9
+ call removesetobject
+ mov al,95
+ call placesetobject
+
+ mov watchingtime,15*2
+ mov reeltowatch,71
+ mov endwatchreel,85
+ mov watchspeed,1
+ mov speedcount,1
+
+ mov getback,1
+ inc progresspoints
+ ret
+donethisbit: call showseconduse
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+
+Useplate proc near
+
+ cmp withobject,255
+ jnz platewith
+ call withwhat
+ ret
+platewith: mov al,withobject
+ mov ah,withtype
+ mov cl,"S"
+ mov ch,"C"
+ mov dl,"R"
+ mov dh,"W"
+ call compare
+ jz unscrewplate
+ mov al,withobject
+ mov ah,withtype
+ mov cl,"K"
+ mov ch,"N"
+ mov dl,"F"
+ mov dh,"E"
+ call compare
+ jz triedknife
+ mov cx,300
+ mov al,14
+ call showpuztext
+ call putbackobstuff
+ ret
+
+unscrewplate: mov al,20
+ call playchannel1
+ call showfirstuse
+ mov al,28
+ call placesetobject
+ mov al,24
+ call placesetobject
+ mov al,25
+ call removesetobject
+ mov al,0
+ call placefreeobject
+ inc progresspoints
+ mov getback,1
+ ret
+
+triedknife: mov cx,300
+ mov al,54
+ call showpuztext
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+
+
+Usewinch proc near
+
+ mov al,40
+ mov ah,1
+ call checkinside
+ cmp cl,numexobjects
+ jz nowinch
+ mov al,cl
+ mov ah,4
+ mov cl,"F"
+ mov ch,"U"
+ mov dl,"S"
+ mov dh,"E"
+ call compare
+ jnz nowinch
+
+ mov watchingtime,217*2
+ mov reeltowatch,0
+ mov endwatchreel,217
+ mov watchspeed,1
+ mov speedcount,1
+ mov destpos,1
+ mov newlocation,45
+ mov dreamnumber,1
+ mov roomafterdream,44
+ mov generaldead,1
+ mov newsitem,2
+ mov getback,1
+ inc progresspoints
+ ret
+
+nowinch: call showfirstuse
+ call putbackobstuff
+ ret
+
+ endp
+
+
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file