?login_element?

Subversion Repositories NedoOS

Rev

Rev 1506 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. ;процедуры для рисования оформления, нижнего уровня (зависят от типа экрана)
  2.  
  3. DrawPieHL
  4.         LD A,PGLMN
  5.         CALL OUTME;OUTNO
  6.         LD DE,#482D
  7.         LD BC,#28FF
  8. PRGUG0  LD A,E
  9.         DUP 6
  10.         LDI
  11.         EDUP
  12.         LD E,A
  13.         CALL DDE
  14.         DJNZ PRGUG0
  15.         ret
  16.  
  17. DrawPanel
  18. ;hl=panel
  19.         ld de,0x50a0
  20. DrawPanel_chrs
  21.         push de
  22.         ld b,8
  23. DrawPanel0
  24.         ld a,(hl)
  25.         ld (de),a
  26.         inc hl
  27.         inc d
  28.         djnz DrawPanel0
  29.         ld d,0x5a
  30.         ld a,(hl)
  31.         ld (de),a
  32.         inc hl
  33.         pop de
  34.         inc e
  35.         jr nz,DrawPanel_chrs
  36.         ret
  37.  
  38. ;печать игрового сообщения
  39. DrawTitle
  40.         CALL UnDrawOldTitle;MTCL
  41.         LD A,15
  42.         LD (STCNTa),A
  43.         LD C,(HL) ;len
  44.         INC L
  45.         LD A,32
  46.         SUB C
  47.        ;RET C
  48.         SCF
  49.         RRA
  50.         LD E,A ;x+128
  51. MT0     LD A,(HL)
  52.         INC L
  53.         sub 32;CP 32
  54.         JR Z,MTSPC
  55.         LD D,0x50;80
  56.         PUSH HL
  57.         LD H,FONT88/2/256
  58.         RLCA
  59.         rlca
  60.         LD L,A
  61.         add hl,hl
  62.         LD B,8
  63. MT1     LD A,(HL)
  64.         LD (DE),A
  65.         INC D
  66.         INC L
  67.         DJNZ MT1
  68.         LD D,0x5a;90
  69.         LD A,TITLCOL
  70.         LD (DE),A
  71.         POP HL
  72. MTSPC   INC E
  73.         DEC C
  74.         JR NZ,MT0
  75.         LD (curdrawingtitle),HL
  76.         RET
  77.  
  78. UnDrawOldTitle;MTCL
  79.         LD E,#80
  80.         LD C,32
  81.         XOR A
  82. MTCL0   LD D,0x50
  83.         LD B,8
  84.          LD (DE),A
  85.          INC D
  86.         DJNZ $-2
  87.         INC E
  88.         DEC C
  89.         JR NZ,MTCL0
  90.         PUSH HL
  91.         CALL DrawGrenadeTop
  92.         POP HL
  93.         RET
  94.  
  95. ;печать торчащей части гранаты у нижней панельки
  96. DrawGrenadeTop
  97.         LD L,#88
  98.         LD H,87
  99.         LD (HL),#E0
  100.         LD H,90
  101.         LD (HL),2
  102.         DEC L
  103.         DEC L
  104.         LD DE,BT
  105.         CALL PRBTP
  106. PRBTP   DEC L
  107.         LD H,84
  108.         LD B,4
  109. PRBT0   LD A,(DE)
  110.         INC DE
  111.         LD (HL),A
  112.         INC H
  113.         DJNZ PRBT0
  114.         LD H,90
  115.         LD (HL),4
  116.         RET
  117.  
  118. BT      DB #E0,#F8,#FE,#FF,3,7,7,7
  119.  
  120. windRA=0x55B9
  121. windRAbit=4
  122. windLA=0x55b0;#55B6
  123. windLAbit=8;32
  124. windEA=0x50F0
  125. windEAbit=4
  126. windLAwid=47
  127. windEAwid=119
  128.  
  129. nrgPLOT
  130. ;CY=pix, e=mask, hl=scraddr
  131.         SBC A,A
  132.         XOR (HL)
  133.         AND E
  134.         XOR (HL)
  135.         LD (HL),A
  136.         INC H
  137.         XOR (HL)
  138.         AND E
  139.         XOR (HL)
  140.         LD (HL),A
  141.         INC H
  142.         XOR (HL)
  143.         AND E
  144.         XOR (HL)
  145.         LD (HL),A
  146.         DEC H
  147.         DEC H
  148.         ;RET
  149. ;nrgGORIGHT
  150.         RRC E
  151.         ret nc;JR NC,$+3
  152.         INC HL
  153.         ret
  154.  
  155. DrawAttrField
  156.         LD HL,#5860
  157.         LD DE,COLOUR
  158.         LD C,17
  159. PASC0L  LD (HL),D
  160.         LD B,31
  161.         INC L
  162.         LD (HL),E
  163.         DJNZ $-2
  164.         LD (HL),D
  165.         INC HL
  166.         DEC C
  167.         JR NZ,PASC0L
  168.         RET
  169.  
  170. Hud_UnDrawTime
  171.         LD HL,(#5A62)
  172.         call Hud_ResetTimeAttrHL
  173.         ld de,0x3d00 ;space
  174.         ld b,d
  175.         ld c,e
  176.         jr DrawTime_Go
  177. DrawTime
  178.        ld bc,(curtime)
  179.        bit 0,c
  180.        ret nz
  181.         ;LD D,61 ;ROM font FIXME
  182.        ld hl,numfont
  183.        ld a,b
  184.        ld b,0
  185.        add hl,bc
  186.        ex de,hl
  187.        ld bc,numfont
  188.        add a,c
  189.        ld c,a
  190.        jr nc,$+3
  191.        inc b
  192.         ;LD E,B
  193.         ;SET 7,E
  194.         ;LD B,D
  195.         ;SET 7,C
  196. DrawTime_Go
  197.         LD HL,#5060
  198. TIMPR0  LD A,(bc);(DE)
  199.         LD (HL),A
  200.         INC L
  201.         LD A,(de);(BC)
  202.         ;INC C
  203.         LD (HL),A
  204.         ;INC H
  205.         ;LD (HL),A
  206.         DEC L
  207.         ;LD A,(DE)
  208.         ;INC E
  209.         ;LD (HL),A
  210.        inc bc
  211.        inc de
  212.         INC H
  213.         BIT 3,H
  214.         JR Z,TIMPR0
  215.         LD H,80
  216.         LD A,L
  217.         SUB -32
  218.         LD L,A
  219.         CP #A0
  220.         JR C,TIMPR0
  221.         RET
  222.  
  223. Hud_ResetTime
  224.         LD HL,#4747
  225. Hud_ResetTimeAttrHL
  226.         LD (#5A60),HL
  227.         LD (#5A80),HL
  228.         RET
  229.  
  230. cls
  231. ;не чистит панельку
  232.        ld hl,0x4000
  233.         ld b,192-32
  234. cls0
  235.         push bc
  236.         push hl
  237.         ld d,h
  238.         ld e,l
  239.         inc e
  240.         ld (hl),0
  241.         ld bc,31
  242.         ldir
  243.         pop hl
  244.         call DHL
  245.         pop bc
  246.         djnz cls0
  247.        
  248.        ld hl,0x5800
  249.        ld de,0x5801
  250.        ld bc,0x0100
  251.        ld (hl),l;0
  252.        ldir
  253.        ld bc,0x019f
  254.        ld (hl),COLOUR
  255.        ldir
  256.         ret
  257.  
  258. DHL
  259.         INC H
  260.         LD A,H
  261.         AND 7
  262.         RET NZ
  263.         LD A,L
  264.         ADD A,32
  265.         LD L,A
  266.         RET C
  267.         LD A,H
  268.         ADD A,-8
  269.         LD H,A
  270.         RET
  271.  
  272. PR64
  273. ;de=scr
  274. ;a=char
  275.         PUSH BC
  276.         PUSH DE
  277.         PUSH HL
  278.         SUB 32
  279.         ADD A,A
  280.         ADD A,A
  281.         ADD A,A
  282.         LD L,A
  283.         LD H,FONT/256
  284.         jr nc,$+3
  285.         inc h
  286.         LD B,7
  287.         DEC C
  288.         JR Z,PR641
  289.         DEC C
  290.         JR Z,PR64R
  291. PR640   LD A,(HL)
  292.         RLCA
  293.         RLCA
  294.         RLCA
  295.         RLCA
  296.         LD (DE),A
  297.         INC L
  298.         INC D
  299.         DJNZ PR640
  300.         LD D,#58
  301.         LD A,71
  302.         LD (DE),A
  303.         POP HL
  304.         POP DE
  305.         POP BC
  306.         INC C
  307.         RET
  308. PR641   LD A,(DE)
  309.         OR (HL)
  310.         LD (DE),A
  311.         INC L
  312.         INC D
  313.         DJNZ PR641
  314.         POP HL
  315.         POP DE
  316.         INC E
  317.         POP BC
  318.         DEC C
  319.         RET
  320. PR64R
  321.         LD A,(HL)
  322.         LD (DE),A
  323.         INC L
  324.         INC D
  325.         DJNZ PR64R
  326.         LD D,#58
  327.         LD A,71
  328.         LD (DE),A
  329.         POP HL
  330.         POP DE
  331.         INC E
  332.         POP BC
  333.         LD C,0
  334.         RET
  335.  
  336. ClearEnergyPanel
  337.        if 1 ;чтобы очистить грязь от генератора карты
  338.         LD HL,#4000
  339.         LD DE,#4001
  340.         LD BC,#7FF
  341.         LD (HL),L
  342.         LDIR
  343.        endif
  344.         LD A,6
  345.         LD HL,#5800
  346.         LD (HL),A
  347.         INC L
  348.         LD DE,#5802
  349.         LD bc,#5D
  350.         LD (HL),67
  351.         LDIR
  352.         LD (DE),A
  353.         LD H,A
  354.         LD L,A
  355.         LD (#581F),HL
  356.         LD (#583F),HL
  357.         LD HL,#4747
  358.         LD (#580F),HL
  359.         LD (#582F),HL
  360.         LD (#584F),HL
  361.         ret
  362.  
  363. PRSTAR
  364.         LD DE,SPRSTAR
  365.         LD B,9
  366.         BIT 4,L
  367.         JR NZ,PRSTAR1
  368. PRSTAR0 LD A,(DE)
  369.         LD (HL),A
  370.         INC DE
  371.         INC A
  372.         JR NZ,$+6
  373.         INC L
  374.         SET 7,(HL)
  375.         DEC L
  376.         CALL DHL
  377.         DJNZ PRSTAR0
  378.         RET
  379. PRSTAR1 LD A,(DE)
  380.         RLCA
  381.         LD (HL),A
  382.         INC DE
  383.         JR NC,$+6
  384.         DEC L
  385.         SET 0,(HL)
  386.         INC L
  387.         CALL DHL
  388.         DJNZ PRSTAR1
  389.         RET
  390. SPRSTAR
  391.         DB 8,12,#1C,-1,127,62,62,#66,66
  392. ENRAMKA
  393. ;hl=scr
  394.         LD BC,+(RAMKAWID-1)*256+0xff
  395.         LD D,H
  396.         LD E,L
  397.         LD (HL),0x7f
  398.         INC L
  399.         LD (HL),C ;0xff
  400.         DJNZ $-2
  401.         DEC (HL) ;0xfe
  402.         LD B,RAMKAHGT-1;15
  403. ENRAMK0 CALL DHL
  404.         SET 1,(HL)
  405.         EX DE,HL
  406.         CALL DHL
  407.         SET 6,(HL)
  408.         EX DE,HL
  409.         DJNZ ENRAMK0
  410.         LD B,RAMKAWID-1;13
  411.         LD (HL),0xfe
  412.         DEC L
  413.         LD (HL),C ;0xff
  414.         DJNZ $-2
  415.         LD (HL),0x7f
  416.         RET
  417. ENFAKE
  418. ;рисуем полную энергию у команды
  419. ;hl=scr
  420.         LD E,5
  421. ENFAKE0 PUSH HL
  422.         LD (HL),0x5F ;0x40 от рамки слева
  423.         LD B,RAMKAWID-1;13
  424.         INC L
  425.         LD (HL),0xff
  426.         DJNZ $-3
  427.         LD (HL),0xfa ;0x02 от рамки справа
  428.         POP HL
  429.         CALL DHL
  430.         DEC E
  431.         JR NZ,ENFAKE0
  432.         RET
  433.