aboutsummaryrefslogtreecommitdiff
path: root/devtools/tasmrecover/dreamweb/vars.asm
blob: 8678231a9d232b3a106163d2dd8dc2c26d805799 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
;Copyright (c) 1990-2011 by Neil Dodwell
;Released with permission from Neil Dodwell under GPLv2
;See LICENSE file for full license text
;---------------------------------------------------Equates and definitions----

Inputport	equ	63h
Mapwidth	equ	66 ;132/2
Maplength	equ	60 ;6/2
Tablesize	equ	32		;size of each entry in spritetable
Itempicsize	equ	44		;size of inventory slots
Opsy	equ	52
Opsx	equ	60
Inventx	equ	80
Inventy 	equ	58
Zoomx	equ	8
Zoomy	equ	132
Keypadx	equ	36+112
Keypady	equ	72
Diaryx	equ	68+24
Diaryy	equ	48+12
Symbolx	equ	64
Symboly	equ	56
Menux	equ	80+40
Menuy	equ	60

	if	foreign
Undertextsizex	equ	228
Undertextsizey	equ	13
Undertimedysize	equ	30
	else
Undertextsizex	equ	180
Undertextsizey	equ	10
Undertimedysize	equ	24
	endif

Numchanges	equ	250

Textunder	equ	0		;offsets for items in buffer segment
Openinvlist	equ	textunder+(undertextsizex*undertextsizey)
Ryaninvlist	equ	openinvlist+32
Pointerback	equ	ryaninvlist+60
Mapflags	equ	pointerback+(32*32)
Startpal	equ	mapflags+(11*10*3)
Endpal	equ	startpal+768
Maingamepal	equ	endpal+768
Spritetable	equ	maingamepal+768
Setlist 	equ	spritetable+(32*tablesize)
Freelist	equ	setlist+(128*5)
Exlist	equ	freelist+(80*5)
Peoplelist	equ	exlist+(100*5)
Zoomspace	equ	peoplelist+(12*5)
Printedlist	equ	zoomspace+(46*40)
Listofchanges	equ	printedlist+(5*80)
Undertimedtext	equ	listofchanges+(numchanges*4)
Rainlist	equ	undertimedtext+(256*undertimedysize)
Initialreelrouts	equ	rainlist+(6*64)
Initialvars	equ	initialreelrouts+lenofreelrouts
Lengthofbuffer	equ	initialvars+lengthofvars
		               
Flags	equ	0		;offsets of items in backdrop segment
Blocks	equ	flags+192
Map	equ	0
Lengthofmap	equ	map+(mapwidth*maplength)

Intextdat	equ	0
Intext	equ	intextdat+(38*2)
Blocktextdat	equ	0
Blocktext	equ	blocktextdat+(98*2)
Settextdat	equ	0
Settext 	equ	settextdat+(130*2)
Freetextdat	equ	0
Freetext	equ	freetextdat+(82*2)

Numexobjects	equ	114
Exframeslen	equ	30000
Extextlen	equ	18000

Exframedata	equ	0
Exframes	equ	exframedata+2080
Exdata	equ	exframes+exframeslen
Extextdat	equ	exdata+(16*numexobjects)
Extext	equ	extextdat+((numexobjects+2)*2)
Lengthofextra	equ	extext+extextlen

Framedata	equ	0
Frames	equ	framedata+2080

Frframedata	equ	0
Frframes	equ	frframedata+2080

Personframes	equ	0
Persontxtdat	equ	personframes+24
Persontext	equ	persontxtdat+(1026*2)

Pathdata	equ	0
Reellist	equ	pathdata+(36*144)

Lenofmapstore	equ	22*8*20*8
Maplen	equ	mapwidth*maplength
Freedatlen	equ	16*80
Setdatlen	equ	64*128
Textstart	equ	66*2

;-----------------------------------------------------------------Variables----


startvars	db	0
progresspoints	db	0
watchon	db	0
shadeson	db	0
secondcount	db	0
minutecount	db	30
hourcount	db	19
zoomon	db	1
location	db	0
expos	db	0
exframepos	dw	0
extextpos	dw	0
card1money	dw	0
listpos	dw	0
ryanpage	db	0


watchingtime	dw	0
reeltowatch	dw	-1		;reel plays from here in mode 0
endwatchreel	dw	0		;and stops here. Mode set to 1
speedcount	db	0
watchspeed	db	0
reeltohold	dw	-1		;if mode is 1 hold on this reel
endofholdreel	dw	-1		;if mode is 2 then play to end of
watchmode	db	-1		;hold reel. Set mode back to -1
destafterhold	db	0		;set walking destination.

newsitem	db	0

liftflag	db	0
liftpath	db	0
lockstatus	db	1
doorpath	db	0
counttoopen	db	0
counttoclose	db	0	
rockstardead	db	0
generaldead	db	0
sartaindead	db	0
aidedead	db	0
beenmugged	db	0

gunpassflag	db	0
canmovealtar	db	0
talkedtoattendant	db	0
talkedtosparky	db	0
talkedtoboss	db	0
talkedtorecep	db	0
cardpassflag	db	0
madmanflag	db	0
keeperflag	db	0
lasttrigger	db	0
mandead	db	0
seed	db	1,2,3
needtotravel	db	0
throughdoor	db	0
newobs	db	0
ryanon	db	255
combatcount	db	0
lastweapon	db	-1

dreamnumber	db	0
roomafterdream	db	0

shakecounter	db	48

lengthofvars	equ	$-startvars


speechcount	db	0

charshift	dw	0
kerning	db	0

brightness	db	0

roomloaded	db	0

didzoom	db	0

linespacing	dw	10
textaddressx	dw	13
textaddressy	dw	182		;address on screen for text
textlen	db	0
lastxpos	dw	0

icontop	dw	0
iconleft	dw	0
itemframe	db	0
itemtotran	db	0
roomad	dw	0
oldsubject	dw	0

withobject	db	0
withtype	db	0

lookcounter	dw	0

command	db	0
commandtype	db	0
oldcommandtype	db	0
objecttype	db	0
getback	db	0
invopen	db	0
mainmode	db	0
pickup	db	0
lastinvpos	db	0
examagain	db	0
newtextline	db	0

openedob	db	0
openedtype	db	0

oldmapadx	dw	0
oldmapady	dw	0
mapadx	dw	0
mapady	dw	0
mapoffsetx	dw	104
mapoffsety	dw	38

mapxstart	dw	0
mapystart	dw	0
mapxsize	db	0
mapysize	db	0

havedoneobs	db	0
manisoffscreen	db	0
rainspace	db	0

facing	db	0
leavedirection	db	0
turntoface	db	0
turndirection	db	0

maintimer	dw	0
introcount	db	0
arrowad	dw	0
currentkey	db	0
oldkey	db	0
useddirection	db	0
currentkey2	db	0

timercount	db	0
oldtimercount	db	0

mapx	db	0
mapy	db	0
newscreen	db	0
ryanx	db	0
ryany	db	0
lastflag	db	0
lastflagex	db	0
flagx	db	0
flagy	db	0

currentex	db	0
currentfree	db	0
currentframe	dw	0
framesad	dw	0
dataad	dw	0
frsegment	dw	0
objectx	dw	0
objecty	dw	0
offsetx	dw	0
offsety	dw	0
savesize	dw	0
savesource	dw	0
savex	db	0
savey	db	0
currentob	db	0
priorityDep	db	0	; dep for deprecated, I leave a byte here to minimize changes to the generated code

destpos	db	0

reallocation	db	0	 ;----------;some rooms have more than one
roomnum	db	0		;place in the Roomdata list, to
				;account for different start points
nowinnewroom	db	0		;this variable holds the rooms
resetmanxy	db	0		;real value - ie:which file it's in
newlocation	db	-1		;if set then room is loaded at end of watch mode, or straight away if not in watch mode
autolocation	db	-1
mustload	db	0
answered	db	0
saidno	db	0

doorcheck1	db	0
doorcheck2	db	0
doorcheck3	db	0
doorcheck4	db	0

mousex	dw	0
mousey	dw	0
mousebutton	dw	0
mousebutton1	dw	0
mousebutton2	dw	0
mousebutton3	dw	0
mousebutton4	dw	0
oldbutton	dw	0
oldx	dw	0
oldy	dw	0
lastbutton	dw	0
oldpointerx	dw	0
oldpointery	dw	0
delherex	dw	0
delherey	dw	0
pointerxs	db	32
pointerys	db	32
delxs	db	0
delys	db	0
pointerframe	db	0
pointerpower	db	0
auxpointerframe	db	0
pointermode	db	0
pointerspeed	db	0
pointercount	db	0
inmaparea	db	0

reelpointer	dw	0
slotdata	db	0
thisslot	db	0
slotflags	db	0
takeoff	dw	0

talkmode	db	0
talkpos	db	0
character	db	0
persondata	dw	0
talknum	db	0
numberinroom	db	0

currentcel	db	0
oldselection	db	0

stopwalking	db	0

mouseon	db	0
played	dw	0
timer1	db	0
timer2	db	0
timer3	db	0
wholetimer	dw	0
timer1to	db	0
timer2to	db	0
timer3to	db	0

watchdump	db	0

currentset	dw	0

logonum	db	0
oldlogonum	db	0
newlogonum	db	0
netseg	dw	0
netpoint	dw	0
keynum	db	0
cursorstate	db	0

pressed	db	0
presspointer	dw	0
graphicpress	db	0
presscount	db	0
keypadax	dw	0
keypadcx	dw	0
lightcount	db	0
folderpage	db	0
diarypage	db	0
menucount	db	0
symboltopx	db	0
symboltopnum	db	0
symboltopdir	db	0
symbolbotx	db	0
symbolbotnum	db	0
symbolbotdir	db	0

symboltolight	db	0
symbol1	db	0
symbol2	db	0
symbol3	db	0
symbolnum	db	0
dumpx	dw	0
dumpy	dw	0

walkandexam	db	0
walkexamtype	db	0
walkexamnum	db	0

cursloc	dw	0
curslocx	dw	0
curslocy	dw	0
curpos	dw	0
monadx	dw	0
monady	dw	0
gotfrom	dw	0

monsource	dw	0
numtodo	dw	0

timecount	dw	0
counttotimed	dw	0
timedseg	dw	0
timedoffset	dw	0
timedy	db	0
timedx	db	0
needtodumptimed	db	0

;recordpos	dw	0
;rechandle	dw	0
handle	dw	0

loadingorsave	db	0		;1 if load 2 if save
currentslot	db	0
cursorpos	db	0

colourpos	db	0
fadedirection	db	0
numtofade	db	0
fadecount	db	0
addtogreen	db	0
addtored	db	0
addtoblue	db	0


lastsoundreel	dw	0

soundbuffer	dw	0
soundbufferad	dw	0
soundbufferpage	db	0
soundtimes	db	0
needsoundbuff	db	0

oldint9seg	dw	-1
oldint9add	dw	-1
oldint8seg	dw	-1
oldint8add	dw	-1
oldsoundintseg	dw	0
oldsoundintadd	dw	0
soundbaseadd	dw	0
dsp_status	dw	0
dsp_write	dw	0
dmaaddress	db	0
soundint	db	5
sounddmachannel	db	1
sampleplaying	db	255
testresult	db	0
currentirq	db	0
speechloaded	db	0
speechlength	dw	0
volume	db	0
volumeto	db	0
volumedirection	db	0
volumecount	db	0

playblock	db	0

wongame	db	0

lasthardkey	db	0
bufferin	dw	0
bufferout	dw	0

extras	dw	0	;for allocated memory
workspace	dw	0	;allocated mem for screen buffer
mapstore	dw	0	;allocated mem for copy of room
charset1	dw	0	;allocated mem for normal charset
tempcharset	dw	0	;monitor char set
icons1	dw	0	;allocated mem for on screen stuff
icons2	dw	0
buffers	dw	0	;allocated mem for buffers
mainsprites	dw	0	;allocated mem for Ryan sprites
backdrop	dw	0
mapdata	dw	0

sounddata	dw	0
sounddata2	dw	0

recordspace	dw	0

freedat	dw	0
setdat	dw	0

reel1	dw	-1
reel2	dw	-1
reel3	dw	-1
roomdesc	dw	-1
freedesc	dw	-1
setdesc	dw	-1
blockdesc	dw	-1
setframes	dw	-1
freeframes	dw	-1
people	dw	-1
reels	dw	-1
commandtext	dw	-1
puzzletext	dw	-1
traveltext	dw	-1
tempgraphics	dw	-1
tempgraphics2	dw	-1
tempgraphics3	dw	-1
tempsprites	dw	-1

textfile1	dw	-1
textfile2	dw	-1
textfile3	dw	-1

blinkframe	db	23
blinkcount	db	0


reasseschanges	db	0	; if it's a 1 then obname will assume that
pointerspath	db	0	;the command has changed.
manspath	db	0	;ie. from "walk to" to "Examine"
pointerfirstpath	db	0
finaldest	db	0
destination	db	0
linestartx	dw	0
linestarty	dw	0
lineendx	dw	0
lineendy	dw	0
increment1	dw	0
increment2	dw	0
lineroutine	db	0
linepointer	db	0
linedirection	db	0
linelength	db	0

liftsoundcount	db	0

emmhandle	dw	0
emmpageframe	dw	0
emmhardwarepage	db	0

ch0emmpage	dw	0
ch0offset	dw	0
ch0blockstocopy	dw	0

ch0playing	db	0
ch0repeat	db	0
ch0oldemmpage	dw	0
ch0oldoffset	dw	0
ch0oldblockstocopy	dw	0

ch1playing	db	255
ch1emmpage	dw	0
ch1offset	dw	0
ch1blockstocopy	dw	0
ch1blocksplayed	dw	0

soundbufferwrite	dw	0

soundemmpage	dw	0
speechemmpage	dw	0

currentsample	db	-1
roomssample	db	0

gameerror	db	0

howmuchalloc	dw	0