?login_element?

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. ;--СТРАНИЦА 0
  2.  
  3. ;--подсчёты--
  4. COMPUT  ;подгот данных для выв панели
  5.         CALL BUTING
  6.         LD A,(NAME)
  7.         CALL putTX
  8.         CALL BUTmw
  9.        if 1==0
  10.        LD HL,WX_BAD-#2080
  11.        LD A,(TIC)
  12.        CP 64
  13.        CALL Z,_crc9
  14.        endif
  15.         JP gtINDY
  16.  
  17. ;---операц с деньгами/лесом
  18. ;;cMN_WD  ;очиcтка денег/леcа
  19. ;;        LD HL,MONEY
  20. ;;        LD B,12
  21. ;;clrmw   LD (HL),0
  22. ;;        INC HL
  23. ;;        DJNZ clrmw
  24. ;;        RET
  25.  
  26. aMONEY  ;добавить денег/леcа (DE-в BCD-form)
  27.         CALL chkCRC
  28.         LD HL,MONEY+5
  29.         CALL addmw
  30.         JP setCRC
  31. aWOOD   LD HL,WOOD+5
  32. addmw   CALL addmw1
  33.         LD E,D
  34.         CALL addmw1
  35.         LD E,0
  36. addmw1  LD A,E
  37.         CALL aDIG
  38.         LD A,E
  39.         RLCA
  40.         RLCA
  41.         RLCA
  42.         RLCA
  43. aDIG    AND #F
  44.         ADD A,(HL)
  45.         LD (HL),A
  46.         DEC HL
  47.         CP 10
  48.         RET C
  49.         SUB 10
  50.         INC HL
  51.         LD (HL),A
  52.         DEC HL
  53.         INC (HL)
  54.         RET
  55.  
  56. dMN_WD ;убавить DE-деньги BC-леc С(A=0/1)/NC -нельзя(mn/wd)/можно
  57.         PUSH DE
  58.         LD HL,MONEY
  59.         CALL can_d
  60.         POP DE
  61.         LD A,0
  62.         RET C
  63.         PUSH DE
  64.         LD E,C
  65.         LD D,B
  66.         LD HL,WOOD
  67.         CALL can_d
  68.         POP DE
  69.         LD A,1
  70.         RET C
  71.         LD HL,MONEY+5
  72.         CALL chkCRC
  73.         CALL d_ok
  74.         CALL setCRC
  75.         LD E,C
  76.         LD D,B
  77.         LD HL,WOOD+5
  78.         CALL d_ok
  79.         XOR A
  80.         RET
  81. d_ok    CALL d_ok1
  82.         LD E,D
  83.         CALL d_ok1
  84.         LD E,0
  85. d_ok1   LD A,E
  86.         CALL dDIG
  87.         LD A,E
  88.         RLCA
  89.         RLCA
  90.         RLCA
  91.         RLCA
  92. dDIG    AND #F
  93.         SUB (HL)
  94.         NEG
  95.         LD (HL),A
  96.         DEC HL
  97.         OR A
  98.         RET P
  99.         INC HL
  100.         LD A,10
  101.         ADD A,(HL)
  102.         LD (HL),A
  103.         DEC HL
  104.         DEC (HL)
  105.         RET
  106.  
  107. can_d   LD A,(HL)
  108.         INC HL
  109.         OR (HL)
  110.         RET NZ
  111.         CALL c_d1
  112.         RET NZ
  113.         LD D,E
  114.         CALL c_d1
  115.         RET NZ
  116.         CCF
  117.         RET Z
  118.         CCF
  119.         RET
  120. c_d1    INC HL
  121.         LD A,D
  122.         RLCA
  123.         RLCA
  124.         RLCA
  125.         RLCA
  126.         AND #F
  127.         CP (HL)
  128.         INC HL
  129.         CCF
  130.         RET NZ
  131.         LD A,D
  132.         AND #F
  133.         CP (HL)
  134.         CCF
  135.         RET
  136.  
  137.         if 1==0
  138. _crc9   ;[--9]
  139.         LD A,(LEVEL)
  140.         CP 6
  141.         RET C
  142.         LD DE,#2080
  143.         ADD HL,DE
  144.         LD BC,#81F
  145. _crc9a  LD A,(HL)
  146.         ADD A,C
  147.         LD C,A
  148.         INC HL
  149.         DJNZ _crc9a
  150.         INC HL
  151.         CP (HL)
  152.         RET Z
  153.         CALL MEM7 ;err
  154.         endif
  155.  
  156. BUTmw   ;уcт знач денег/леc по кнопкам
  157.         LD HL,(BX)
  158.         LD A,L
  159.         CP 25
  160.         RET C
  161.         CP 31
  162.         RET NC
  163.         LD L,0
  164.         CP 28
  165.         JR C,bm1
  166.         INC L
  167. bm1     LD A,H
  168.         CP 10
  169.         RET C
  170.         CP 19
  171.         RET NC
  172.         CP 13
  173.         JR NC,bm2
  174.         XOR A
  175.         JR bm3
  176. bm2     CP 16
  177.         LD A,2
  178.         JR C,bm3
  179.         LD A,4
  180. bm3     ADD A,L
  181.         LD C,A
  182.         LD HL,BUT_N
  183.         CALL BA
  184.         OR A
  185.         JR Z,bm4
  186.         LD A,C
  187.         LD HL,BUT_mn
  188.         CALL WT
  189.         LD (MONEY1),HL
  190.         LD A,C
  191.         LD HL,BUT_wd
  192.         CALL WT
  193. bm5     LD (WOOD1),HL
  194.         RET
  195. bm4     LD H,A
  196.         LD L,H
  197.         LD (MONEY1),HL
  198.         JR bm5
  199.  
  200. GETmw   ;получить m/w для кнопки A -> DE/BC
  201.         LD HL,BUT_mn
  202.         CALL WA
  203.         LD E,(HL)
  204.         INC HL
  205.         LD D,(HL)
  206.         LD BC,11
  207.         ADD HL,BC
  208.         LD C,(HL)
  209.         INC HL
  210.         LD B,(HL)
  211.         RET
  212.  
  213.  
  214. vpTAB1  ;табл стр-ва 1 (ДЕНЬГИ,лес)
  215.         DEFW #500,#300 ;изба
  216.         DEFW #700,#500 ;креп
  217.         DEFW #600,#400 ;лесоп
  218. vpTAB2  ;табл стр-ва 2
  219.         DEFW #800,#500
  220.         DEFW #900,#400
  221.         DEFW #1000,#400
  222.         DEFW #1400,#300
  223.  
  224. BUTval  ;дать значения ресурсов кнопкам
  225.         LD A,(SEL_T)
  226.         CP 8
  227.         JP Z,bVhome
  228.         DEC A
  229.         RET NZ
  230.         ;для пеонов
  231.         LD A,(ext_M)
  232.         CP 1
  233.         RET C
  234.         LD HL,vpTAB1
  235.         JR Z,bV1
  236.         LD HL,vpTAB2
  237. bV1     ADD A,2
  238. bV_     EXX
  239.         LD DE,BUT_wd
  240.         EXX
  241.         LD DE,BUT_mn
  242.         LD BC,BUT_N
  243. bV0     PUSH AF
  244.         LD A,(BC)
  245.         INC BC
  246.         OR A
  247.         JR NZ,bV2
  248.         INC DE
  249.         INC DE
  250.         EXX
  251.         INC DE
  252.         INC DE
  253.         EXX
  254.         INC HL
  255.         INC HL
  256.         INC HL
  257.         INC HL
  258.         JR bV3
  259. bV2     LD A,(HL)
  260.         LD (DE),A
  261.         INC HL
  262.         INC DE
  263.         LD A,(HL)
  264.         LD (DE),A
  265.         INC HL
  266.         INC DE
  267.         LD A,(HL)
  268.         EXX
  269.         LD (DE),A
  270.         INC DE
  271.         EXX
  272.         INC HL
  273.         LD A,(HL)
  274.         EXX
  275.         LD (DE),A
  276.         INC DE
  277.         EXX
  278.         INC HL
  279. bV3     POP AF
  280.         DEC A
  281.         JR NZ,bV0
  282.         RET
  283.  
  284. bvTB_M  ;для базы (m/w)
  285.         DEFW #50,0,#400,0,#100,#75
  286. bvTBch  ;для церкви (m)
  287.         DEFW #800,#750,#1500,#3000
  288. bvTBwz  ;для башни  (m)
  289.         DEFW #900,#750,#1500,#3000
  290. bvTBtw  ;для крепости (m/w)
  291.         DEFW #400,0, #450,#50, #850,0, #900,#200
  292. bvUPG1  ;upgrade для коней
  293.         DEFW #350
  294. bvUPGR  ;upgrade
  295.         DEFW #750,#1500,#3000
  296. bv_JP   DEFW bvj0,bvj1,bvj2,bvj3,bvj4,bvj5,bvj6
  297. bVhome  ;для зданий
  298.         LD A,(SEL_N)
  299.         SUB 8
  300.         RET C
  301.         CP 32
  302.         RET NC
  303.         LD H,HBUILD/256
  304.         ADD A,A
  305.         ADD A,A
  306.         ADD A,A
  307.         ADD A,2
  308.         LD L,A
  309.         LD A,(HL)
  310.         CP 10
  311.         JR C,bvs0
  312.         SUB 10
  313. bvs0    CP 7
  314.         RET NC
  315.         LD HL,bv_JP
  316.         CALL WT
  317.         JP (HL)
  318. bvj0    ;база
  319.         LD HL,bvTB_M
  320.         LD A,3
  321.         JP bV_
  322. bvj1    ;крепость
  323.         LD HL,bvTBtw
  324.         LD A,4
  325.         JP bV_
  326. bvj4    ;кузня
  327.         LD A,(hSHILD)
  328.         LD HL,bvUPGR
  329.         CALL WT
  330.         LD (BUT_mn+2),HL
  331.         LD A,(hBLADE)
  332.         JR bv2_
  333. bvj5    ;конюшн
  334.         LD A,(hHORSE)
  335.         LD HL,bvUPG1
  336.         JR bv2a_
  337. bvj2    ;лесоп
  338.         LD A,(hARC)
  339. bv2_    LD HL,bvUPGR
  340. bv2a_   CALL WT
  341.         LD (BUT_mn),HL
  342.         RET
  343. bvj6    ;башня
  344.         LD HL,bvTBwz
  345.         JR bvj_
  346. bvj3    ;церквь
  347.         LD HL,bvTBch
  348. bvj_    LD DE,BUT_mn
  349.         LD BC,BUT_N
  350.         LD A,4
  351. bVh0    PUSH AF
  352.         LD A,(BC)
  353.         INC BC
  354.         OR A
  355.         JR NZ,bVh2
  356.         INC DE
  357.         INC DE
  358.         INC HL
  359.         INC HL
  360.         JR bVh3
  361. bVh2    LD A,(HL)
  362.         LD (DE),A
  363.         INC HL
  364.         INC DE
  365.         LD A,(HL)
  366.         LD (DE),A
  367.         INC HL
  368.         INC DE
  369. bVh3    POP AF
  370.         DEC A
  371.         JR NZ,bVh0
  372.         RET
  373.  
  374.  
  375.  
  376. ;---------кнопки----------
  377. cBUini  ;очиcтка кнопок с обновлением
  378.         LD HL,_BUT_H
  379.         LD B,7
  380. cBU1i   LD (HL),#FF
  381.         INC HL
  382.         DJNZ cBU1i
  383.         ;
  384. cBUT    ;очиcтка кнопок
  385.         LD HL,BUT_H
  386.         LD DE,BUT_H+1
  387.         LD (HL),0
  388.         LD BC,6+12+12
  389.         LDIR
  390.         RET
  391.  
  392. BUTING  ;занеcение кнопок героя в BUT_N
  393.         LD A,(_event)
  394.         OR A
  395.         RET Z
  396.         XOR A
  397.         LD (_event),A
  398.         CALL BUTI1
  399.         CALL BUTval
  400.         LD A,(F_FUNC) ;коррекц ф-ции выбора
  401.         CP #FF
  402.         RET Z
  403.         LD HL,BUT_N
  404.         CALL BA
  405.         CP 71 ;/для кат/
  406.         RET Z
  407.         CP 50
  408.         JR NC,Bii
  409.         LD HL,spc_DO
  410.         CALL BA
  411.         CP 1
  412.         RET Z
  413.         JR C,Bii
  414.         LD A,(SEL_T)
  415.         CP 7
  416.         RET C
  417. Bii     LD A,(BUT_N) ;0я кнопка- стрелка?
  418.         DEC A
  419.         JR Z,Bii0
  420.         LD A,#FF
  421. Bii0    LD (F_FUNC),A
  422.         RET
  423.  
  424. BUTI1   CALL cBUT
  425.         LD A,(SEL_T)
  426.         CP 1
  427.         JR Z,hUfrnd
  428.         JR NC,hU1
  429.         ;none
  430.         LD (NAME),A
  431.         RET
  432. hU1     CP 7
  433.         JP C,hUgrp
  434.         JP NZ,hUblt
  435.         ;враги/плен
  436.         LD A,(SEL_N)
  437.         CP #60
  438.         JR C,hU2
  439.         LD A,18
  440.         LD (NAME),A
  441.         LD A,60
  442.         JR hU0
  443. hU2     CALL N_IX
  444.         LD A,(IX+4)
  445.         PUSH AF
  446.         LD HL,hMSG
  447.         CALL BA
  448.         LD (NAME),A
  449.         POP AF
  450.         LD HL,hBUT
  451.         CALL BA
  452. hU0     LD (BUT_H),A
  453.         RET
  454. hUfrnd  ;наш
  455.         LD A,1
  456.         LD (BUT_N),A
  457.         LD A,4
  458.         LD (BUT_N+5),A
  459.         LD A,(SEL_N)
  460.         CALL N_IX
  461.         LD C,(IX+4)
  462.         LD A,C
  463.         LD HL,hMSG
  464.         CALL BA
  465.         LD (NAME),A
  466.         LD A,C
  467.         LD HL,hBUT
  468.         CALL BA
  469.         LD (BUT_H),A
  470.         LD A,C
  471.         CP 9
  472.         JR C,hU4
  473.         SUB 9
  474. hU4     LD HL,hCASE
  475.         CALL WT
  476.         JP (HL)
  477. hCASE   DEFW c0,c1,c2,c3,c4,c5,c6,c7,c8
  478.         DEFW c18,c19,c20,c21,c22,c23,c24,c25,c26
  479. c3      LD A,(hARC) ;лучн
  480.         ADD A,10
  481. c3A     LD (BUT_N+1),A
  482.         LD A,(hSHILD)
  483.         ADD A,4
  484.         LD (BUT_N+5),A
  485. c3B     LD A,3
  486.         LD (BUT_N+2),A
  487.         RET
  488. c4      ;\
  489. c8      LD A,(hBLADE) ;кон,луч
  490.         ADD A,7
  491.         JR c3A
  492. c5      LD DE,hCLRIC;cвящ
  493.         LD C,45
  494.         JR c6A
  495. c6      LD DE,hWIZRD;волш
  496.         LD C,48
  497. c6A     LD HL,BUT_N+1
  498.         LD (HL),44
  499.         LD B,3
  500. c6B     LD A,(DE)
  501.         INC DE
  502.         INC HL
  503.         OR A
  504.         JR Z,c6C
  505.         LD (HL),C
  506. c6C     INC C
  507.         DJNZ c6B
  508.         RET
  509. c18     ;\
  510. c19     ;\
  511. c20     ;\
  512. c21     ;\
  513. c24     ;\
  514. c25     LD A,25
  515.         JR c7A
  516. c7      ;катап
  517.         LD A,71
  518.         LD (BUT_N+3),A
  519. c26     LD A,44 ;кат,cтеногр
  520. c7A     LD (BUT_N+1),A
  521.         JR c3B
  522. c22     ;\
  523. c23     RET
  524. c0      LD A,(ext_M)
  525.         CP 1
  526.         JR NC,c_peon
  527.         LD C,18
  528.         JR c2A
  529. c1      ;\
  530. c2      LD A,(ext_M)
  531.         CP 1
  532.         JR NC,c_peon
  533.         LD C,22
  534. c2A     LD HL,BUT_N+1
  535.         LD (HL),C
  536.         INC C
  537.         INC HL
  538.         LD (HL),C
  539.         LD A,(hmaxB1)
  540.         OR A
  541.         RET Z ;осн м.стр-ва запрещено
  542.         INC HL
  543.         LD (HL),20
  544.         LD A,(hmaxB2)
  545.         OR A
  546.         RET Z ;доп меню запрещено
  547.         PUSH HL ;определение наличия лесопили
  548.         LD A,2
  549.         CALL searcB
  550.         POP HL
  551.         OR A
  552.         RET Z ;нет леcопили!
  553.         INC HL
  554.         LD (HL),21
  555.         RET
  556. c_peon  ;другие меню пеонов
  557.         LD A,(MASTER)
  558.         JR NZ,c_p2
  559.         ;стндрт (1-3)
  560.         LD HL,#1B22
  561.         LD C,28
  562.         OR A
  563.         JR Z,cp10
  564.         LD HL,#242B
  565.         LD C,37
  566. cp10    LD A,(hmaxB1)
  567.         LD (BUT_N),HL
  568.         CP 2
  569.         JR C,cp11
  570.         LD A,C
  571.         LD (BUT_N+2),A
  572. cp11    LD A,2
  573.         LD (BUT_N+5),A
  574.         ;проверка числа построен ферм
  575.         LD A,8
  576.         CALL searcB
  577.         CP 9 ;макс число ферм
  578.         RET C
  579.         XOR A
  580.         LD (BUT_N),A
  581.         RET
  582. c_p2    ;дополн (от 1 до 4х)
  583.         OR A
  584.         LD C,#1D
  585.         JR Z,cp20
  586.         LD C,#26
  587. cp20    LD A,(hmaxB2)
  588.         LD B,A
  589.         LD HL,BUT_N
  590. cp20a   LD (HL),C
  591.         INC C
  592.         INC HL
  593.         DJNZ cp20a
  594.         JR cp11
  595.  
  596. hUgrp   ;группа
  597.         LD B,A
  598.         LD HL,SEL_N
  599.         LD A,(ext_M)
  600.         OR A
  601.         JR NZ,hUgr1
  602.         DEC B
  603.         LD A,(HL)
  604.         PUSH HL
  605.         CALL N_IX
  606.         POP HL
  607.         LD A,(IX+4)
  608.         CP 9
  609.         JR C,hU1a
  610.         SUB 9
  611. hU1a    CP 2
  612.         JR C,hU5
  613.         JR Z,hU8
  614.         LD A,2
  615.         JR hU5
  616. hU8     DEC A
  617. hU5     LD C,A
  618. hU6     INC HL
  619.         LD A,(HL)
  620.         PUSH HL
  621.         CALL N_IX
  622.         POP HL
  623.         LD A,(IX+4)
  624.         CP 9
  625.         JR C,hU6a
  626.         SUB 9
  627. hU6a    CP 2
  628.         JR C,hU15
  629.         JR Z,hU18
  630.         LD A,2
  631.         JR hU15
  632. hU18    DEC A
  633. hU15    CP C
  634.         JR NZ,hU20
  635.         DJNZ hU6
  636.         ;однородн группа
  637.         LD A,C
  638.         CP 1
  639.         JR Z,hU21
  640.         JR NC,hU22
  641.         ;гр.пеонов
  642.         LD HL,#1312
  643.         JR hU23
  644. hU21    ;гр.грузчиков
  645.         LD HL,#1716
  646.         JR hU23
  647. hU22    ;гр.воинов
  648.         LD HL,#0319
  649. hU23    LD (BUT_N+1),HL
  650. hU20    ;разнор группа
  651.         LD HL,#0118
  652.         LD (BUT_H),HL
  653.         LD A,4
  654.         LD (BUT_N+5),A
  655. hU40    LD A,42
  656.         LD (NAME),A
  657.         RET
  658. hUgr1   LD DE,BUT_N
  659. hU41    LD A,(HL)
  660.         PUSH HL
  661.         CALL N_IX
  662.         LD A,(IX+4)
  663.         LD HL,hBUT
  664.         CALL BA
  665.         POP HL
  666.         LD (DE),A
  667.         INC HL
  668.         INC DE
  669.         DJNZ hU41
  670.         LD A,24
  671.         LD (BUT_H),A
  672.         JR hU40
  673.  
  674.  
  675. ;=======работа со зданиями
  676. hUBnam  DEFB 28,29,37,31,38,39,40,41 ;назв зд. кунгов
  677. hUBsub  DEFW BD0,BD1,BD2,BD3,BD4,BD5,BD6,BD7,BD8
  678.  
  679. hUblt   ;здания
  680.         LD A,(SEL_N)
  681.         CALL B_IX
  682.         LD A,(IX+2)
  683.         CP 255
  684.         JP Z,hUMIN
  685.         CP 10
  686.         JR C,hUB1
  687.         DEC A
  688. hUB1    LD B,A
  689.         ADD A,26
  690.         LD D,A
  691.         INC A
  692.         CP 37
  693.         JR C,hUB2
  694.         LD HL,hUBnam-37
  695.         CALL BA
  696. hUB2    LD E,A
  697.         LD (NAME),DE
  698.         LD A,(SEL_N)
  699.         CP #28
  700.         RET NC
  701.         LD A,(IX+4)
  702.         INC A
  703.         JR NZ,BD_FF
  704.         LD A,B
  705.         CP 9
  706.         JR C,hUB3
  707.         SUB 9
  708. hUB3    LD HL,hUBsub
  709.         CALL WT
  710.         JP (HL)
  711. BD_FF   ;стр-во/пр-во
  712.         LD A,2
  713.         LD (BUT_N+5),A
  714.         RET
  715. BD8     ;изба
  716.         LD HL,#4F4E
  717.         LD (BUT_N),HL
  718.         DEC L
  719.         LD (BUT_N+2),HL
  720. BD7     ;храм
  721.         RET
  722. BD4     ;кузня
  723.         LD A,(hSHILD)
  724.         CP 2
  725.         JR NC,BD4_1
  726.         ADD A,5
  727.         LD (BUT_N+1),A
  728. BD4_1   LD A,(hBLADE)
  729.         CP 2
  730.         RET NC
  731.         ADD A,8
  732.         JR BD_
  733. BD1     ;крепость
  734.         LD HL,BUT_N
  735.         LD A,(hTOWER)
  736.         LD B,A
  737.         LD A,(MASTER)
  738.         OR A
  739.         LD A,52
  740.         JR Z,BD1a
  741.         LD A,62
  742. BD1a    LD (HL),A
  743.         INC A
  744.         INC HL
  745.         DJNZ BD1a
  746.         ;если нет лесоп->нет никого
  747.         LD A,2
  748.         CALL searcB
  749.         JR NZ,BD1n1
  750.         LD (BUT_N+1),A
  751.         JR BD1nA
  752.         ;если нет конюшн->нет всадн
  753. BD1n1   LD A,5
  754.         CALL searcB
  755.         JR NZ,BD1n2
  756.         LD (BUT_N+2),A
  757.         ;если нет кузни->нет катап
  758. BD1n2   LD A,4
  759.         CALL searcB
  760.         RET NZ
  761. BD1nA   LD (BUT_N+3),A
  762.         LD (BUT_N+2),A
  763.         RET
  764. BD2     ;лесоп
  765.         LD A,(hARC)
  766.         CP 2
  767.         RET NC
  768.         ADD A,11
  769. BD_     LD (BUT_N),A
  770.         RET
  771. BD5     ;конюшн
  772.         LD A,(hHORSE)
  773.         CP 3
  774.         RET NC
  775.         ADD A,13
  776.         JR BD_
  777. BD6     ;башня
  778.         LD C,48
  779.         LD A,(hmaxW)
  780.         LD B,A
  781.         LD A,57
  782.         LD DE,hWIZRD
  783.         JR BD3_1
  784. BD3     ;церкв
  785.         LD C,45
  786.         LD A,(hmaxC)
  787.         LD B,A
  788.         LD A,56
  789.         LD DE,hCLRIC
  790. BD3_1   PUSH AF
  791.         LD HL,BUT_N+1
  792. BD3_0   LD A,(DE)
  793.         OR A
  794.         JR NZ,BD3_3
  795.         LD (HL),C
  796. BD3_3   INC DE
  797.         INC HL
  798.         INC C
  799.         DJNZ BD3_0
  800.         POP DE
  801.         LD A,(MASTER)
  802.         OR A
  803.         LD A,D
  804.         JR Z,BD3_4
  805.         ADD A,10
  806. BD3_4   LD (BUT_N),A
  807.         RET
  808.  
  809. BD0     ;гл.дом
  810.         LD A,(MASTER)
  811.         OR A
  812.         LD HL,#3310
  813.         JR Z,BD0a
  814.         LD H,#3D
  815. BD0a    LD (BUT_N),HL
  816.         LD A,(hWALL)
  817.         LD (BUT_N+2),A
  818.         RET
  819. hUMIN    ;шахты
  820.         LD HL,#4C1A
  821.         LD (NAME),HL
  822.         LD HL,#5050
  823.         LD (BUT_N+2),HL
  824.         RET
  825.  
  826. gtINDY  ;получить значения для индикаторов
  827.         LD A,(SEL_T)
  828.         CP 1
  829.         JR Z,gY1
  830.         JR NC,gY2
  831. gY0     LD HL,#100 ;none/группа
  832.         LD (IND1),HL
  833.         LD (IND2),HL
  834. gY0_0   XOR A
  835. gY0_1   LD (IND2TP),A
  836.         RET
  837. gY1     ;один чел
  838.         LD A,(SEL_N)
  839.         CALL N_IX
  840.         LD B,(IX+6)
  841. gY1_0   LD C,(IX+5)
  842.         LD A,(IX+4)
  843.         LD HL,HEALTH
  844.         CALL WT
  845.         EX DE,HL
  846.         LD A,D
  847.         OR A
  848.         JR Z,gY1_2
  849.         LD D,MANA
  850. gY1_2   LD HL,IND1
  851.         LD (HL),C
  852.         INC HL
  853.         LD (HL),E
  854.         INC HL
  855.         LD (HL),B
  856.         INC HL
  857.         LD (HL),D
  858.         INC HL
  859.         LD A,D
  860.         OR A
  861.         JR Z,gY1_1
  862.         LD A,1
  863. gY1_1   LD (HL),A
  864.         RET
  865. gY2     CP 7
  866.         JR C,gY0
  867.         JR Z,gY4
  868.         ;здания
  869.         LD A,(SEL_N)
  870.         LD C,A
  871.         CALL B_IX
  872.         LD A,(IX+2)
  873.         LD HL,bHEALT
  874.         CALL BA
  875.         LD E,A
  876.         LD A,C
  877.         CP 8
  878.         JR C,gY2_2
  879.         CP 40
  880.         JR NC,gY2_3
  881.         ;у наших
  882.         LD A,(IX+4)
  883.         CP 255
  884.         JR NC,gY2_3
  885.         CP 253
  886.         JR C,gY4_1
  887.         ;cтадия стр_ва
  888.         EX AF,AF
  889.         LD A,(IX+2)
  890.         LD HL,bcTIME
  891.         CALL BA
  892.         LD C,A
  893.         ADD A,C
  894.         LD H,A
  895.         EX AF,AF
  896.         JR Z,gY4_0
  897.         LD C,0
  898. gY4_0   EX AF,AF
  899.         SUB C
  900.         JR gY4_2
  901. gY4_1   ;пр_во/иссл
  902.         LD HL,hcTIME
  903.         CALL BA
  904.         LD H,A
  905. gY4_2   SUB (IX+5)
  906.         LD L,A
  907.         LD (IND2),HL
  908.         LD H,E
  909.         LD L,(IX+3)
  910.         LD (IND1),HL
  911.         LD A,2
  912.         JP gY0_1
  913.  
  914. gY2_2   ;шахты
  915.         LD E,bHmine
  916. gY2_3   ;здан врагов
  917.         LD C,(IX+3)
  918.         LD B,0
  919.         LD D,B
  920.         JR gY1_2
  921. gY4     ;враг
  922.         LD A,(SEL_N)
  923.         CALL N_IX
  924.         LD B,0
  925.         CALL gY1_0
  926.         JP gY0_0
  927.  
  928. bcTIME   ;время на cтр-во зданий /2
  929.         DEFB 100,50,50,75,60,60,75,100,40
  930.         DEFB 0
  931.         DEFB 100,50,50,75,60,60,75,100,40
  932.  
  933.