?login_element?

Subversion Repositories NedoOS

Rev

Rev 1917 | Rev 1985 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download

  1. RECMAP
  2.         LD HL,WASMAP
  3.         LD DE,0x4000
  4.        PUSH DE
  5.         LD BC,szMAP
  6.         LDIR
  7.        POP HL
  8.         LD DE,level
  9.         LD BC,endlev-level
  10.         LDIR
  11.        
  12.           ld de,MONSTRS
  13.        
  14.        if invmap;atm
  15.        ;jr $
  16.        LD A,(YX+1) ;Y
  17.        SUB 0xA0
  18.        SUB map/256+31
  19.        CPL
  20.        LD (IMcurYy+1),A
  21.        LD A,(YX) ;X
  22.        INC A
  23.        LD (IMcurXx+1),A
  24.        endif
  25. INImons LD A,(HL)
  26.         LDI
  27.         AND (HL)
  28.         LDI
  29.         INC A
  30.         JR Z,INImonsQ
  31.         LD BC,6
  32.         LDIR
  33.         JR INImons
  34. INImonsQ ;
  35.        EXD
  36.        if invmap;atm
  37.         LD H,map/256+31
  38.        else
  39.         LD H,map/256
  40.        endif
  41.        IF invmap
  42.        LD L,map&0xff
  43.        LD C,1
  44.        JR GETMAPL
  45.        ENDIF
  46. GETMAP0
  47.        IF invmap
  48.         LD L,0xff&(map+32)
  49.        ELSE
  50.         LD L,map&0xff
  51.        ENDIF
  52.         LD C,2
  53. GETMAPL LD B,32;33
  54. GETMAP1 LD A,(DE)
  55.         INC DE
  56.         LD (HL),0
  57.         CP 13
  58.         JR Z,GETMCR
  59.        IF invmap;atm
  60.        jr NC,GMNRLE
  61.         LD A,(DE)
  62.         INC DE
  63.        DEC A
  64. GMRLE
  65.         INC L
  66.         LD (HL),0
  67.         DEC B
  68.         DEC A
  69.         jr NZ,GMRLE
  70.         LD A,32
  71. GMNRLE
  72.        ENDIF
  73.         CP 32
  74.         JR Z,GETMAPE
  75.       if invmap
  76.       CP 64    ;
  77.       jr NC,$+4  ;
  78.       ADD A,64 ;todo kill
  79.        ADD A,128-64
  80.       endif
  81.       IF !atm
  82.        if invmap
  83.        sub 128
  84.  ;в примере используются стены 16..35. они уже домножены на 2 (младший бит=зеркальность)
  85.         sub 16*2
  86.        else
  87.        add a,a
  88.        SUB "1";+128
  89.        endif
  90.       if doublescr
  91.        cp 24*2
  92.        jr c,$+4
  93.        ld a,23*2
  94.        cp 12*2
  95.        jr c,$+4
  96.        sub 12*2+0x40
  97.       else
  98.        cp 12*2
  99.        jr c,$+4
  100.        ld a,11*2
  101.       endif
  102.      add a,0xc0 ;хранится ID>=128, чтобы делать двери
  103.       ENDIF
  104.        LD (HL),A
  105. GETMAPE INC L
  106.         DJNZ GETMAP1
  107.         JR GETMOK
  108. GETMCR  LD (HL),0
  109.         INC L
  110.         DJNZ GETMCR
  111. GETMOK
  112.        IF invmap
  113.        LD L,map&0xff
  114.        ENDIF
  115.         DEC C
  116.         jr NZ,GETMAPL
  117.        if invmap;atm
  118.         LD A,H
  119.         DEC H
  120.         CP map/256
  121.         JR NZ,GETMAP0
  122.        else
  123.         INC H
  124.         BIT 6,H
  125.         JR Z,GETMAP0
  126.        endif
  127.  
  128.         if invmap
  129.         LD HL,MONSTRS+1 ;1+начало табл.монстров/предметов
  130. remons0
  131.         LD A,(HL) ;X
  132.          inc (hl)
  133.         INC A
  134.        jr Z,remonsq
  135.         ;ld a,0xff&(map+32+map+0)
  136.         ;sub (hl)
  137.         ;ld (hl),a ;???
  138.         INC L
  139.         inc L
  140.         LD A,(HL) ;Y
  141.        SUB 0xA0
  142.        SUB map/256+31
  143.        CPL
  144.         ld (hl),a
  145.         LD A,L
  146.         ADD A,6
  147.         LD L,A
  148.         JP NC,remons0
  149.         INC H
  150.         JP remons0
  151. remonsq
  152.         endif
  153.  
  154.        IF atm == 0
  155.         LD HL,#4000
  156.         CALL INICLS
  157.        IF doublescr
  158.         LD A,#17
  159.         CALL SETPG
  160.         LD HL,#C000
  161.         CALL INICLS
  162.        ENDIF
  163.  
  164.         XOR A
  165.         LD H,scrbuf/256
  166.         LD C,scrwid
  167. PRECLS  LD L,scrbuf&0xff
  168.         LD B,scrhgtpix
  169.         LD (HL),A
  170.         INC L
  171.         DJNZ $-2
  172.         INC H
  173.         DEC C
  174.         jr NZ,PRECLS
  175.        ENDIF    
  176.         ret
  177.        
  178.        if atm==0
  179. INICLS
  180.         LD D,H
  181.         ld E,1
  182.         LD BC,#1800
  183.         LD (HL),L
  184.         LDIR
  185.         LD BC,767
  186.         LD (HL),colour
  187.         LDIR
  188.         RET
  189.        endif
  190.