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) |