Blame |
    Last modification |
    View Log
    | Download
  
  
 
 
;--------работа со зданиями-------
 
 
 
;поиск зданий и запoлн данных
 
iniBLT  LD HL,MINE
 
        PUSH HL
 
        LD (HL),0
 
        LD DE,MINE+1
 
        LD BC,64+511
 
        LDIR
 
        EXX
 
        LD DE,8
 
        LD HL,datMIN
 
        EXX
 
        LD HL,HBUILD
 
        LD DE,KBUILD
 
        LD A,(MASTER)
 
        OR A
 
        JR Z,iTs
 
        EX DE,HL
 
iTs     PUSH HL
 
        PUSH DE
 
        POP IY
 
        POP IX
 
        POP HL
 
        LD DE,MAP
 
        LD C,0
 
iT0     LD B,0
 
iT1     LD A,(DE)
 
        CP 78
 
        JP C,iT2
 
        JR NZ,iT3
 
        LD (HL),B ;шахта
 
        INC L
 
        LD (HL),C
 
        INC L
 
        LD (HL),255 ;здоровье
 
        INC L
 
        LD (HL),bHmine
 
        INC L
 
        EXX
 
        LD A,(HL)
 
        INC L
 
        EXX
 
        ;деньги
 
        LD (HL),A
 
        INC L
 
        EXX
 
        LD A,(HL)
 
        INC L
 
        EXX
 
        LD (HL),A
 
        INC L
 
        LD (HL),127 ;здоровье/2
 
        INC L
 
        INC L
 
        JR iT2
 
iT3     CP 86
 
        JR C,iT2
 
        CP 94
 
        JR NC,iT4
 
        SUB 86
 
iT30    LD (IX),B ;зд.наших
 
        LD (IX+1),C
 
        LD (IX+2),A
 
        PUSH HL
 
        LD HL,bHEALT
 
        CALL BA
 
        POP HL
 
        LD (IX+3),A
 
        CALL bHE75p
 
        LD (IX+6),A
 
        LD (IX+4),255
 
        EXX
 
        ADD IX,DE
 
        EXX
 
        JR iT2
 
iT4     CP 100
 
        JR C,iT2
 
        CP 108
 
        JR NC,iT5
 
        SUB 90
 
iT40    LD (IY),B ;зд.врагов
 
        LD (IY+1),C
 
        LD (IY+2),A
 
        PUSH HL
 
        LD HL,bHEALT
 
        CALL BA
 
        POP HL
 
        LD (IY+3),A
 
        CALL bHE75p
 
        LD (IY+6),A
 
        LD (IY+4),255
 
        EXX
 
        ADD IY,DE
 
        EXX
 
        JR iT2
 
iT5     CP 110
 
        JR C,iT2
 
        JR NZ,iT6
 
        LD A,8 ;хата л
 
        JR iT30
 
iT6     CP 112
 
        JR NZ,iT2
 
        LD A,18 ;хата к
 
        JR iT40
 
iT2     INC DE
 
        INC B
 
        LD A,B
 
        CP 64
 
        JP C,iT1
 
        INC C
 
        LD A,C
 
        CP 64
 
        JP C,iT0
 
        RET
 
 
 
setBLT  LD IX,MINE ;расст здан в мап2
 
        LD BC,#4838
 
        LD DE,8
 
sBL0    LD A,(IX)
 
        OR A
 
        JR Z,sBL1
 
        LD L,A
 
        LD H,(IX+1)
 
        CALL GMAP2
 
        LD (HL),C
 
sBL1    INC C
 
        ADD IX,DE
 
        DJNZ sBL0
 
        RET
 
 
 
vieBLT  ;начальн осмотр вокр зданий
 
        LD IX,HBUILD
 
        LD B,32
 
vbb0    PUSH BC
 
        LD A,(IX)
 
        OR A
 
        LD A,1
 
        CALL NZ,onseeB
 
vbb1    LD BC,8
 
        ADD IX,BC
 
        POP BC
 
        DJNZ vbb0
 
        RET
 
 
 
placeB ;разместить на карте здание A/IX
 
        LD C,A
 
        CALL HL_IX0
 
        CALL GMAP2
 
        LD A,C
 
        ADD A,#38
 
        LD (HL),A ;# в MAP2
 
        PUSH HL
 
        LD B,2
 
        LD DE,-64
 
        LD A,(IX+2)
 
        CP 8
 
        JR Z,pBB2
 
        CP 18
 
        JR Z,pBB2
 
        INC L  ;3x3
 
        LD (HL),B ;вокруг - непрох
 
        DEC L
 
        DEC L
 
        LD (HL),B
 
        ADD HL,DE
 
        LD (HL),B
 
        INC L
 
        LD (HL),B
 
        INC L
 
        LD (HL),B
 
        LD DE,126
 
        ADD HL,DE
 
        LD (HL),B
 
        INC L
 
        LD (HL),B
 
        INC L
 
        LD (HL),B
 
        POP HL
 
        RES 4,H
 
        LD A,(IX+4)
 
        CP 253
 
        JR Z,pBB3f1
 
        CP 254
 
        LD A,(IX+2)
 
        JR Z,pBB3f2
 
        CP 10
 
        JR C,pBB31
 
        ADD A,4
 
pBB31   ADD A,86
 
        JR pBB30
 
pBB3f2  CP 10
 
        JR C,pBB32
 
        ADD A,4
 
pBB32   ADD A,79
 
        JR pBB30
 
pBB3f1  LD A,79
 
pBB30   LD (HL),A
 
        INC L
 
        LD (HL),124
 
        DEC L
 
        DEC L
 
        LD (HL),120
 
        LD DE,-64
 
        ADD HL,DE
 
        LD (HL),121
 
        INC L
 
        LD (HL),122
 
        INC L
 
        LD (HL),123
 
        LD DE,126
 
        ADD HL,DE
 
        LD (HL),127
 
        INC L
 
        LD (HL),126
 
        INC L
 
        LD (HL),125
 
        RET
 
        ;
 
pBB2    DEC L ;2x2
 
        LD (HL),B
 
        ADD HL,DE
 
        LD (HL),B
 
        INC L
 
        LD (HL),B
 
        POP HL
 
        LD A,(IX+4)
 
        CP 253
 
        JR Z,pBB2f1
 
        CP 254
 
        LD A,(IX+2)
 
        JR Z,pBB2f2
 
        CP 8
 
        LD A,110
 
        JR Z,pBB20
 
        LD A,112
 
        JR pBB20
 
pBB2f2  CP 8
 
        LD A,109
 
        JR Z,pBB20
 
        LD A,111
 
        JR pBB20
 
pBB2f1  LD A,108
 
pBB20   RES 4,H
 
        LD (HL),A
 
        DEC L
 
        LD (HL),120
 
        ADD HL,DE
 
        LD (HL),121
 
        INC L
 
        LD (HL),122
 
        RET
 
 
 
bHE75p  ;получить 75% от A
 
        PUSH HL
 
        LD L,A
 
        SRL L
 
        SRL L
 
        SUB L
 
        POP HL
 
        RET
 
 
 
BLTNEW  ;новое здание (Вх: HL-coord,C-type,A=0/1-наш/не наш)
 
        EXX
 
        LD DE,8
 
        LD HL,HBUILD
 
        LD BC,#2008
 
        OR A
 
        JR Z,bNW0
 
        LD HL,KBUILD
 
        LD C,40
 
bNW0    LD A,(HL)
 
        OR A
 
        JR Z,bNW1
 
        ADD HL,DE
 
        INC C
 
        DJNZ bNW0
 
        RET ;нет места
 
bNW1    PUSH HL
 
        POP IX
 
        EXX
 
        CALL IX0_HL
 
        LD (IX+2),C
 
        LD A,C
 
        LD HL,bHEALT
 
        CALL BA
 
        LD (IX+3),A
 
        CALL bHE75p
 
        LD (IX+6),A
 
        LD A,C
 
        LD HL,bcTIME
 
        CALL BA
 
        LD (IX+5),A
 
        LD (IX+4),253
 
        LD (IX+7),255
 
        EXX
 
        LD A,C
 
        JP placeB