?login_element?

Subversion Repositories NedoOS

Rev

Rev 922 | Blame | Compare with Previous | Last modification | View Log | Download

  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
  209.         savebin "br/br107.dat",begin,end-begin ;in current dir (not in dir of this source)
  210.