Rev 922 | Details | Compare with Previous | Last modification | View Log
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 228 | demige | 1 | DEVICE ZXSPECTRUM1024 |
| 2 | ;уровень 0-4 |
||
| 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 2 ;мак.число типов вооруж (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 1 ;1-3 чиcло возможн иccл закл свящ |
||
| 21 | hmaxW DEFB 1 ;1-3 число --"-- закл волш |
||
| 22 | |||
| 23 | ;дополнительные параметры играющего |
||
| 24 | hmaxB1 DEFB 2 ;макс число стандарт зданий (0 или 1-2) |
||
| 25 | hmaxB2 DEFB 1 ;maкc число доп эданий (0, 1-4) |
||
| 26 | hWALL DEFB 0 ;0/17 - можно/нельзя строить стены |
||
| 27 | |||
| 28 | ;параметры компьютера |
||
| 29 | kTOWER DEFB 2 ;1-4 |
||
| 30 | kARC DEFB 0 ;0-2 |
||
| 31 | kHORSE DEFB 0 ;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 3 ;макс число народу в группе (для уровня) = 1..10 |
||
| 40 | levDEL DEFB 37 ;средн задержка межд сборами (для уровня) = 1..X |
||
| 41 | lev1ST DEFB 55 ;нач задержка первого сбора = 1.. |
||
| 42 | ;Тип уровня 0 ;обычный |
||
| 43 | ;Тип уровня 1 ;атакованый охранник становится атакующим |
||
| 44 | ;Тип уровня 2 ;см. тип 1 + охранники иногда идут в атаку |
||
| 45 | levTYP DEFB 0 ;тип уровня (0-обычный) |
||
| 46 | ;-------- цветовые настройки ------- |
||
| 47 | COLOR DEFB #30 ;цвет поля |
||
| 48 | |||
| 49 | ;-------- общие параметры уровня ----- |
||
| 50 | MASTER DEFB 0 ; кто играет 0/1 - люди?кунги |
||
| 51 | LEVEL DEFB 4 ; номер уровня |
||
| 52 | MONEY DEFB 0,0,0,5,0,0 ;деньги |
||
| 53 | WOOD DEFB 0,0,1,0,0,0 ;леc |
||
| 54 | TASK_M ;задание: 3 строки по 20+1 символов = 63 |
||
| 55 | incbin "../task/w104.tsk" |
||
| 56 | LEVRES DEFB 0,0,0,43,0,0,127 ;текущее время прохождения |
||
| 57 | |||
| 58 | ;------- используемые файлы ------- |
||
| 59 | |||
| 60 | fsLAND DEFB 1; 1-4 |
||
| 61 | fsMUS DEFB 0; 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 | if 1==0 |
||
| 122 | ;-----pM |
||
| 123 | |||
| 124 | tBOMBA |
||
| 125 | TST#0 XOR A ;[**] |
||
| 126 | LD HL,#4050 |
||
| 127 | LD BC,#3600 |
||
| 128 | tst00 SUB (HL) |
||
| 129 | INC HL |
||
| 130 | DEC C |
||
| 131 | JR NZ,tst00 |
||
| 132 | DEC B |
||
| 133 | JR NZ,tst00 |
||
| 134 | LD HL,#4002 |
||
| 135 | CP (HL) |
||
| 136 | JR NZ,t0nok |
||
| 137 | XOR A |
||
| 138 | LD (tBOMBA),A |
||
| 139 | t0nok LD DE,TST#0+1 |
||
| 140 | LD C,$-TST#0 |
||
| 141 | LDIR |
||
| 142 | ; |
||
| 143 | endif |
||
| 144 | _cLOOP ;стандартная проц окончания |
||
| 145 | LD A,(END_1) |
||
| 146 | LD (TheEND),A |
||
| 147 | if 1==1 |
||
| 148 | ret |
||
| 149 | else |
||
| 150 | ; |
||
| 151 | LD HL,tBOMBA |
||
| 152 | LD A,(HL) |
||
| 153 | OR A |
||
| 154 | RET Z |
||
| 155 | DEC (HL) |
||
| 156 | RET NZ |
||
| 157 | LD A,#DB |
||
| 158 | LD (KUNGE+64),A |
||
| 159 | endif |
||
| 160 | |||
| 161 | ;------ обнуление основных структур данных --- |
||
| 162 | |||
| 163 | DEFS #7AA0-$,#27 |
||
| 164 | BULL DEFS 24*12 ;from #7AA0 |
||
| 165 | MINE DEFS 8*8 ;from #7BC0 |
||
| 166 | HBUILD DEFS 32*8 ;from #7C00 |
||
| 167 | KBUILD DEFS 32*8 ;from #7D00 |
||
| 168 | BUF512 EQU #7E00; буфер512 ;from #7E00 |
||
| 169 | MAP EQU #8000; DEFS #1000 ;from #8000 |
||
| 170 | MAP2 EQU #9000; DEFS #1000 ;from #9000 |
||
| 171 | DSCR EQU #A000; DEFS #1800 ;from #A000 |
||
| 172 | HUMAN EQU #B800; DEFS 48*16 ;from #B800 |
||
| 173 | KUNGE EQU #BB00; DEFS 48*16 ;from #BB00 |
||
| 174 | SLAVE EQU #BE00; DEFS 6*16 ;from #BE00 |
||
| 175 | XY EQU #BE60; DEFS 102*4 ;from #BE60 |
||
| 176 | ;NEXT EQU #BFF8; nop |
||
| 177 | |||
| 178 | ;для мар2: |
||
| 179 | ;0-своб.поле, 1-граница, 2 -непрох |
||
| 180 | ;#38-#3F шахты |
||
| 181 | ;#40-#5F здания людей |
||
| 182 | ;#60-#7F здания кунгов |
||
| 183 | ;#80-#AF люди |
||
| 184 | ;#B0-#DF кунги |
||
| 185 | ;#E0-#FF пленники |
||
| 186 | |||
| 187 | |||
| 188 | ;------------------------------------------------------------ |
||
| 189 | ;--------- Золото шахт ----- (4096+512 переносится на BUF512) |
||
| 190 | |||
| 191 | datMIN DEFW 120,77,184,260,140,9,9,9 ;золото для шахт/100 |
||
| 192 | ;0-чей (255-конец), 1-тип, 2/3-XY,4-none |
||
| 193 | |||
| 194 | ;------ Описание героев и карты --- |
||
| 195 | |||
| 196 | datHER |
||
| 197 | incbin "../map/w104_s1.her" |
||
| 198 | incbin "../map/w104_s1.map" |
||
| 199 | |||
| 200 | ;-------Картинка----- |
||
| 201 | datSCR |
||
| 202 | incbin "../barkov/morte.scr" |
||
| 203 | |||
| 204 | ;---------------------------------- |
||
| 205 | end |
||
| 930 | alone | 206 | savebin "br/br104.dat",begin,end-begin ;in current dir (not in dir of this source) |