?login_element?

Subversion Repositories NedoOS

Rev

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

  1.         module GAME
  2. init:
  3.         call fadeOutFull
  4.        if EGA
  5.         call setEGA
  6.        else
  7.         call clearScreen
  8.        endif
  9.         call LEVEL.build        
  10.         ; current HL for next call
  11.         call OBJECTS.create
  12.         ld a,SYSTEM.GAME_UPDATE
  13.         ret
  14. ;-----------------------------------------------
  15. update:
  16.         BORDER 1
  17.         call OBJECTS.draw
  18.         BORDER 2
  19.         push ix
  20.         call POP_UP_INFO.show
  21.         pop ix
  22.         BORDER 3
  23.         call CONTROL.update
  24.         BORDER 4
  25.         call OBJECTS.update
  26.         BORDER 5
  27.         call returnKey
  28.         ld a,l
  29.         or a
  30.         ret nz          ; to main menu
  31.         call rebuildLvl ;выбирает, на какую сцену выйти (при NZ)
  32.         ret nz          ; rebuild level
  33. ;       ; check level passed
  34.         call nextLevel
  35.         ret z           ; next level
  36.         ld a,(delta)
  37.         inc a
  38.         ld (delta),a
  39.         BORDER 0
  40.         ld a,SYSTEM.GAME_UPDATE         ; loop
  41.         ret
  42. ;-----------------------------------------------
  43. rebuildLvl:
  44.         ld hl,rebuildLevel
  45.         ld a,(hl)
  46.         or a
  47.         ret z
  48.         ;scf
  49.         ;ret
  50.         ;cp SYSTEM.SHOP_INIT
  51.         ;ret nz
  52.         ld (hl),0 ;не ребилдим больше
  53.         ld d,a
  54.         ld a,(lives)
  55.         or a
  56.         ld a,SYSTEM.MAIN_MENU_INIT
  57.         jr z,RETNZer;ret z
  58.         ;ld a,d
  59.         ;cp d
  60.         ;ret ;Z
  61.         ld a,SYSTEM.SHOP_INIT
  62. RETNZer
  63.         cp -1
  64.         ret ;NZ
  65. ;       jr nextLevel + 3
  66. nextLevel:
  67.         ld a,(isLevelPassed)
  68.         cp SYSTEM.SHOP_INIT
  69.         ret nz
  70.         ld c,a
  71.         call POP_UP_INFO.isFinish
  72.         cpl
  73.         ld a,c ;(isLevelPassed)
  74.        if EGA
  75.         ret nz
  76.        push af
  77.         call set6912
  78.        pop af
  79.        endif
  80.         ret
  81. ;-----------------------------------------------
  82. returnKey:             
  83.         ld l,0
  84.         call CONTROL.caps
  85.         ret nz
  86.         call CONTROL.enter
  87.         ret nz
  88.        if EGA
  89.         call set6912
  90.        endif
  91.         ld hl,(lives)
  92.         ld bc,#FFFF
  93.         add hl,bc
  94.         ld (lives),hl
  95.         ld a,l
  96.         or h
  97.         ld l,SYSTEM.MAIN_MENU_INIT
  98.         ret z
  99.         ld l,SYSTEM.SHOP_INIT
  100.         ret
  101. ;-----------------------------------------------
  102.         endmodule
  103.