?login_element?

Subversion Repositories NedoOS

Rev

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

  1.  
  2. ;--------работа со зданиями-------
  3.  
  4. ;поиск зданий и запoлн данных
  5. iniBLT  LD HL,MINE
  6.         PUSH HL
  7.         LD (HL),0
  8.         LD DE,MINE+1
  9.         LD BC,64+511
  10.         LDIR
  11.         EXX
  12.         LD DE,8
  13.         LD HL,datMIN
  14.         EXX
  15.         LD HL,HBUILD
  16.         LD DE,KBUILD
  17.         LD A,(MASTER)
  18.         OR A
  19.         JR Z,iTs
  20.         EX DE,HL
  21. iTs     PUSH HL
  22.         PUSH DE
  23.         POP IY
  24.         POP IX
  25.         POP HL
  26.         LD DE,MAP
  27.         LD C,0
  28. iT0     LD B,0
  29. iT1     LD A,(DE)
  30.         CP 78
  31.         JP C,iT2
  32.         JR NZ,iT3
  33.         LD (HL),B ;шахта
  34.         INC L
  35.         LD (HL),C
  36.         INC L
  37.         LD (HL),255 ;здоровье
  38.         INC L
  39.         LD (HL),bHmine
  40.         INC L
  41.         EXX
  42.         LD A,(HL)
  43.         INC L
  44.         EXX
  45.         ;деньги
  46.         LD (HL),A
  47.         INC L
  48.         EXX
  49.         LD A,(HL)
  50.         INC L
  51.         EXX
  52.         LD (HL),A
  53.         INC L
  54.         LD (HL),127 ;здоровье/2
  55.         INC L
  56.         INC L
  57.         JR iT2
  58. iT3     CP 86
  59.         JR C,iT2
  60.         CP 94
  61.         JR NC,iT4
  62.         SUB 86
  63. iT30    LD (IX),B ;зд.наших
  64.         LD (IX+1),C
  65.         LD (IX+2),A
  66.         PUSH HL
  67.         LD HL,bHEALT
  68.         CALL BA
  69.         POP HL
  70.         LD (IX+3),A
  71.         CALL bHE75p
  72.         LD (IX+6),A
  73.         LD (IX+4),255
  74.         EXX
  75.         ADD IX,DE
  76.         EXX
  77.         JR iT2
  78. iT4     CP 100
  79.         JR C,iT2
  80.         CP 108
  81.         JR NC,iT5
  82.         SUB 90
  83. iT40    LD (IY),B ;зд.врагов
  84.         LD (IY+1),C
  85.         LD (IY+2),A
  86.         PUSH HL
  87.         LD HL,bHEALT
  88.         CALL BA
  89.         POP HL
  90.         LD (IY+3),A
  91.         CALL bHE75p
  92.         LD (IY+6),A
  93.         LD (IY+4),255
  94.         EXX
  95.         ADD IY,DE
  96.         EXX
  97.         JR iT2
  98. iT5     CP 110
  99.         JR C,iT2
  100.         JR NZ,iT6
  101.         LD A,8 ;хата л
  102.         JR iT30
  103. iT6     CP 112
  104.         JR NZ,iT2
  105.         LD A,18 ;хата к
  106.         JR iT40
  107. iT2     INC DE
  108.         INC B
  109.         LD A,B
  110.         CP 64
  111.         JP C,iT1
  112.         INC C
  113.         LD A,C
  114.         CP 64
  115.         JP C,iT0
  116.         RET
  117.  
  118. setBLT  LD IX,MINE ;расст здан в мап2
  119.         LD BC,#4838
  120.         LD DE,8
  121. sBL0    LD A,(IX)
  122.         OR A
  123.         JR Z,sBL1
  124.         LD L,A
  125.         LD H,(IX+1)
  126.         CALL GMAP2
  127.         LD (HL),C
  128. sBL1    INC C
  129.         ADD IX,DE
  130.         DJNZ sBL0
  131.         RET
  132.  
  133. vieBLT  ;начальн осмотр вокр зданий
  134.         LD IX,HBUILD
  135.         LD B,32
  136. vbb0    PUSH BC
  137.         LD A,(IX)
  138.         OR A
  139.         LD A,1
  140.         CALL NZ,onseeB
  141. vbb1    LD BC,8
  142.         ADD IX,BC
  143.         POP BC
  144.         DJNZ vbb0
  145.         RET
  146.  
  147. placeB ;разместить на карте здание A/IX
  148.         LD C,A
  149.         CALL HL_IX0
  150.         CALL GMAP2
  151.         LD A,C
  152.         ADD A,#38
  153.         LD (HL),A ;# в MAP2
  154.         PUSH HL
  155.         LD B,2
  156.         LD DE,-64
  157.         LD A,(IX+2)
  158.         CP 8
  159.         JR Z,pBB2
  160.         CP 18
  161.         JR Z,pBB2
  162.         INC L  ;3x3
  163.         LD (HL),B ;вокруг - непрох
  164.         DEC L
  165.         DEC L
  166.         LD (HL),B
  167.         ADD HL,DE
  168.         LD (HL),B
  169.         INC L
  170.         LD (HL),B
  171.         INC L
  172.         LD (HL),B
  173.         LD DE,126
  174.         ADD HL,DE
  175.         LD (HL),B
  176.         INC L
  177.         LD (HL),B
  178.         INC L
  179.         LD (HL),B
  180.         POP HL
  181.         RES 4,H
  182.         LD A,(IX+4)
  183.         CP 253
  184.         JR Z,pBB3f1
  185.         CP 254
  186.         LD A,(IX+2)
  187.         JR Z,pBB3f2
  188.         CP 10
  189.         JR C,pBB31
  190.         ADD A,4
  191. pBB31   ADD A,86
  192.         JR pBB30
  193. pBB3f2  CP 10
  194.         JR C,pBB32
  195.         ADD A,4
  196. pBB32   ADD A,79
  197.         JR pBB30
  198. pBB3f1  LD A,79
  199. pBB30   LD (HL),A
  200.         INC L
  201.         LD (HL),124
  202.         DEC L
  203.         DEC L
  204.         LD (HL),120
  205.         LD DE,-64
  206.         ADD HL,DE
  207.         LD (HL),121
  208.         INC L
  209.         LD (HL),122
  210.         INC L
  211.         LD (HL),123
  212.         LD DE,126
  213.         ADD HL,DE
  214.         LD (HL),127
  215.         INC L
  216.         LD (HL),126
  217.         INC L
  218.         LD (HL),125
  219.         RET
  220.         ;
  221. pBB2    DEC L ;2x2
  222.         LD (HL),B
  223.         ADD HL,DE
  224.         LD (HL),B
  225.         INC L
  226.         LD (HL),B
  227.         POP HL
  228.         LD A,(IX+4)
  229.         CP 253
  230.         JR Z,pBB2f1
  231.         CP 254
  232.         LD A,(IX+2)
  233.         JR Z,pBB2f2
  234.         CP 8
  235.         LD A,110
  236.         JR Z,pBB20
  237.         LD A,112
  238.         JR pBB20
  239. pBB2f2  CP 8
  240.         LD A,109
  241.         JR Z,pBB20
  242.         LD A,111
  243.         JR pBB20
  244. pBB2f1  LD A,108
  245. pBB20   RES 4,H
  246.         LD (HL),A
  247.         DEC L
  248.         LD (HL),120
  249.         ADD HL,DE
  250.         LD (HL),121
  251.         INC L
  252.         LD (HL),122
  253.         RET
  254.  
  255. bHE75p  ;получить 75% от A
  256.         PUSH HL
  257.         LD L,A
  258.         SRL L
  259.         SRL L
  260.         SUB L
  261.         POP HL
  262.         RET
  263.  
  264. BLTNEW  ;новое здание (Вх: HL-coord,C-type,A=0/1-наш/не наш)
  265.         EXX
  266.         LD DE,8
  267.         LD HL,HBUILD
  268.         LD BC,#2008
  269.         OR A
  270.         JR Z,bNW0
  271.         LD HL,KBUILD
  272.         LD C,40
  273. bNW0    LD A,(HL)
  274.         OR A
  275.         JR Z,bNW1
  276.         ADD HL,DE
  277.         INC C
  278.         DJNZ bNW0
  279.         RET ;нет места
  280. bNW1    PUSH HL
  281.         POP IX
  282.         EXX
  283.         CALL IX0_HL
  284.         LD (IX+2),C
  285.         LD A,C
  286.         LD HL,bHEALT
  287.         CALL BA
  288.         LD (IX+3),A
  289.         CALL bHE75p
  290.         LD (IX+6),A
  291.         LD A,C
  292.         LD HL,bcTIME
  293.         CALL BA
  294.         LD (IX+5),A
  295.         LD (IX+4),253
  296.         LD (IX+7),255
  297.         EXX
  298.         LD A,C
  299.         JP placeB
  300.  
  301.