?login_element?

Subversion Repositories NedoOS

Rev

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

  1.         module SHOP
  2. levelText:              db "Level:         ",TEXT_END
  3. userCoins:              db "Coins:         ",TEXT_END
  4. userLives:              db "Lives:         ",TEXT_END
  5. continuations:          db "1 - Life:       55 coins",TEXT_END
  6. ; invulnerable:         db "Invulnerable:     75",TEXT_END      ; 1 time
  7. ; skipLevel:            db "Skip level:      100",TEXT_END
  8. currentLevelPassword:   db "2 - Password:  120 coins",TEXT_END
  9. complete:               db "fire to complete",TEXT_END
  10. notMoney:               db "not enough money",TEXT_END
  11. successfulPurchase:     db "successful  purchase",TEXT_END     
  12. pricelist:              db "Pricelist:",TEXT_END
  13. sale:                   db "SALE",TEXT_END
  14. ;---------------------------------------------
  15.         ; FIXME fool protection does not work if you buy a password, then play and die, after death in the store you can buy the same password again.
  16. init:
  17.        if EGA
  18.        call set6912
  19.        endif
  20.         call PASS.clearData
  21.         call fadeOutFull
  22.         call clearScreen
  23.         call displayShop
  24.         ld a,SYSTEM.SHOP_UPDATE
  25.         ret
  26. ;---------------------------------------------
  27. update:
  28.         ld de,#0e08     ; Y,X
  29.         ld bc,#0210     ; height, width
  30.         call blinkArea
  31.         ld de,#0801
  32.         ld bc,#0801
  33.         call blinkArea
  34.         ld de,#081E
  35.         ld bc,#0801
  36.         call blinkArea
  37.  
  38.  
  39.         ld a,(delta2)
  40.         inc a
  41.         cp 75
  42.         jr c,.m2
  43.         push af
  44.         call hideMessage
  45.         pop af
  46.         dec a
  47. .m2:
  48.         ld (delta2),a
  49.         call showCoinsLives
  50.         ld a,(lastKeyPresed)
  51.         push af
  52.         call CONTROL.digListener
  53.         pop bc
  54.         ld a,(de)
  55.         ld (lastKeyPresed),a    ; save last key pressed
  56.         cp b
  57.         jr nz,.more
  58.  
  59.         ; space key
  60.         ld bc,#7FFE
  61.         in a,(c)
  62.         bit 0,a
  63.         jr z,.toGame
  64.  
  65.         ld a,SYSTEM.SHOP_UPDATE
  66.         ret
  67. .more:
  68.         cp '1'
  69.         push af
  70.         call z,addLife
  71.         pop af
  72.         cp '2'
  73.         push af
  74.         call z,showPassword
  75.         pop af
  76.         cp '0'
  77.         jr z,.toGame
  78.         cp '5'
  79.         jr z,.toGame
  80.         ld a,SYSTEM.SHOP_UPDATE
  81.         ret nz
  82. .toGame:
  83.         ld a,SYSTEM.GAME_INIT
  84.         ret
  85. ;---------------------------------------------
  86. hideMessage:
  87.         xor a
  88.         ld de,#1206     ; Y,X
  89.         ld bc,#0214     ; height, width
  90.         jp fillArea
  91. ;---------------------------------------------
  92. sucPurchaseShow:
  93.         call resetDelta2
  94.         call SOUND_PLAYER.SET_SOUND.coin
  95.         ld hl,#4404
  96.         ld (textColor),hl
  97.         ld hl,successfulPurchase
  98.         ld de,#5046
  99.         jp printText2x1
  100. ;---------------------------------------------
  101. notMoneyShow:
  102.         call hideMessage
  103.         call resetDelta2
  104.         call SOUND_PLAYER.SET_SOUND.eat
  105.         ld hl,#4202
  106.         ld (textColor),hl
  107.         ld hl,notMoney
  108.         ld de,#5048
  109.         jp printText2x1
  110. ;---------------------------------------------
  111. addLife:
  112.         ld hl,(coins)
  113.         ld de,55
  114.         or a
  115.         sbc hl,de
  116.         jr c,notMoneyShow
  117.         ld (coins),hl
  118.         ld hl,(lives)
  119.         inc hl
  120.         ld (lives),hl
  121.         jr sucPurchaseShow
  122. ;---------------------------------------------
  123. showPassword:
  124.         ld a,(passData)
  125.         or a
  126.         jr nz,.show     ; protection from the fool, so as not to buy the same password again.
  127.         ld hl,(coins)
  128.         ld de,120
  129.         or a
  130.         sbc hl,de
  131.         jr c,notMoneyShow
  132.         ld (coins),hl
  133.         call sucPurchaseShow
  134.         ld a,(currentLevel)
  135.         call PASS.setLevPass
  136. .show: 
  137. ;       call SOUND_PLAYER.SET_SOUND.key
  138.         ld hl,passData
  139.         ld de,#48c8
  140.         jp printText2x1
  141. ;---------------------------------------------
  142. displayShop:
  143.  
  144.         ld hl,#4507
  145.         ld (textColor),hl
  146.  
  147.         ld hl,levelText
  148.         ld de,#4006
  149.         call printText2x1
  150.  
  151.         ld hl,userLives
  152.         ld de,#4046
  153.         call printText2x1
  154.         ld hl,userCoins
  155.         ld de,#4086
  156.         call printText2x1
  157.  
  158.  
  159.         ld hl,#4344
  160.         ld (textColor),hl
  161.         ld hl,pricelist
  162.         ld de,#480b
  163.         call printText2x1
  164.  
  165.  
  166.         ld hl,#4645
  167.         ld (textColor),hl
  168.         ld hl,continuations
  169.         ld de,#4844
  170.         call printText2x1
  171.         ld hl,currentLevelPassword
  172.         ld de,#4884
  173.         call printText2x1
  174.  
  175.         ld hl,#0141
  176.         ld (textColor),hl
  177.         ld hl,complete
  178.         ld de,#50c8
  179.         call printText2x1
  180.  
  181.         ld hl,sale
  182.         ld de,#4801
  183.         call printText2x1V
  184.         ld hl,sale
  185.         ld de,#481E
  186.         jp printText2x1V
  187. ;---------------------------------------------
  188. showCoinsLives:
  189.         call convertCoin
  190.         ld hl,(lives)
  191.         ld de,livesText
  192.         call asciiConvert
  193.         ld a,(currentLevel)
  194.         inc a
  195.         ld l,a
  196.         ld h,0
  197.         ld de,levelNumberText
  198.         call asciiConvert
  199.         ld hl,#4445
  200.         ld (textColor),hl
  201.         ld hl,levelNumberText
  202.         ld de,#4006+20-5
  203.         call printText2x1
  204.         ld hl,livesText
  205.         ld de,#4046+20-5
  206.         call printText2x1
  207.         ld hl,coinsText
  208.         ld de,#4086+20-5
  209.         jp printText2x1
  210.  
  211.         endmodule