Subversion Repositories NedoOS

Rev

Rev 922 | Details | Compare with Previous | Last modification | View Log

Rev Author Line No. Line
228 demige 1
        DEVICE ZXSPECTRUM1024
2
;уровень 0-7
3
 
4
LEVDAT  EQU     #79C0 ;адр. нач данных уровня
5
        ORG     LEVDAT
6
begin
7
;******************************************************
8
;********* ГЛОБАЛЬНЫЕ ПАРАМЕТРЫ УРОВНЯ ****************
9
 
10
isRUNL  RET ;#C9 - обычный уровень, иначе кодовый блок
11
 
12
;--------характеристики сторон-------(0)-обнулять вначале
13
 
14
;параметры играющего
15
hTOWER  DEFB 3 ;мак.число типов вооруж (1-4)
16
hARC    DEFB 0 ;0-2 (0)
17
hHORSE  DEFB 0 ;0-3 (0)
18
hSHILD  DEFB 0 ;0-2 (0)
19
hBLADE  DEFB 0 ;0-2 (0)
20
hmaxC   DEFB 2 ;1-3 чиcло возможн иccл закл свящ
21
hmaxW   DEFB 1 ;1-3 число  --"-- закл волш
22
 
23
;дополнительные параметры играющего
24
hmaxB1  DEFB 2 ;макс число стандарт зданий (0 или 1-2)
25
hmaxB2  DEFB 3 ;maкc число доп эданий (0, 1-4)
26
hWALL   DEFB 0 ;0/17 - можно/нельзя строить стены
27
 
28
;параметры компьютера
29
kTOWER  DEFB 3 ;1-4
30
kARC    DEFB 0 ;0-2
31
kHORSE  DEFB 1 ;0-3
32
kSHILD  DEFB 0 ;0-2
33
kBLADE  DEFB 0 ;0-2
34
kmaxC   DEFB 1 ;1,3 чиcло иccл закл (0-нет свящ)
35
kmaxW   DEFB 0 ;1..3 чиcло иccл закл (0-нет волш)
36
 
37
;----------- параметры стратегии врага ----------------
38
;/wSTRATEG  (1.ед.изм - 8тик)
39
levMAX  DEFB 4   ;макс число народу в группе (для уровня) = 1..10
40
levDEL  DEFB 57  ;средн задержка межд сборами (для уровня) = 1..X
41
lev1ST  DEFB 242 ;нач задержка первого сбора = 1..
42
 ;Тип уровня 0 ;обычный
43
 ;Тип уровня 1 ;атакованый охранник становится атакующим
44
 ;Тип уровня 2 ;см. тип 1 + охранники иногда идут в атаку
45
levTYP  DEFB 0   ;тип уровня (0-обычный)
46
;-------- цветовые настройки -------
47
COLOR   DEFB #28 ;цвет поля
48
 
49
;-------- общие параметры уровня -----
50
MASTER  DEFB 0  ; кто играет 0/1 - люди?кунги
51
LEVEL   DEFB 7  ; номер уровня
52
MONEY   DEFB 0,0,1,0,0,0 ;деньги
53
WOOD    DEFB 0,0,0,5,0,0 ;леc
54
TASK_M  ;задание: 3 строки по 20+1 символов = 63
55
        incbin "../task/w107.tsk"
56
LEVRES  DEFB 0,0,0,43,0,0,127 ;текущее время прохождения
57
 
58
;------- используемые файлы -------
59
 
60
fsLAND  DEFB 1; 1-4
61
fsMUS   DEFB 1; 0-7
62
 
63
 
64
;****************** Инициализируемые переменные ****************
65
;--------------- (входят в описание каждого уровня) ------------
66
;/выбраные герои
67
SEL_T DEFB 0 ;0-none;1-один;2-6-group;7-кунг,8-здание
68
SEL_N DEFB 0,0,0,0,0,0 ;номера 6 выбр гер/зд
69
 
70
sel_en DEFB #FF ;выбранный враг-цель
71
sel_ti DEFB 0 ;время отображения цели
72
 
73
;/outLED
74
LED DEFB 4,3,4,3,4,3
75
 
76
;/putTX
77
_msg    DEFB #FF
78
pTX_AD  DEFW 0;WNAMES
79
TX_AD   DEFW 0;WNAMES
80
pTXdel  DEFB 0 ;t задержки на выв экcтр cообщ
81
 
82
;/M_PLAT
83
isPLAT  DEFB 0; 0/1-есть/нет площадки
84
szPLAT  DEFB 0; размер площадки под стр-во (1..3, 0-нет)
85
bcPLAT  DEFW 0; размеры
86
adPLAT  DEFW 0; позиция in ATR
87
waPLAT  DEFB 0; если стена - 1
88
 
89
;/PAUSE
90
onPAUS  DEFB 1 ;0-включить паузу
91
 
92
;/SOUNDn
93
NOTA    DEFW se ;текущ нота
94
se      DEFW #FFFF ;конст
95
levSND  DEFB 0 ;0-макс громкость
96
sIY56   DEFW 0 ;координаты снарядов
97
priv_S  DEFB 0 ;текущ приоритет (0-нет мелодии)
98
NOTA2   DEFW se ;нота новой мелодии
99
priv_2  DEFB 0  ;нов приор
100
 
101
;/STRATEG - variables
102
pntX    DEFB 32  ;-коорд т.сбора
103
pntY    DEFB 31  ;-/
104
pntNUM  DEFB 0   ;-число оставшихся до конца сбора воинов (0-конец сбора, 255-нов сбор)
105
pntDEL  DEFB 22  ;-время до нач.след сбора/задержка на пр-во воина
106
pntTAR  DEFB #FF ;-объект атаки (0-101 - воины, #80.. -здания, #FF-нет)
107
pntUNI  DEFB 0   ;-отряд разнородный/однородный (0/member typ)
108
pntEN   DEFB 0,0,0,0,0,0
109
                 ;-разреш пр-во вида (3..8) (0-нет)
110
pntMAN  DEFB 0   ;тип пораждаемого воина
111
 
112
;/isEND
113
END_1   DEFB 0  ;0/1/2-none/нет врагов/нет людей
114
END_2   DEFB 0  ;не0-князь вошёл в пещеру
115
TheEND  DEFB 0  ;0/1/2-none/победа людей/победа врагов (устанавл в _cLOOP)
116
;-----------(резерв)-------------
117
dummy   DEFS 6,0
118
;-----------процедуры------------
119
pcLOOP  JR _cLOOP
120
pcINI   ;стартовая процедура
121
        RET
122
;_cLOOP  ;процедура окончания под землёй
123
;        LD A,(END_2)
124
;        OR A
125
;        JR NZ,_cLO1
126
;        LD A,(END_1)
127
;        CP 1
128
;        RET Z
129
;_cLO1   LD (TheEND),A
130
;        RET
131
tst4OK   DEFB #11 ;0-защита проверена
132
_cLOOP   ;стандартная проц окончания
133
         LD A,(END_1)
134
         LD (TheEND),A
135
        if 1==0
136
;-----p0 защита 4
137
        LD A,(tst4OK)
138
        OR A
139
        RET Z
140
        LD A,R
141
        AND %111011
142
        RET NZ
143
        XOR A
144
        LD (tst4OK),A
145
TST#4   ;XOR A ;[**]
146
        LD HL,#C000
147
        LD BC,#3400
148
tst40   ADD A,(HL)
149
        RLCA
150
        INC HL
151
        DEC C
152
        JR NZ,tst40
153
        DEC B
154
        JR NZ,tst40
155
        LD HL,#7650
156
        CP (HL)
157
        RET Z
158
        LD A,37
159
        LD (KUNGE+13),A ;err
160
        LD (KUNGE+32),HL
161
        endif
162
        RET
163
 
164
;------ обнуление основных структур данных ---
165
 
166
        DEFS #7AA0-$,#27
167
BULL    DEFS 24*12      ;from #7AA0
168
MINE    DEFS 8*8        ;from #7BC0
169
HBUILD  DEFS 32*8       ;from #7C00
170
KBUILD  DEFS 32*8       ;from #7D00
171
BUF512  EQU #7E00; буфер512     ;from #7E00
172
MAP     EQU #8000; DEFS #1000   ;from #8000
173
MAP2    EQU #9000; DEFS #1000   ;from #9000
174
DSCR    EQU #A000; DEFS #1800   ;from #A000
175
HUMAN   EQU #B800; DEFS 48*16   ;from #B800
176
KUNGE   EQU #BB00; DEFS 48*16   ;from #BB00
177
SLAVE   EQU #BE00; DEFS 6*16    ;from #BE00
178
XY      EQU #BE60; DEFS 102*4   ;from #BE60
179
;NEXT   EQU #BFF8; nop
180
 
181
;для мар2:
182
;0-своб.поле, 1-граница, 2 -непрох
183
;#38-#3F        шахты
184
;#40-#5F        здания людей
185
;#60-#7F        здания кунгов
186
;#80-#AF        люди
187
;#B0-#DF        кунги
188
;#E0-#FF        пленники
189
 
190
 
191
;------------------------------------------------------------
192
;--------- Золото шахт ----- (4096+512 переносится на BUF512)
193
 
194
datMIN  DEFW 190,270,380,95,9,9,9,9 ;золото для шахт/100
195
        ;0-чей (255-конец), 1-тип, 2/3-XY,4-none
196
 
197
;------ Описание героев и карты ---
198
 
199
datHER
200
        incbin "../map/w107_s1.her"
201
        incbin "../map/w107_s1.map"
202
 
203
;-------Картинка-----
204
datSCR
205
        incbin "../barkov/horse.scr"
206
 
207
;----------------------------------
208
end
930 alone 209
        savebin "br/br107.dat",begin,end-begin ;in current dir (not in dir of this source)