Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. ;************************************************************
  2. ;*GAME TANKS CRETED BY ANDREW_PROGRAMMER AKA ANDREY IGNATYEV*
  3. ;*********************/8/2005********************************
  4. use32
  5. org 0x0
  6. include 'lang.inc'
  7.   db  'MENUET01'
  8.   dd  0x1
  9.   dd  START
  10.   dd  I_END
  11.   dd  0x4000+640*400*3+50*20*20*3+512+640+1+24*20*20*3+1
  12.   dd  0x4000
  13.   dd  0x0
  14.   dd  0x0
  15. START:
  16.    mov eax,40
  17.    mov ebx,111b
  18.    int 0x40
  19. ;----------------------------------------------------------
  20. ;---------load all sprites from arrays to memory-----------
  21. ;----------------------------------------------------------
  22.    and [number_sprite],0
  23.    xor eax,eax
  24. nextfile:
  25.    mov ebx,[spisok+4*eax]
  26.    mov ecx,50
  27.    mov esi,ebx
  28.    add esi,2
  29.    mov edi,0x4000+(640*400*3)+(50*20*20*3)+10
  30.    rep movsb ;copy palitra to memory
  31.    mov esi,ebx
  32.    add esi,52
  33.    xor ecx,ecx
  34.    mov cl,byte [ebx]
  35.    mov edi,0x4000+(640*400*3)+(50*20*20*3)+512
  36.    push eax
  37.    call unpakin
  38.    pop eax
  39.    mov ecx,20*20
  40.    mov esi,0x4000+(640*400*3)+(50*20*20*3)+512
  41.    mov edi,[number_sprite]
  42.    imul edi,3*20*20
  43.    add edi,0x4000+(640*400*3)
  44.    unp:
  45.       xor ebx,ebx
  46.       mov bl,byte[esi]
  47.       lea ebx,[ebx+ebx*2]
  48.       add ebx,0x4000+(640*400*3)+(50*20*20*3)+10
  49.       mov edx,[ebx]
  50.       mov [edi],edx
  51.       add esi,1
  52.       add edi,3
  53.       dec ecx
  54.    jnz unp
  55.    inc [number_sprite]
  56.    inc eax
  57.    cmp [number_sprite],26;total number of pictures equal 26
  58.    jne nextfile
  59. ;----------------------------------------------------------
  60. ;------rotate sprites of tanks to pi/2---------------------
  61. ;----------------------------------------------------------
  62.    mov [sp_pos],0x4000+(640*400*3)+18*20*20*3
  63.    and [num_blocks],0
  64. next_block_rotate:
  65.    mov [number_sprite],0
  66. next_sprite_rotate:
  67.    mov [x],19
  68.    and [y],0
  69. rotate_90:
  70.    mov ebx,[number_sprite]
  71.    mov esi,[y]
  72.    imul esi,60
  73.    imul ebx,1200
  74.    add esi,ebx  ;esi=number_sprite*1200+y*60
  75.    add esi,dword [sp_pos]
  76.    mov edi,0x4000+(640*400*3)+(50*20*20*3)
  77.    mov ecx,15
  78.    rep movsd
  79.    mov edi,[number_sprite]
  80.    imul edi,1200
  81.    add edi,dword [sp_pos]
  82.    add edi,8*20*20*3
  83.    mov ebx,[x]
  84.    lea ebx,[ebx+2*ebx]
  85.    add edi,ebx
  86.    mov esi,0x4000+(640*400*3)+(50*20*20*3)
  87.    mov ecx,20*3
  88. vertical:
  89.    xor eax,eax
  90.    mov al,byte[esi+2]
  91.    mov [edi+2],al
  92.    xor eax,eax
  93.    mov ax,word[esi]
  94.    mov [edi],ax
  95.    add edi,60
  96.    add esi,3
  97.    sub ecx,3
  98.    jnz vertical
  99.    dec [x]
  100.    inc [y]
  101.    cmp [x],-1
  102.    jne rotate_90
  103.    inc [number_sprite]
  104.    cmp [number_sprite],9
  105.    jne next_sprite_rotate
  106.    add [sp_pos],8*20*20*3
  107.    inc [num_blocks]
  108.    cmp [num_blocks],3
  109.    jne next_block_rotate
  110. ;---------------------------------------------------------
  111. restart_level:
  112.    call drawwin
  113. ;Start game(demo scen)
  114.    mov [y],18
  115. @1:
  116.  mov [x],30
  117.  @2:
  118.     mov esi,[x]
  119.     mov edi,[y]
  120.     imul esi,20*3
  121.     imul edi,20*(640*3)
  122.     add edi,esi
  123.     add edi,0x4000
  124.     mov esi,0x4000+(640*400*3)+1200
  125.     mov [counter],20
  126.     mov eax,esi
  127.     mov ebx,edi
  128.      @3:
  129.         mov esi,eax
  130.         mov edi,ebx
  131.         mov ecx,15
  132.         rep movsd
  133.         add eax,20*3
  134.         add ebx,640*3
  135.         dec [counter]
  136.      jnz @3
  137.     dec [x]
  138.  jnz @2
  139. dec [y]
  140. jnz @1
  141. ;draw script ******TANKS*******
  142.    mov eax,54
  143. @11:
  144.    mov esi,5
  145.    mov edi,80
  146.    xor ebx,ebx
  147.    xor edx,edx
  148.    mov bl,byte[TANKS_script+2*eax]   ;dx
  149.    mov dl,byte[TANKS_script+2*eax+1] ;dy
  150.    imul ebx,20
  151.    imul edx,20
  152.    add esi,ebx
  153.    add edi,edx
  154.    lea esi,[esi+2*esi]
  155.    lea edi,[edi+2*edi]
  156.    imul edi,640
  157.    add edi,esi
  158.    add edi,0x4000
  159.    mov esi,0x4000+(640*400*3)
  160.    mov ebx,esi
  161.    mov edx,edi
  162.    mov [counter],20
  163.    @22:
  164.    mov esi,ebx
  165.    mov edi,edx
  166.    mov ecx,15
  167.    rep movsd
  168.    add ebx,20*3
  169.    add edx,640*3
  170.    dec [counter]
  171.    jnz @22
  172.    dec eax
  173.    cmp eax,-1
  174.    jne @11
  175.    mov eax,7
  176.    mov ebx,0x4000
  177.    mov ecx,640*65536+400
  178.    mov edx,0*65536+20
  179.    int 0x40
  180.    call menu
  181. ;----------------------------
  182. new_level:
  183.    call drawwin
  184.    mov [SpriteInfo+72+8],dword 100  ;Xo
  185.    mov [SpriteInfo+72+36],dword 100 ;Yo
  186.    mov edx,[number_level]
  187.    call load_level
  188. ;--------------------------
  189.    and [strike_action],0
  190.    and [bazas],0
  191.    and [y],0
  192.    mov eax,8
  193. next_y:
  194.    and [x],0
  195.  next_x:
  196.    mov esi,[y]
  197.    shl esi,5
  198.    add esi,[x]
  199.    add esi,0x4000+(640*400*3)+(50*20*20*3)+512
  200.    xor ebx,ebx
  201.    mov bl,byte[esi]
  202.    cmp bl,7
  203.    jne no_baza
  204.    mov ecx,[x]
  205.    mov edx,[y]
  206.    inc ecx
  207.    inc [bazas]
  208.    add eax,4
  209.    imul ecx,20
  210.    imul edx,20
  211.    mov [SpriteInfo+9*eax+0],dword 3
  212.    mov [SpriteInfo+9*eax+4],dword 1
  213.    mov [SpriteInfo+9*eax+8],dword ecx
  214.    mov [SpriteInfo+9*eax+12],dword edx
  215.    mov [SpriteInfo+9*eax+16],dword 5
  216.    mov [SpriteInfo+9*eax+28],dword -5
  217.    mov edx,eax
  218.    shr edx,2
  219.    mov [LifesTanks+edx],byte 3;three lifes
  220.    mov [PulyTanks+edx],byte 1 ;can draw animation of "puly"
  221.    no_baza:
  222.    inc [x]
  223.    cmp [x],32
  224.    jne next_x
  225.    inc [y]
  226.    cmp [y],20
  227.    jne next_y
  228.    mov [LifesPlayer],3*4
  229.    and [score],0
  230. ;----------------------------------------------------------
  231. ;--------------------main loop-----------------------------
  232. ;----------------------------------------------------------
  233. maincycle:
  234.          ;save fon
  235.          mov eax,23*4
  236.          SaveFonForSprites:
  237.          mov ebx,[SpriteInfo+9*eax+4]
  238.          test ebx,ebx                     ;if ebx<>0 then can save
  239.          jz NoSaveFon
  240.          mov esi,[SpriteInfo+9*eax+8]     ; cordinat x
  241.          mov edi,[SpriteInfo+9*eax+12]    ; cordinat y
  242.          mov edx,eax
  243.          shr edx,2
  244.          call SaveFon
  245.          NoSaveFon:
  246.          sub eax,4
  247.          cmp eax,-4
  248.          jne SaveFonForSprites
  249.          ;put sprites
  250.          mov eax,23*4
  251.          PutSprites:
  252.          mov ebx,[SpriteInfo+9*eax+4]
  253.          test ebx,ebx
  254.          jz NoPutSprite
  255.          and ebx,10000b
  256.          test ebx,ebx   ; move to transparent shablon ?
  257.          jnz NoPutSprite
  258.          mov esi,[SpriteInfo+9*eax+8]     ; x
  259.          mov edi,[SpriteInfo+9*eax+12]    ; y
  260.          mov edx,[SpriteInfo+9*eax+0]     ;number sprite in sprites table
  261.          shl edx,2
  262.          add edx,[SpriteInfo+9*eax+24]    ;edx=4*NumSprites+phas
  263.          call PutSprite
  264.          NoPutSprite:
  265.          sub eax,4
  266.          cmp eax,-4
  267.          jne PutSprites
  268.          ;put image
  269.          call clock
  270.          mov ebx,[time]
  271.          sub ebx,[time_frame_old]
  272.          cmp ebx,5
  273.          jl NoPutScreen
  274.          mov ebx,[time]
  275.          mov [time_frame_old],ebx
  276.          mov eax,7
  277.          mov ebx,0x4000
  278.          mov ecx,640*65536+400
  279.          mov edx,0*65536+20
  280.          int 0x40
  281.          NoPutScreen:
  282.          ;put fon
  283.          mov eax,23*4
  284.          PutFonForSprites:
  285.          mov ebx,[SpriteInfo+9*eax+4]
  286.          test ebx,ebx
  287.          jz NoPutFon
  288.          mov esi,[SpriteInfo+9*eax+8]
  289.          mov edi,[SpriteInfo+9*eax+12]
  290.          mov edx,eax
  291.          shr edx,2
  292.          call PutFon
  293.          NoPutFon:
  294.          sub eax,4
  295.          cmp eax,-4
  296.          jne PutFonForSprites
  297.          ;change phas(if need)
  298.          mov eax,23*4
  299.          ChangePhasSprites:
  300.          push eax
  301.          call clock
  302.          pop eax
  303.          mov ebx,[SpriteInfo+9*eax+16] ;time of animation
  304.          mov ecx,[SpriteInfo+9*eax+20] ;time of last frame
  305.          mov edx,[time]
  306.          sub edx,ecx
  307.          cmp edx,ebx
  308.          jl no_change_phas
  309.          mov ebx,[time]
  310.          mov [SpriteInfo+9*eax+20],ebx ;save new time
  311.          ;------------------------------
  312.          mov esi,[SpriteInfo+9*eax+8]
  313.          mov edi,[SpriteInfo+9*eax+12]
  314.          mov ecx,[SpriteInfo+9*eax+28]
  315.          mov edx,[SpriteInfo+9*eax+32]
  316.          add esi,ecx                   ;x=x+dx
  317.          add edi,edx                   ;y=y+dy
  318.          mov [SpriteInfo+9*eax+8],dword esi
  319.          mov [SpriteInfo+9*eax+12],dword edi
  320.          ;-------------------------------
  321.          mov edx,[SpriteInfo+9*eax+24] ;phas
  322.          add edx,1
  323.          cmp edx,4
  324.          jne no_limit_phas
  325.          xor edx,edx
  326.          mov [SpriteInfo+9*eax+24],dword edx
  327.          mov [SpriteInfo+9*eax+4],dword edx
  328.          jmp no_change_phas
  329.          no_limit_phas:
  330.          mov [SpriteInfo+9*eax+24],dword edx
  331.          no_change_phas:
  332.          sub eax,4
  333.          cmp eax,-4
  334.          jne ChangePhasSprites
  335.          ;-------------------------------------------------
  336.          ;----------------keys-----------------------------
  337.          ;-------------------------------------------------
  338.          mov eax,23
  339.          mov ebx,3
  340.          int 0x40
  341.          cmp eax,1
  342.          jne keypressed
  343.          call drawwin
  344.          jmp action
  345.          keypressed:
  346.          cmp eax,2
  347.          jne action
  348.          and [_dx],0
  349.          and [_dy],0
  350.          mov eax,2
  351.          int 0x40
  352.          shr eax,8
  353.          ;---------
  354.          cmp eax,32
  355.          jne key2
  356.          cmp [strike_action],0
  357.          jne action
  358.          mov [SpriteInfo+36+4],dword 1 ;can draw sprite "puly"
  359.          mov [strike_action],1         ;sprite is active
  360.          mov eax,[SpriteInfo+72+8]
  361.          mov ebx,[SpriteInfo+72+12]
  362.          mov ecx,[SpriteInfo+72+28]
  363.          mov edx,[SpriteInfo+72+32]
  364.          add eax,ecx
  365.          add ebx,edx
  366.          mov [SpriteInfo+36+8],dword eax
  367.          mov [SpriteInfo+36+12],dword ebx
  368.          jmp action
  369.     key2:cmp eax,176
  370.          jne key3
  371.          mov [SpriteInfo+8*9+0],dword 8
  372.          mov [SpriteInfo+8*9+4],dword 1
  373.          mov [SpriteInfo+8*9+28],dword -5
  374.          mov [SpriteInfo+8*9+32],dword 0
  375.          mov [_dx],0
  376.          mov [_dy],10
  377.          cmp [strike_action],0
  378.          jne action
  379.          mov [SpriteInfo+36+28],dword -5
  380.          mov [SpriteInfo+36+32],dword 0
  381.          jmp action
  382.     key3:cmp eax,179
  383.          jne key4
  384.          mov [SpriteInfo+8*9+0],dword 4
  385.          mov [SpriteInfo+8*9+4],dword 1
  386.          mov [SpriteInfo+8*9+28],dword 5
  387.          mov [SpriteInfo+8*9+32],dword 0
  388.          mov [_dx],15
  389.          mov [_dy],10
  390.          cmp [strike_action],0
  391.          jne action
  392.          mov [SpriteInfo+36+28],dword 5
  393.          mov [SpriteInfo+36+32],dword 0
  394.          jmp action
  395.     key4:cmp eax,178
  396.          jne key5
  397.          mov [SpriteInfo+8*9+0],dword 2
  398.          mov [SpriteInfo+8*9+4],dword 1
  399.          mov [SpriteInfo+8*9+28],dword 0
  400.          mov [SpriteInfo+8*9+32],dword -5
  401.          mov [_dx],10
  402.          mov [_dy],1
  403.          cmp [strike_action],0
  404.          jne action
  405.          mov [SpriteInfo+36+28],dword 0
  406.          mov [SpriteInfo+36+32],dword -5
  407.          jmp action
  408.     key5:cmp eax,177
  409.          jne key6
  410.          mov [SpriteInfo+8*9+0],dword 6
  411.          mov [SpriteInfo+8*9+4],dword 1
  412.          mov [SpriteInfo+8*9+28],dword 0
  413.          mov [SpriteInfo+8*9+32],dword 5
  414.          mov [_dy],15
  415.          mov [_dx],10
  416.          cmp [strike_action],0
  417.          jne action
  418.          mov [SpriteInfo+36+28],dword 0
  419.          mov [SpriteInfo+36+32],dword 5
  420.          jmp action
  421.     key6:cmp eax,27
  422.          jne action
  423.          mov eax,-1
  424.          int 0x40
  425. action:
  426.          mov [SpriteInfo+72+4],dword 1
  427.          mov [SpriteInfo+72+16],dword 5 ;usal speed of tank
  428.          mov esi,[SpriteInfo+8*9+8]   ;cordinat x of sprite
  429.          mov edi,[SpriteInfo+8*9+12]  ;cordinat y of sprite
  430.          mov ecx,[SpriteInfo+72+28]
  431.          mov edx,[SpriteInfo+72+32]
  432.          add ecx,[_dx]
  433.          add edx,[_dy]
  434.          add esi,ecx                  ;x=x+_dx+dx
  435.          add edi,edx                  ;y=y+_dy+dy
  436.          call map_x_y
  437.          cmp ecx,6
  438.          jne no_woter
  439.          mov [SpriteInfo+72+16],dword 7 ;in water tank slow move
  440.          no_woter:
  441.          cmp ecx,4
  442.          jne no_palma
  443.          mov [SpriteInfo+72+4],dword 10000b;if bit 4 than transparent sprite
  444.          no_palma:
  445.          cmp ecx,8
  446.          jne no_derevo
  447.          mov [SpriteInfo+72+4],dword 10000b
  448.          no_derevo:
  449.          test edx,edx
  450.          jnz ani
  451.          mov [SpriteInfo+8*9+28],dword 0
  452.          mov [SpriteInfo+8*9+32],dword 0
  453.          ;-------------------------------------------------
  454.          ani:
  455.          mov eax,[strike_action]
  456.          test eax,eax
  457.          jz no_anim_strike
  458.          mov esi,[SpriteInfo+36+8]
  459.          mov edi,[SpriteInfo+36+12]
  460.          mov ecx,[SpriteInfo+36+28]
  461.          mov edx,[SpriteInfo+36+32]
  462.          add esi,ecx
  463.          add edi,edx
  464.          call map_x_y
  465.          cmp cl,0
  466.          jne no_stena
  467.          mov [ebx],byte 2 ;trava
  468.          jmp bum
  469.          no_stena:
  470.          cmp cl,1
  471.          jne no_brony
  472.          jmp bum
  473.          no_brony:
  474.          cmp cl,7
  475.          jne anim_action_puly
  476.          sub [bazas],1
  477.          mov [ebx],byte 2 ;trava
  478.          bum:
  479.          mov esi,[SpriteInfo+36+8]
  480.          mov edi,[SpriteInfo+36+12]
  481.          mov [SpriteInfo+4],dword 1
  482.          mov [SpriteInfo+8],dword esi
  483.          mov [SpriteInfo+12],dword edi
  484.          mov [SpriteInfo+36+4],dword 0
  485.          mov [end_bum],1
  486.          jmp no_anim_strike
  487.          anim_action_puly:
  488.          mov [SpriteInfo+36+4],dword 1
  489.          no_anim_strike:
  490.          ;-------------------------------------------------
  491.          ;проверяем попала ли пуля в противников
  492.          mov esi,[SpriteInfo+4*9+8]
  493.          mov edi,[SpriteInfo+4*9+12]
  494.          mov [x],esi ;координата x пули
  495.          mov [y],edi ;координата y пули
  496.          mov eax,3*4
  497.          bum_tank:
  498.          mov ebx,eax
  499.          shr ebx,2
  500.          xor ecx,ecx
  501.          mov cl,byte [LifesTanks+ebx]
  502.          cmp ecx,0
  503.          jz no_strike
  504.          mov esi,[SpriteInfo+9*eax+8] ;x
  505.          mov edi,[SpriteInfo+9*eax+12] ;y
  506.          sub esi,[x]
  507.          sub edi,[y]
  508.          cmp esi,5
  509.          ja no_strike
  510.          cmp edi,5
  511.          ja no_strike
  512.          add [score],5
  513.          cmp [score],20
  514.          jl no_bonus
  515.          add [LifesPlayer],4
  516.          and [score],0
  517.          no_bonus:
  518.          dec ecx;,1
  519.          mov [LifesTanks+ebx],cl ;life=life-1
  520.          mov esi,[x]
  521.          mov edi,[y]
  522.          mov [SpriteInfo+4],dword 1
  523.          mov [SpriteInfo+8],dword esi
  524.          mov [SpriteInfo+12],dword edi
  525.          mov [SpriteInfo+36+4],dword 0
  526.          mov [end_bum],1
  527.          no_strike:
  528.          add eax,4
  529.          cmp eax,10*4
  530.          jne bum_tank
  531.          ;-------------------------------------------------
  532.          xor eax,eax
  533.          mov al,[end_bum]
  534.          test eax,eax
  535.          jz no_end_strike
  536.          mov eax,[SpriteInfo+24]
  537.          cmp eax,3
  538.          jne no_end_strike
  539.          and [strike_action],0
  540.          and [end_bum],0
  541.          mov edx,[number_level]
  542.          mov ecx,15
  543.          call load_level
  544.          no_end_strike:
  545.          ;----------------------------
  546.          ;проверяем,попали ли противники в игрока
  547.          mov eax,3*4
  548.          mov esi,[SpriteInfo+72+8]
  549.          mov edi,[SpriteInfo+72+12]
  550.          mov [x],esi
  551.          mov [y],edi
  552.          strike_to_player:
  553.          mov ebx,eax
  554.          add ebx,28
  555.          mov esi,[SpriteInfo+9*ebx+8]
  556.          mov edi,[SpriteInfo+9*ebx+12]
  557.          sub esi,[x]
  558.          sub edi,[y]
  559.          cmp esi,5
  560.          ja no_strike_to_player
  561.          cmp edi,5
  562.          ja no_strike_to_player
  563.          mov esi,[x]
  564.          mov edi,[y]
  565.          mov [SpriteInfo+9*ebx+4],dword 0
  566.          add ebx,28
  567.          mov [SpriteInfo+9*ebx+4],dword 1
  568.          mov [SpriteInfo+9*ebx+8],dword esi
  569.          mov [SpriteInfo+9*ebx+12],dword edi
  570.          sub [LifesPlayer],1
  571.          cmp [LifesPlayer],0
  572.          jne no_game_over
  573.          call end_game
  574.          jmp restart_level
  575.          no_game_over:
  576.          no_strike_to_player:
  577.          add eax,4
  578.          cmp eax,10*4
  579.          jne strike_to_player
  580.          ;----------------------------
  581.          xor eax,eax
  582.          mov al,[bazas]
  583.          test eax,eax
  584.          jnz no_end_level
  585.          call you_won
  586.          inc [number_level]
  587.          cmp [number_level],25
  588.          jne no_end_game
  589.          mov eax,-1
  590.          int 0x40
  591.          no_end_game:
  592.          jmp new_level
  593.          no_end_level:
  594.          ;-------------------------------------------------
  595.          ;------------ logic of tanks----------------------
  596.          ;-------------------------------------------------
  597.          mov eax,12
  598.          next_bad_tank:
  599.          mov ebx,eax
  600.          shr ebx,2
  601.          xor ecx,ecx
  602.          mov cl,byte[LifesTanks+ebx]
  603.          test ecx,ecx
  604.          jz no_action_bad_tank
  605.          mov ebx,[SpriteInfo+9*eax+4]
  606.          test ebx,ebx
  607.          jnz no_action_bad_tank
  608.          ;---------------------
  609.          mov esi,[SpriteInfo+9*eax+8]
  610.          mov edi,[SpriteInfo+9*eax+12]
  611.          mov [x],esi
  612.          mov [y],edi
  613.          mov ecx,[SpriteInfo+9*eax+28]
  614.          mov edx,[SpriteInfo+9*eax+32]
  615.          ;смотрим что впереди танка-противника
  616.          cmp ecx,0
  617.          ja more_null_x
  618.          lea ecx,[ecx+2*ecx]
  619.          jmp test_y
  620.          more_null_x:
  621.          shl ecx,2
  622.          add ecx,15
  623.          test_y:
  624.          cmp edx,0
  625.          ja more_null_y
  626.          lea edx,[edx+2*edx]
  627.          jmp add_numbers
  628.          more_null_y:
  629.          shl edx,2
  630.          add edx,15
  631.          add_numbers:
  632.          ;--------------------
  633.          add esi,ecx
  634.          add edi,edx
  635.          call map_x_y
  636.          cmp ecx,4
  637.          jne no_palma_p
  638.          mov [SpriteInfo+9*eax+4],dword 10000b
  639.          no_palma_p:
  640.          cmp ecx,8
  641.          jne no_derevo_p
  642.          mov [SpriteInfo+9*eax+4],dword 10000b
  643.          no_derevo_p:
  644.          ;если на пути танка препятствие,то надо изменить
  645.          ;направление движения
  646.          test edx,edx
  647.          jnz lab1
  648.          ;проверяем - не попал ли танк в тупик(3 напрвления заняты)
  649.          and [tupik],0
  650.          mov esi,[x]
  651.          mov edi,[y]
  652.          add esi,(20+15)
  653.          add edi,10
  654.          call map_x_y
  655.          test edx,edx
  656.          jnz direct1
  657.          inc [tupik]
  658.          direct1:
  659.          mov esi,[x]
  660.          mov edi,[y]
  661.          add esi,10
  662.          add edi,(20+15)
  663.          call map_x_y
  664.          test edx,edx
  665.          jnz direct2
  666.          inc [tupik]
  667.          direct2:
  668.          mov esi,[x]
  669.          mov edi,[y]
  670.          add esi,-15
  671.          add edi,10
  672.          call map_x_y
  673.          test edx,edx
  674.          jnz direct3
  675.          inc [tupik]
  676.          direct3:
  677.          mov esi,[x]
  678.          mov edi,[y]
  679.          add esi,10
  680.          add edi,-15
  681.          call map_x_y
  682.          test edx,edx
  683.          jnz direct4
  684.          inc [tupik]
  685.          direct4:
  686.          cmp [tupik],3
  687.          je no_move0
  688.          ;------------------
  689.          ;strategy1
  690.          mov esi,[x]
  691.          mov edi,[y]
  692.          add esi,(20+15)
  693.          add edi,10
  694.          call map_x_y
  695.          test edx,edx
  696.          jnz no_strategy1
  697.          mov esi,[x]
  698.          mov edi,[y]
  699.          add esi,10
  700.          add edi,-15
  701.          call map_x_y
  702.          jnz no_strategy1
  703.          jmp no_move3 ;going to left
  704.          no_strategy1:
  705.          ;------------------
  706.          mov esi,[x]
  707.          mov edi,[y]
  708.          add esi,-15
  709.          add edi,10
  710.          call map_x_y
  711.          test edx,edx
  712.          jnz no_strategy2
  713.          mov esi,[x]
  714.          mov edi,[y]
  715.          add esi,10
  716.          add edi,-15
  717.          call map_x_y
  718.          test edx,edx
  719.          jnz no_strategy2
  720.          jmp no_move2
  721.          no_strategy2:
  722.          ;------------------
  723.          mov esi,[x]
  724.          mov edi,[y]
  725.          add edi,(20+15)
  726.          add esi,10
  727.          call map_x_y
  728.          test edx,edx
  729.          jnz no_strategy3
  730.          mov esi,[x]
  731.          mov edi,[y]
  732.          add esi,-15
  733.          add edi,10
  734.          call map_x_y
  735.          test edx,edx
  736.          jnz no_strategy3
  737.          jmp no_move1
  738.          no_strategy3:
  739.          ;-------------------------------------------------
  740.          no_move0:
  741.          mov esi,[x]  ; x
  742.          mov edi,[y] ; y
  743.          add edi,-15                 ; (y-20) up
  744.          add esi,10
  745.          call map_x_y
  746.          test edx,edx
  747.          jz no_move1
  748.          ;вверху свободно - можно двигаться   up
  749.          mov [SpriteInfo+9*eax+0],dword 3
  750.          mov [SpriteInfo+9*eax+28],dword 0
  751.          mov [SpriteInfo+9*eax+32],dword -5
  752.          jmp lab1
  753.          no_move1:
  754.          mov esi,[x]
  755.          mov edi,[y]
  756.          add esi,(20+15)                 ;x+20
  757.          add edi,10
  758.          call map_x_y
  759.          test edx,edx
  760.          jz no_move2
  761.          ;                                 right
  762.          mov [SpriteInfo+9*eax+0],dword 5
  763.          mov [SpriteInfo+9*eax+28],dword 5
  764.          mov [SpriteInfo+9*eax+32],dword 0
  765.          jmp lab1
  766.          no_move2:
  767.          mov esi,[x]
  768.          mov edi,[y]
  769.          add esi,10                   ;x-20
  770.          add edi,(20+15)
  771.          call map_x_y
  772.          test edx,edx
  773.          jz no_move3
  774.          ;                                  down
  775.          mov [SpriteInfo+9*eax+0],dword 7
  776.          mov [SpriteInfo+9*eax+28],dword 0
  777.          mov [SpriteInfo+9*eax+32],dword 5
  778.          jmp lab1
  779.          no_move3:
  780.          mov esi,[x]
  781.          mov edi,[y]
  782.          add edi,10                 ;y+20
  783.          add esi,-15
  784.          call map_x_y
  785.          test edx,edx
  786.          jz no_move4
  787.          ;внизу свободно-можно двигаться    left
  788.          mov [SpriteInfo+9*eax+0],dword 9
  789.          mov [SpriteInfo+9*eax+28],dword -5
  790.          mov [SpriteInfo+9*eax+32],dword 0
  791.          jmp lab1
  792.          no_move4:
  793.          mov [SpriteInfo+9*eax+28],dword 0
  794.          mov [SpriteInfo+9*eax+32],dword 0
  795.          lab1:
  796.          mov edx,dword[SpriteInfo+9*eax+4]
  797.          test edx,edx
  798.          jnz no_action_bad_tank
  799.          mov [SpriteInfo+9*eax+4],dword 1
  800.          no_action_bad_tank:
  801.          add eax,4
  802.          cmp eax,10*4
  803.          jne next_bad_tank
  804.          ;-------------------------------------------------
  805.          mov eax,12
  806.          next_puly:
  807.          mov edx,eax
  808.          shr edx,2
  809.          xor ecx,ecx
  810.          mov cl,byte[PulyTanks+edx]
  811.          test ecx,ecx                 ;can change course of puly ?
  812.          jz no_change_course
  813.          xor ecx,ecx
  814.          mov cl,byte[LifesTanks+edx]
  815.          test ecx,ecx                 ;is tank not destroed ?
  816.          jz no_draw_s
  817.          mov ecx,[SpriteInfo+9*eax+24] ;tank's phas of animation
  818.          test ecx,ecx                  ; phas=0 ?
  819.          jnz no_change_course
  820.          mov esi,[SpriteInfo+9*eax+8]
  821.          mov edi,[SpriteInfo+9*eax+12]
  822.          mov ecx,[SpriteInfo+9*eax+28]
  823.          mov edx,[SpriteInfo+9*eax+32]
  824.          mov ebx,eax
  825.          add ebx,28
  826.          mov [SpriteInfo+9*ebx+0],dword 1
  827.          mov [SpriteInfo+9*ebx+4],dword 1
  828.          mov [SpriteInfo+9*ebx+28],dword ecx
  829.          mov [SpriteInfo+9*ebx+32],dword edx
  830.          mov [SpriteInfo+9*ebx+16],dword 3
  831.          mov [SpriteInfo+9*ebx+8],dword esi
  832.          mov [SpriteInfo+9*ebx+12],dword edi
  833.          mov ebx,eax
  834.          shr ebx,2
  835.          mov [PulyTanks+ebx],byte 0
  836.          jmp no_draw_s
  837.          ;-------------------
  838.          no_change_course:
  839.          mov ebx,eax
  840.          add ebx,28
  841.          mov ecx,[SpriteInfo+9*ebx+24]
  842.          test ecx,ecx
  843.          jnz no_draw_s
  844.          mov esi,[SpriteInfo+9*ebx+8]
  845.          mov edi,[SpriteInfo+9*ebx+12]
  846.          mov ecx,[SpriteInfo+9*ebx+28]
  847.          mov edx,[SpriteInfo+9*ebx+32]
  848.          call map_x_y
  849.          cmp ecx,1
  850.          je bumm
  851.          cmp ecx,0
  852.          je strike_to_wall
  853.          jmp no_bumm
  854.          strike_to_wall:
  855.          mov [ebx],byte 2
  856.          bumm:
  857.          ;-------------------
  858.          mov ebx,eax
  859.          add ebx,28
  860.          mov [SpriteInfo+9*ebx+28],dword 0
  861.          mov [SpriteInfo+9*ebx+32],dword 0
  862.          mov esi,[SpriteInfo+9*ebx+8]
  863.          mov edi,[SpriteInfo+9*ebx+12]
  864.          add ebx,28
  865.          mov [SpriteInfo+9*ebx+4],dword 1
  866.          mov [SpriteInfo+9*ebx+8],dword esi
  867.          mov [SpriteInfo+9*ebx+12],dword edi
  868.          mov [SpriteInfo+9*ebx+16],dword 3
  869.          mov [SpriteInfo+9*ebx+28],dword 0
  870.          mov [SpriteInfo+9*ebx+32],dword 0
  871.          mov ebx,eax
  872.          shr ebx,2
  873.          mov [PulyTanks+ebx],byte 1
  874.          mov edx,[number_level]
  875.          mov ecx,15
  876.          push eax
  877.          call load_level
  878.          pop eax
  879.          jnp no_draw_s
  880.          ;-------------------
  881.          no_bumm:
  882.          mov ebx,eax
  883.          add ebx,28
  884.          mov [SpriteInfo+9*ebx+4],dword 1 ; can draw sprite of puly
  885.          no_draw_s:
  886.          add eax,4
  887.          cmp eax,10*4
  888.          jne next_puly
  889.          ;-------------------------------------------------
  890.          ;-------------end of tanks logic------------------
  891.          ;-------------------------------------------------
  892.          mov eax,13
  893.          mov ebx,180*65536+220
  894.          mov ecx,425*65536+17
  895.          mov edx,0xdfffff
  896.          int 0x40
  897.          mov eax,4
  898.          mov ebx,190*65536+430
  899.          mov ecx,0x1ded00;0
  900.          mov edx,Level
  901.          mov esi,5
  902.          int 0x40
  903.          mov eax,4
  904.          mov ebx,260*65536+430
  905.          mov ecx,0x3558ff
  906.          mov edx,Lifes
  907.          mov esi,5
  908.          int 0x40
  909.          mov eax,4
  910.          mov ebx,330*65536+430
  911.          mov ecx,0xf93500
  912.          mov edx,Score
  913.          mov esi,5
  914.          int 0x40
  915.          mov eax,47
  916.          mov ebx,3*65536
  917.          mov ecx,[number_level]
  918.          inc ecx
  919.          mov edx,225*65536+430
  920.          mov esi,0x1ded00
  921.          int 0x40
  922.          mov eax,47
  923.          mov ebx,3*65536
  924.          xor ecx,ecx
  925.          mov cl,[LifesPlayer]
  926.          shr ecx,2
  927.          mov edx,295*65536+430
  928.          mov esi,0x3558ff
  929.          int 0x40
  930.          mov eax,47
  931.          mov ebx,3*65536
  932.          xor ecx,ecx
  933.          mov cl,byte[score]
  934.          mov edx,365*65536+430
  935.          mov esi,0xf93500
  936.          int 0x40
  937.          jmp maincycle
  938. ;----------------------------------------------------------
  939. ;-----------------end of main cycle------------------------
  940. ;----------------------------------------------------------
  941. ;draw sprite in video memory
  942. PutSprite:
  943.         push eax
  944.         mov ebx,esi
  945.         mov eax,edi
  946.         lea ebx,[ebx+2*ebx]
  947.         lea eax,[eax+2*eax]
  948.         imul eax,640
  949.         add eax,0x4000
  950.         add eax,ebx
  951.         mov [counter],20
  952.         mov esi,edx
  953.         imul esi,1200
  954.         add esi,0x4000+(640*400*3)+10*1200
  955.         mov ebx,esi
  956.         mov edi,eax
  957.    draw:
  958.         mov esi,ebx
  959.         mov edi,eax
  960.         mov ecx,20
  961.         ;--------------------
  962.         rep_movsb:
  963.         xor edx,edx
  964.         mov edx,[esi]
  965.         and edx,0xffffff
  966.         test edx,edx ;0 is transparent color
  967.         jz transparent_color
  968.         mov [edi],dx
  969.         shr edx,16
  970.         mov [edi+2],dl
  971.         transparent_color:
  972.         add esi,3
  973.         add edi,3
  974.         sub ecx,1
  975.         jnz rep_movsb
  976.         ;--------------------
  977.         add eax,640*3
  978.         add ebx,20*3
  979.         dec [counter]
  980.         jnz draw
  981.         pop eax
  982.       ret
  983. ;----------------------------------------------------------
  984. SaveFon:
  985.         push eax
  986.         lea esi,[esi+2*esi]
  987.         lea edi,[edi+2*edi]
  988.         imul edi,640
  989.         add esi,edi
  990.         add esi,0x4000
  991.         mov edi,edx
  992.         imul edi,1200
  993.         add edi,0x4000+(640*400*3)+(50*20*20*3)+512+641
  994.         mov [counter],20
  995.         mov eax,esi
  996.         mov ebx,edi
  997. save_to:
  998.         mov esi,eax
  999.         mov edi,ebx
  1000.         mov ecx,15
  1001.         rep movsd
  1002.         add eax,640*3
  1003.         add ebx,20*3
  1004.         dec [counter]
  1005.         jnz save_to
  1006.         pop eax
  1007.         ret
  1008. ;----------------------------------------------------------
  1009. PutFon:
  1010.         push eax
  1011.         lea esi,[esi+2*esi]
  1012.         lea edi,[edi+2*edi]
  1013.         imul edi,640
  1014.         add edi,esi
  1015.         add edi,0x4000
  1016.         mov esi,edx
  1017.         imul esi,1200
  1018.         add esi,0x4000+(640*400*3)+(50*20*20*3)+512+641
  1019.         mov [counter],20
  1020.         mov eax,esi
  1021.         mov ebx,edi
  1022.  put_to:
  1023.         mov esi,eax
  1024.         mov edi,ebx
  1025.         mov ecx,15
  1026.         rep movsd
  1027.         add eax,20*3
  1028.         add ebx,640*3
  1029.         dec [counter]
  1030.         jnz put_to
  1031.         pop eax
  1032.        ret
  1033. ;----------------------------------------------------------
  1034. ;get time in 1/100 sec
  1035. clock:  mov eax,26
  1036.         mov ebx,9
  1037.         int 0x40
  1038.         mov [time],eax
  1039.         ret
  1040. ;----------------------------------------------------------
  1041. ;-----------------load level to memory---------------------
  1042. ;----------------------------------------------------------
  1043. load_level:
  1044.            cmp ecx,15
  1045.            je no_load_level
  1046.            mov eax,edx
  1047.            mov ebx,[levels+4*eax]
  1048.            mov esi,ebx
  1049.            add esi,2
  1050.            xor ecx,ecx
  1051.            xor eax,eax
  1052.            mov cl,byte[ebx]
  1053.            mov al,byte[ebx+1]
  1054.            add ecx,eax
  1055.            mov edi,0x4000+(640*400*3)+(50*20*20*3)+512
  1056.            call unpakin
  1057.            no_load_level:
  1058.            and [y],0
  1059.        c_y:
  1060.            and [x],0
  1061.        c_x:
  1062.            mov eax,[x]
  1063.            mov ebx,[y]
  1064.            shl ebx,5
  1065.            add eax,ebx
  1066.            add eax,0x4000+(640*400*3)+(50*20*20*3)+512
  1067.            mov ecx,eax
  1068.            xor eax,eax
  1069.            mov al,byte [ecx]
  1070.            imul eax,1200
  1071.            add eax,0x4000+(640*400*3)
  1072.            mov ebx,[x]
  1073.            imul ebx,20*3
  1074.            mov ecx,[y]
  1075.            imul ecx,20*3*640
  1076.            add ebx,ecx
  1077.            add ebx,0x4000
  1078.            mov esi,eax
  1079.            mov edi,ebx
  1080.            ;----------------------------
  1081.            mov edx,20
  1082.   next_line:
  1083.            mov esi,eax
  1084.            mov edi,ebx
  1085.            mov ecx,15
  1086.            rep movsd
  1087.            add eax,20*3
  1088.            add ebx,(640*3)
  1089.            dec edx
  1090.            jnz next_line
  1091.            ;----------------------------
  1092.            inc [x]
  1093.            cmp [x],32
  1094.            jne c_x
  1095.            inc [y]
  1096.            cmp [y],20
  1097.            jne c_y
  1098.            ret
  1099. ;----------------------------------------------------------
  1100. map_x_y:
  1101.           push eax
  1102.           mov ecx,20
  1103.           mov eax,esi
  1104.           cdq
  1105.           idiv ecx
  1106.           mov esi,eax
  1107.           mov eax,edi
  1108.           cdq
  1109.           idiv ecx
  1110.           mov edi,eax
  1111.           ;------------------
  1112.           mov ebx,edi
  1113.           shl ebx,5
  1114.           add ebx,esi
  1115.           add ebx,0x4000+(640*400*3)+(50*20*20*3)+512
  1116.           xor ecx,ecx
  1117.           mov cl,byte[ebx]
  1118.           cmp cl,0
  1119.           je false_draw
  1120.           cmp cl,1
  1121.           je false_draw
  1122.           cmp cl,3
  1123.           je false_draw
  1124.           cmp cl,7
  1125.           je false_draw
  1126.           mov edx,1
  1127.           jmp lab2
  1128.           false_draw:
  1129.           xor edx,edx
  1130.           lab2:
  1131.           pop eax
  1132.           ret
  1133. ;----------------------------------------------------------
  1134. you_won:
  1135.          mov eax,13
  1136.          mov ebx,1*65536+640
  1137.          mov ecx,20*65536+400
  1138.          mov edx,0xc6e9
  1139.          int 0x40
  1140.          mov eax,4
  1141.          mov ebx,220*65536+190
  1142.          mov ecx,0xffffff
  1143.          mov edx,won1
  1144.          mov esi,29
  1145.          int 0x40
  1146.          mov eax,4
  1147.          mov ebx,220*65536+200
  1148.          mov ecx,0xffffff
  1149.          mov edx,won2
  1150.          mov esi,29
  1151.          int 0x40
  1152.          mov eax,4
  1153.          mov ebx,220*65536+210
  1154.          mov ecx,0xffffff
  1155.          mov edx,won3
  1156.          mov esi,29
  1157.          int 0x40
  1158.          mov eax,5
  1159.          mov ebx,100
  1160.          int 0x40
  1161.          ret
  1162. ;----------------------------------------------------------
  1163. end_game:
  1164.         mov eax,13
  1165.         mov ebx,0*65536+640
  1166.         mov ecx,20*65536+400
  1167.         mov edx,0
  1168.         int 0x40
  1169.         mov eax,4
  1170.         mov ebx,280*65536+200
  1171.         mov ecx,0xffffff
  1172.         mov edx,game_over
  1173.         mov esi,9
  1174.         int 0x40
  1175.         mov eax,5
  1176.         mov ebx,150
  1177.         int 0x40
  1178.         ret
  1179. ;----------------------------------------------------------
  1180. drawwin:
  1181.         mov eax,12
  1182.         mov ebx,1
  1183.         int 0x40
  1184.         ;рисуем окно задавая все необходимые цвета
  1185.         mov eax,0
  1186.         mov ebx,50*65536+640
  1187.         mov ecx,50*65536+480
  1188.         mov edx,0x03AABBCC
  1189.         mov esi,0x805080d0
  1190.         mov edi,0x005080d0
  1191.         int 0x40
  1192.         ;пишем заголовок окна
  1193.         mov eax,4
  1194.         mov ebx,5*65536+5
  1195.         mov ecx,0x10ffffff
  1196.         mov edx,name
  1197.         mov esi,42
  1198.         int 0x40
  1199.         ret
  1200. ;----------------------------------------------------------
  1201. menu:
  1202.    cycle_menu:
  1203.         mov eax,13
  1204.         mov ebx,235*65536+140
  1205.         mov ecx,230*65536+20
  1206.         mov edx,0xed16
  1207.         int 0x40
  1208.         mov eax,4
  1209.         mov ebx,255*65536+235
  1210.         mov ecx,0xff0200
  1211.         mov edx,start_menu
  1212.         mov esi,11
  1213.         int 0x40
  1214.         mov eax,47
  1215.         mov ebx,3*65536
  1216.         mov ecx,[number_level]
  1217.         mov edx,345*65536+235
  1218.         mov esi,0xff0200
  1219.         int 0x40
  1220.         still:
  1221.         mov eax,10
  1222.         int 0x40
  1223.         cmp eax,2
  1224.         jne still
  1225.         mov eax,2
  1226.         int 0x40
  1227.         shr eax,8
  1228.         cmp eax,32
  1229.         je start_game
  1230.         cmp eax,176
  1231.         jne no_left
  1232.         dec [number_level]
  1233.         and [number_level],11111b
  1234.         jmp cycle_menu
  1235.         no_left:
  1236.         cmp eax,179
  1237.         jne no_right
  1238.         inc [number_level]
  1239.         and [number_level],11111b
  1240.         jmp cycle_menu
  1241.         no_right:
  1242.         cmp eax,27
  1243.         jne cycle_menu
  1244.         mov eax,-1
  1245.         int 0x40
  1246.         start_game:
  1247.         ret
  1248. ;----------------------------------------------------------
  1249. ;--------------unpak pix engin-----------------------------
  1250. ;----------------------------------------------------------
  1251.       unpakin:
  1252.  NextLitlColor:
  1253.            xor edx,edx
  1254.            mov dl,byte[esi]
  1255.            xor eax,eax
  1256.            xor ebx,ebx
  1257.            mov al,dl
  1258.            mov bl,al
  1259.            shr al,4
  1260.            and al,0xf
  1261.            mov [LitlCounter],al
  1262.            and bl,0xf
  1263.            mov [LitlColor],bl
  1264.            xor eax,eax
  1265.        ;----------------------
  1266.            mov al,[LitlColor]
  1267.        beg:mov [edi],al
  1268.            add edi,1
  1269.            add [LitlCounter],-1
  1270.            cmp [LitlCounter],-1
  1271.            jne beg
  1272.            inc esi
  1273.            dec ecx
  1274.            jnz NextLitlColor
  1275.            ret
  1276. LitlCounter db 0
  1277. LitlColor   db 0
  1278. ;----------------------------------------------------------
  1279. time            dd 0
  1280. time_frame_old  dd 0
  1281. number_sprite   dd 0
  1282. number_level    dd 0
  1283. counter         db 0
  1284. sp_pos          dd 0
  1285. num_blocks      dd 0
  1286. ;-------------------
  1287. x               dd 0
  1288. y               dd 0
  1289. _dx             dd 0
  1290. _dy             dd 0
  1291. strike_action   dd 0
  1292. end_bum         db 0
  1293. bazas           db 0
  1294. name            db '  game *TANKS* creted by andrew_programmer'
  1295. won1            db '*****************************'
  1296. won2            db '*    YOU WON LEVEL   !!!    *'
  1297. won3            db '*****************************'
  1298. game_over       db 'GAME OVER'
  1299. Lifes           db 'LIFES'
  1300. Level           db 'LEVEL'
  1301. Score           db 'SCORE'
  1302. start_menu      db 'START LEVEL'
  1303. LifesTanks      rb 16
  1304. PulyTanks       rb 16
  1305. LifesPlayer     db 0
  1306. tupik           db 0
  1307. score           db 0
  1308. SpriteInfo:
  1309.             dd 0,0,0,0,4,0,0,0,0
  1310.             dd 1,0,100,80,3,0,0,0,0
  1311.             dd 2,1,100,100,5,0,0,0,0
  1312.             dd 0,0,0,0,0,0,0,0,0
  1313.             dd 0,0,0,0,0,0,0,0,0
  1314.             dd 0,0,0,0,0,0,0,0,0
  1315.             dd 0,0,0,0,0,0,0,0,0
  1316.             dd 0,0,0,0,0,0,0,0,0
  1317.             dd 0,0,0,0,0,0,0,0,0
  1318.             dd 0,0,0,0,0,0,0,0,0
  1319.             dd 0,0,0,0,0,0,0,0,0
  1320.             dd 0,0,0,0,0,0,0,0,0
  1321.             dd 0,0,0,0,0,0,0,0,0
  1322.             dd 0,0,0,0,0,0,0,0,0
  1323.             dd 0,0,0,0,0,0,0,0,0
  1324.             dd 0,0,0,0,0,0,0,0,0
  1325.             dd 0,0,0,0,0,0,0,0,0
  1326.             dd 0,0,0,0,0,0,0,0,0
  1327.             dd 0,0,0,0,0,0,0,0,0
  1328.             dd 0,0,0,0,0,0,0,0,0
  1329.             dd 0,0,0,0,0,0,0,0,0
  1330.             dd 0,0,0,0,0,0,0,0,0
  1331.             dd 0,0,0,0,0,0,0,0,0
  1332.             dd 0,0,0,0,0,0,0,0,0
  1333.             dd 0,0,0,0,0,0,0,0,0
  1334. TANKS_script:
  1335.             db 1,1,2,1,3,1,4,1,5,1,3,2,3,3,3,4,3,5 ;T
  1336.             db 7,3,7,4,7,5,8,2,8,4,9,1,9,4,10,2,10,4,11,3,11,4,11,5 ;A
  1337.             db 13,1,13,2,13,3,13,4,13,5,14,1,15,2,16,3,17,1,17,2,17,3,17,4,17,5 ;N
  1338.             db 19,1,19,2,19,3,19,4,19,5,20,3,21,2,22,1,22,3,23,4,23,5 ;K
  1339.             db 25,4,26,2,26,5,27,1,27,3,27,5,27,1,28,4,28,1,29,2 ;S
  1340.  
  1341. ;----------------------------------------------------------
  1342. ;-----------------------data-------------------------------
  1343. ;----------------------------------------------------------
  1344. water:
  1345. db 247,0,0,0,0,0,255,0
  1346. db 0,128,0,255,128,0,128,255
  1347. db 0,255,0,0,255,255,0,0
  1348. db 0,0,0,0,0,0,0,0
  1349. db 0,0,0,0,0,0,0,0
  1350. db 0,0,0,0,0,0,0,0
  1351. db 0,0,7,0,2,1,19,2
  1352. db 1,2,1,2,17,2,1,18
  1353. db 35,49,19,2,49,2,17,2
  1354. db 17,3,6,5,19,2,19,17
  1355. db 18,35,18,1,2,51,5,1
  1356. db 2,5,3,6,18,1,19,5
  1357. db 3,17,2,19,6,5,19,6
  1358. db 1,3,33,19,6,3,5,3
  1359. db 2,17,51,2,1,19,18,3
  1360. db 6,67,18,1,2,3,5,35
  1361. db 1,2,17,19,5,6,5,6
  1362. db 3,1,18,51,2,3,18,3
  1363. db 6,3,5,6,19,5,19,1
  1364. db 19,33,18,1,18,3,6,3
  1365. db 6,67,1,2,1,2,65,2
  1366. db 1,19,5,3,21,3,17,34
  1367. db 1,66,1,18,67,2,17,2
  1368. db 33,2,1,18,1,2,1,34
  1369. db 1,2,1,18,1,18,17,2
  1370. db 33,34,17,50,17,2,17,66
  1371. db 1,2,1,19,5,3,2,17
  1372. db 2,17,50,17,34,19,6,3
  1373. db 6,19,1,2,65,19,6,3
  1374. db 17,3,5,19,5,35,18,17
  1375. db 3,6,3,5,19,18,3,6
  1376. db 5,19,5,19,18,17,3,21
  1377. db 3,21,2,1,35,21,19,17
  1378. db 2,1,2,3,6,3,6,5
  1379. db 3,1,18,1,35,2,17,50
  1380. db 1,3,5,6,35,1,2,1
  1381. db 2,1,2,17,2,17,2,17
  1382. db 2,51,16
  1383. voda1:
  1384. db 137,0,0,0,0,255,255,0
  1385. db 255,128,0,0,0,0,0,0
  1386. db 0,0,0,0,0,0,0,0
  1387. db 0,0,0,0,0,0,0,0
  1388. db 0,0,0,0,0,0,0,0
  1389. db 0,0,0,0,0,0,0,0
  1390. db 0,0,3,0,2,17,18,17
  1391. db 18,65,18,17,2,33,2,97
  1392. db 2,1,2,33,18,17,18,49
  1393. db 18,65,2,65,18,17,2,17
  1394. db 2,33,18,33,2,113,18,17
  1395. db 18,17,2,49,18,17,18,145
  1396. db 34,33,18,49,18,17,18,145
  1397. db 2,65,2,65,18,17,18,17
  1398. db 2,17,34,49,18,97,2,113
  1399. db 2,49,18,1,2,49,2,1
  1400. db 18,17,2,1,34,65,2,97
  1401. db 2,113,2,65,18,17,2,49
  1402. db 18,1,2,33,18,1,2,81
  1403. db 18,193,18,81,18,17,18,129
  1404. db 18,145,18,1,2,81,34,17
  1405. db 18,65,34,1,18,145,2,129
  1406. db 18,49,18,33,2,33,34,81
  1407. db 18,97,2,1,16
  1408. trava:
  1409. db 214,0,0,0,0,0,255,0
  1410. db 0,128,0,0,0,0,0,0
  1411. db 0,0,0,0,0,0,0,0
  1412. db 0,0,0,0,0,0,0,0
  1413. db 0,0,0,0,0,0,0,0
  1414. db 0,0,0,0,0,0,0,0
  1415. db 0,0,3,0,2,33,2,1
  1416. db 2,1,2,17,2,1,34,17
  1417. db 18,1,18,1,2,49,2,17
  1418. db 2,33,2,1,2,33,2,17
  1419. db 34,17,18,1,2,1,18,33
  1420. db 2,17,34,17,18,33,18,17
  1421. db 50,97,2,33,2,33,18,1
  1422. db 18,17,50,1,2,1,50,1
  1423. db 18,65,2,33,18,1,18,17
  1424. db 18,17,82,33,2,1,2,1
  1425. db 2,33,2,49,18,1,18,1
  1426. db 2,1,2,33,2,17,2,1
  1427. db 2,65,2,1,18,1,2,17
  1428. db 2,17,34,1,66,1,18,17
  1429. db 2,17,2,17,2,33,2,1
  1430. db 18,1,2,1,34,1,2,1
  1431. db 18,1,18,17,2,33,34,17
  1432. db 50,17,2,17,66,1,2,17
  1433. db 2,17,2,17,2,17,50,17
  1434. db 50,1,34,33,2,81,2,49
  1435. db 2,33,34,1,18,33,18,1
  1436. db 66,33,2,1,50,17,2,1
  1437. db 2,1,2,1,2,49,34,33
  1438. db 2,1,18,1,18,33,18,1
  1439. db 2,17,2,17,50,17,2,1
  1440. db 2,1,2,1,2,1,2,1
  1441. db 2,17,2,17,2,17,18,17
  1442. db 2,16
  1443. tan22:
  1444. db 116,0,0,0,0,128,0,255
  1445. db 192,192,192,64,128,255,128,128
  1446. db 128,0,255,0,0,128,0,0
  1447. db 255,255,0,0,0,0,0,0
  1448. db 0,0,0,0,0,0,0,0
  1449. db 0,0,0,0,0,0,0,0
  1450. db 0,0,8,0,112,51,8,224
  1451. db 0,19,144,8,96,19,144,8
  1452. db 64,8,0,19,144,8,32,8
  1453. db 0,8,0,19,32,8,32,24
  1454. db 2,20,18,8,39,19,39,8
  1455. db 18,20,82,55,19,55,82,20
  1456. db 18,7,6,23,19,23,6,7
  1457. db 18,20,82,6,23,51,23,6
  1458. db 146,23,83,23,82,20,18,23
  1459. db 19,22,19,23,18,20,82,23
  1460. db 19,22,19,23,82,20,18,23
  1461. db 83,23,18,20,82,23,83,23
  1462. db 146,39,51,39,82,20,18,151
  1463. db 18,20,66,8,151,8,50,8
  1464. db 48,21,87,21,8,224,224,240
  1465. tan21:
  1466. db 116,0,0,0,0,128,0,255
  1467. db 192,192,192,64,128,255,128,128
  1468. db 128,0,255,0,0,128,0,0
  1469. db 255,255,0,0,0,0,0,0
  1470. db 0,0,0,0,0,0,0,0
  1471. db 0,0,0,0,0,0,0,0
  1472. db 0,0,8,0,112,51,8,224
  1473. db 0,19,144,8,96,19,144,8
  1474. db 64,8,0,19,144,8,32,8
  1475. db 0,8,0,19,32,8,32,24
  1476. db 66,8,39,19,39,8,82,20
  1477. db 18,55,19,55,18,20,82,7
  1478. db 6,23,19,23,6,7,82,20
  1479. db 18,6,23,51,23,6,18,20
  1480. db 82,23,83,23,146,23,19,22
  1481. db 19,23,82,20,18,23,19,22
  1482. db 19,23,18,20,82,23,83,23
  1483. db 82,20,18,23,83,23,18,20
  1484. db 82,39,51,39,146,151,82,20
  1485. db 2,8,151,8,2,20,2,8
  1486. db 48,21,87,21,8,224,224,240
  1487. tan12:
  1488. db 116,0,0,0,0,128,0,255
  1489. db 192,192,192,64,128,255,128,128
  1490. db 128,0,255,0,0,128,0,0
  1491. db 0,0,0,0,0,0,0,0
  1492. db 0,0,0,0,0,0,0,0
  1493. db 0,0,0,0,0,0,0,0
  1494. db 0,0,7,0,112,51,7,224
  1495. db 0,19,144,7,96,19,144,7
  1496. db 64,7,0,19,144,7,32,7
  1497. db 0,7,0,19,32,7,0,55
  1498. db 2,20,18,7,33,19,33,7
  1499. db 18,20,82,49,19,49,82,20
  1500. db 18,1,6,17,19,17,6,1
  1501. db 18,20,82,6,17,51,17,6
  1502. db 146,17,83,17,82,20,18,17
  1503. db 19,22,19,17,18,20,82,17
  1504. db 19,22,19,17,82,20,18,17
  1505. db 83,17,18,20,82,17,83,17
  1506. db 146,33,51,33,82,20,18,145
  1507. db 18,20,66,7,145,7,50,7
  1508. db 48,21,81,21,7,224,224,240
  1509. tan11:
  1510. db 116,0,0,0,0,128,0,255
  1511. db 192,192,192,64,128,255,128,128
  1512. db 128,0,255,0,0,128,0,0
  1513. db 0,0,0,0,0,0,0,0
  1514. db 0,0,0,0,0,0,0,0
  1515. db 0,0,0,0,0,0,0,0
  1516. db 0,0,7,0,112,51,7,224
  1517. db 0,19,144,7,96,19,144,7
  1518. db 64,7,0,19,144,7,32,7
  1519. db 0,7,0,19,32,7,32,23
  1520. db 66,7,33,19,33,7,82,20
  1521. db 18,49,19,49,18,20,82,1
  1522. db 6,17,19,17,6,1,82,20
  1523. db 18,6,17,51,17,6,18,20
  1524. db 82,17,83,17,146,17,19,22
  1525. db 19,17,82,20,18,17,19,22
  1526. db 19,17,18,20,82,17,83,17
  1527. db 82,20,18,17,83,17,18,20
  1528. db 82,33,51,33,146,145,82,20
  1529. db 2,7,145,7,2,20,2,7
  1530. db 48,21,81,21,7,224,224,240
  1531. sten3:
  1532. db 104,0,0,0,0,128,128,128
  1533. db 192,192,192,0,0,0,0,0
  1534. db 0,0,0,0,0,0,0,0
  1535. db 0,0,0,0,0,0,0,0
  1536. db 0,0,0,0,0,0,0,0
  1537. db 0,0,0,0,0,0,0,0
  1538. db 0,0,3,0,226,66,65,2
  1539. db 81,2,65,2,81,2,81,2
  1540. db 65,2,81,2,81,2,65,2
  1541. db 1,226,66,33,2,81,2,81
  1542. db 2,65,2,81,2,81,2,65
  1543. db 2,81,2,81,2,17,226,66
  1544. db 1,2,81,2,81,2,65,2
  1545. db 81,2,81,2,65,2,81,2
  1546. db 81,2,49,226,66,65,2,97
  1547. db 2,65,2,65,2,97,2,65
  1548. db 2,65,2,97,2,65,226,82
  1549. db 33,2,81,2,81,2,65,2
  1550. db 81,2,81,2,65,2,81,2
  1551. db 81,2,17,16
  1552. sten1:
  1553. db 111,0,0,0,0,128,128,128
  1554. db 192,192,192,0,0,255,255,255
  1555. db 255,64,128,255,0,0,0,0
  1556. db 0,0,0,0,0,0,0,0
  1557. db 0,0,0,0,0,0,0,0
  1558. db 0,0,0,0,0,0,0,0
  1559. db 0,0,6,0,227,67,53,3
  1560. db 133,3,69,34,5,3,5,98
  1561. db 5,3,5,98,5,3,5,98
  1562. db 5,3,5,50,53,3,133,3
  1563. db 69,227,67,133,3,133,3,114
  1564. db 5,3,5,98,5,3,114,5
  1565. db 3,5,98,5,3,133,3,133
  1566. db 227,83,69,3,133,3,53,50
  1567. db 5,3,5,98,5,3,5,98
  1568. db 5,3,5,98,5,3,5,34
  1569. db 69,3,133,3,53,227,67,101
  1570. db 3,133,3,21,82,5,3,5
  1571. db 98,5,3,5,98,5,3,5
  1572. db 98,5,3,5,2,101,3,133
  1573. db 3,21,16
  1574. puly1:
  1575. db 48,0,0,0,0,0,255,255
  1576. db 128,0,255,0,0,255,64,128
  1577. db 255,0,0,0,0,0,0,0
  1578. db 0,0,0,0,0,0,0,0
  1579. db 0,0,0,0,0,0,0,0
  1580. db 0,0,0,0,0,0,0,0
  1581. db 0,0,5,0,224,224,224,224
  1582. db 224,224,224,224,96,49,224,17
  1583. db 20,17,192,17,4,18,4,17
  1584. db 176,1,4,50,4,1,176,17
  1585. db 4,18,4,17,192,17,20,17
  1586. db 224,49,224,224,224,224,224,224
  1587. db 224,224,224,240
  1588. pesok:
  1589. db 120,0,0,0,0,0,255,255
  1590. db 0,64,128,0,128,128,64,128
  1591. db 128,64,128,255,0,0,0,0
  1592. db 0,0,0,0,0,0,0,0
  1593. db 0,0,0,0,0,0,0,0
  1594. db 0,0,0,0,0,0,0,0
  1595. db 0,0,6,0,225,81,2,33
  1596. db 2,65,2,3,33,2,1,5
  1597. db 49,5,49,2,129,3,225,97
  1598. db 3,17,2,33,2,1,5,33
  1599. db 2,1,5,129,5,65,2,65
  1600. db 2,225,97,2,33,3,17,2
  1601. db 49,3,145,2,177,3,49,5
  1602. db 81,5,1,2,33,2,65,3
  1603. db 17,2,17,3,145,2,209,3
  1604. db 81,2,49,5,33,2,177,3
  1605. db 145,2,17,2,5,113,2,225
  1606. db 1,2,33,3,17,3,49,3
  1607. db 17,3,161,2,1,5,97,2
  1608. db 177,2,49,2,33,5,33,2
  1609. db 193,2,49,3,33,2,81,3
  1610. db 1,5,1,16
  1611. palma:
  1612. db 209,0,0,0,0,0,255,0
  1613. db 0,128,0,0,255,255,64,128
  1614. db 128,64,128,255,0,0,0,0
  1615. db 0,0,0,0,0,0,0,0
  1616. db 0,0,0,0,0,0,0,0
  1617. db 0,0,0,0,0,0,0,0
  1618. db 0,0,6,0,2,33,2,1
  1619. db 2,1,2,17,2,1,34,17
  1620. db 18,1,18,1,51,1,2,17
  1621. db 2,1,35,1,2,33,115,2
  1622. db 51,21,19,1,2,35,69,35
  1623. db 53,35,18,3,21,67,5,3
  1624. db 21,19,1,18,19,2,5,3
  1625. db 50,1,3,5,3,5,67,17
  1626. db 3,1,19,17,67,5,99,34
  1627. db 3,2,35,5,3,5,3,5
  1628. db 3,5,3,5,35,1,18,1
  1629. db 2,19,5,35,5,3,5,35
  1630. db 21,19,33,19,5,35,5,35
  1631. db 5,51,5,3,34,35,17,51
  1632. db 20,3,5,35,5,3,2,1
  1633. db 35,18,3,5,3,36,5,19
  1634. db 1,35,1,18,3,17,2,3
  1635. db 2,52,35,50,1,2,17,2
  1636. db 17,2,1,52,3,34,17,50
  1637. db 1,34,33,36,49,2,49,2
  1638. db 33,34,1,36,17,18,1,66
  1639. db 33,2,1,2,1,36,1,2
  1640. db 1,2,1,2,1,2,49,66
  1641. db 36,18,1,18,33,18,1,2
  1642. db 17,84,2,17,2,1,2,1
  1643. db 2,1,2,1,2,1,84,2
  1644. db 17,18,17,2,16
  1645. kamni:
  1646. db 210,0,0,0,0,0,255,0
  1647. db 0,128,0,64,128,255,64,128
  1648. db 128,0,0,0,0,0,0,0
  1649. db 0,0,0,0,0,0,0,0
  1650. db 0,0,0,0,0,0,0,0
  1651. db 0,0,0,0,0,0,0,0
  1652. db 0,0,5,0,2,33,2,1
  1653. db 2,35,1,2,1,34,17,18
  1654. db 1,18,1,2,17,51,1,2
  1655. db 33,2,1,2,33,2,1,67
  1656. db 4,3,2,1,2,1,18,33
  1657. db 2,17,2,83,4,17,18,17
  1658. db 50,17,131,2,33,18,1,18
  1659. db 17,83,20,3,18,1,18,65
  1660. db 2,67,4,19,4,3,18,17
  1661. db 82,99,4,35,2,49,18,1
  1662. db 18,1,2,1,2,17,35,4
  1663. db 2,1,2,65,2,1,18,1
  1664. db 2,17,2,17,34,1,66,1
  1665. db 18,17,2,17,2,17,2,33
  1666. db 2,1,18,1,2,1,2,19
  1667. db 1,2,1,18,1,18,19,2
  1668. db 33,18,35,4,3,18,17,2
  1669. db 1,67,2,1,2,99,1,2
  1670. db 17,2,35,4,3,34,35,4
  1671. db 3,4,3,1,2,17,83,1
  1672. db 67,20,19,4,3,2,17,51
  1673. db 4,115,4,35,2,1,83,4
  1674. db 67,34,33,2,35,1,3,4
  1675. db 19,1,18,1,2,17,2,17
  1676. db 50,17,2,1,2,1,2,1
  1677. db 2,1,2,1,2,17,2,17
  1678. db 2,17,18,17,2,16
  1679. drevo:
  1680. db 240,0,0,0,0,0,255,0
  1681. db 0,128,0,255,0,128,0,64
  1682. db 128,64,128,128,128,0,128,255
  1683. db 128,128,0,0,0,0,0,0
  1684. db 0,0,0,0,0,0,0,0
  1685. db 0,0,0,0,0,0,0,0
  1686. db 0,0,8,0,2,33,2,1
  1687. db 2,19,1,35,34,17,18,1
  1688. db 18,1,2,17,3,38,7,22
  1689. db 3,1,2,1,2,33,2,1
  1690. db 19,7,6,23,6,23,3,6
  1691. db 18,33,2,17,2,3,7,19
  1692. db 6,3,54,7,19,50,33,3
  1693. db 22,7,6,3,6,7,22,3
  1694. db 23,2,1,18,17,22,7,6
  1695. db 7,3,7,3,7,22,7,6
  1696. db 35,17,35,54,55,6,23,22
  1697. db 19,18,19,7,3,7,6,7
  1698. db 22,7,3,22,3,22,7,3
  1699. db 18,19,23,3,182,3,33,3
  1700. db 22,3,7,6,7,6,7,22
  1701. db 7,6,7,22,3,34,7,22
  1702. db 7,22,3,39,38,7,6,7
  1703. db 19,2,1,3,7,6,23,38
  1704. db 7,38,39,6,7,3,1,2
  1705. db 19,54,3,38,3,70,3,2
  1706. db 1,2,1,3,7,6,7,19
  1707. db 4,5,4,19,6,7,6,3
  1708. db 1,50,1,34,3,1,36,17
  1709. db 3,22,2,49,2,33,34,21
  1710. db 4,33,18,1,66,33,2,1
  1711. db 52,17,2,1,2,1,2,1
  1712. db 2,49,18,20,5,4,5,4
  1713. db 18,1,18,33,18,1,2,1
  1714. db 132,1,2,1,2,1,2,1
  1715. db 2,1,36,5,20,5,4,21
  1716. db 36,17,2,16
  1717. bum41:
  1718. db 141,0,0,0,0,128,255,255
  1719. db 0,255,255,0,0,255,128,0
  1720. db 255,0,0,0,0,0,0,0
  1721. db 0,0,0,0,0,0,0,0
  1722. db 0,0,0,0,0,0,0,0
  1723. db 0,0,0,0,0,0,0,0
  1724. db 0,0,5,0,80,21,50,21
  1725. db 16,5,96,21,130,69,32,50
  1726. db 33,4,1,66,0,21,16,5
  1727. db 34,1,2,17,18,1,66,53
  1728. db 34,17,2,17,18,1,18,4
  1729. db 18,37,50,33,2,33,2,17
  1730. db 50,21,2,4,18,65,50,1
  1731. db 50,5,50,33,2,49,2,17
  1732. db 50,21,2,81,18,33,2,17
  1733. db 130,113,2,17,130,33,18,1
  1734. db 194,65,2,33,66,4,2,5
  1735. db 65,2,97,34,1,18,5,18
  1736. db 1,34,1,18,1,2,17,18
  1737. db 1,34,21,2,4,17,34,49
  1738. db 82,37,18,1,18,49,34,4
  1739. db 50,37,50,1,18,49,66,53
  1740. db 0,66,1,114,37,64,18,17
  1741. db 2,4,50,69,80,5,82,53
  1742. db 64
  1743. bum31:
  1744. db 114,0,0,0,0,128,255,255
  1745. db 0,255,255,0,0,255,128,0
  1746. db 255,0,0,0,0,0,0,0
  1747. db 0,0,0,0,0,0,0,0
  1748. db 0,0,0,0,0,0,0,0
  1749. db 0,0,0,0,0,0,0,0
  1750. db 0,0,5,0,80,53,18,21
  1751. db 144,53,82,85,48,5,18,3
  1752. db 18,4,66,5,0,21,16,21
  1753. db 146,4,18,85,3,18,3,2
  1754. db 49,82,53,98,3,66,1,18
  1755. db 53,178,3,1,4,18,21,2
  1756. db 3,114,3,50,1,18,21,34
  1757. db 4,50,3,130,21,210,3,18
  1758. db 3,98,3,194,21,130,3,114
  1759. db 21,18,4,18,3,146,3,2
  1760. db 21,2,3,114,3,34,1,18
  1761. db 37,34,3,2,4,98,4,2
  1762. db 3,2,53,226,101,50,4,98
  1763. db 69,0,37,146,53,80,37,2
  1764. db 3,18,101,80,165,64
  1765. bum21:
  1766. db 134,0,0,0,0,128,255,255
  1767. db 0,255,255,0,0,255,128,0
  1768. db 255,0,0,0,0,0,0,0
  1769. db 0,0,0,0,0,0,0,0
  1770. db 0,0,0,0,0,0,0,0
  1771. db 0,0,0,0,0,0,0,0
  1772. db 0,0,5,0,80,117,144,69
  1773. db 50,101,48,37,34,4,50,21
  1774. db 0,21,16,37,130,4,2,133
  1775. db 18,4,49,66,101,66,19,2
  1776. db 3,18,1,18,69,18,4,18
  1777. db 3,2,3,18,19,1,4,2
  1778. db 69,34,35,2,83,1,18,53
  1779. db 2,4,2,3,18,3,2,3
  1780. db 2,3,2,3,18,4,53,34
  1781. db 99,2,19,34,53,34,3,2
  1782. db 19,2,51,18,4,2,53,2
  1783. db 4,1,51,2,3,18,19,34
  1784. db 53,2,4,18,3,2,83,2
  1785. db 4,18,69,66,19,2,3,34
  1786. db 1,2,101,18,4,98,4,2
  1787. db 133,82,4,34,165,18,4,66
  1788. db 101,0,85,50,101,80,213,80
  1789. db 165,64
  1790. bum11:
  1791. db 79,0,0,0,0,128,255,255
  1792. db 0,255,255,0,0,255,0,0
  1793. db 0,0,0,0,0,0,0,0
  1794. db 0,0,0,0,0,0,0,0
  1795. db 0,0,0,0,0,0,0,0
  1796. db 0,0,0,0,0,0,0,0
  1797. db 0,0,4,0,80,100,176,196
  1798. db 80,196,0,20,16,100,50,100
  1799. db 0,84,2,49,18,1,164,34
  1800. db 51,18,1,148,2,115,1,2
  1801. db 116,2,147,1,100,1,2,147
  1802. db 18,84,1,2,147,2,1,84
  1803. db 18,147,2,1,100,1,147,1
  1804. db 2,100,18,115,2,1,132,34
  1805. db 51,34,1,148,130,196,50,116
  1806. db 0,228,36,32,228,20,80,196
  1807. db 96,164,64
  1808. baza1:
  1809. db 192,0,0,0,0,0,255,0
  1810. db 0,128,0,255,0,128,255,128
  1811. db 128,255,0,0,255,128,0,255
  1812. db 255,0,128,0,255,0,0,255
  1813. db 0,255,255,0,0,0,0,0
  1814. db 0,0,0,0,0,0,0,0
  1815. db 0,0,11,0,2,33,2,1
  1816. db 2,1,2,17,2,1,34,17
  1817. db 18,1,18,1,2,49,2,17
  1818. db 2,33,2,1,2,17,232,9
  1819. db 4,17,2,8,201,8,3,9
  1820. db 4,2,1,8,41,150,8,19
  1821. db 9,2,1,57,6,101,7,6
  1822. db 8,3,10,3,9,2,8,41
  1823. db 6,5,84,7,6,8,35,9
  1824. db 2,8,41,6,5,84,7,6
  1825. db 8,35,9,2,8,41,6,5
  1826. db 84,7,6,8,3,21,9,1
  1827. db 8,41,6,5,84,7,6,8
  1828. db 3,21,9,2,8,41,6,5
  1829. db 84,7,6,8,35,9,2,8
  1830. db 41,6,5,103,6,8,3,10
  1831. db 3,9,1,8,57,134,8,35
  1832. db 9,1,8,201,8,3,10,3
  1833. db 9,2,232,35,9,2,9,131
  1834. db 10,19,10,3,9,4,3,9
  1835. db 1,2,25,19,22,131,9,4
  1836. db 9,33,9,35,22,131,25,1
  1837. db 18,1,233,9,2,1,2,1
  1838. db 2,1,2,17,2,17,2,17
  1839. db 18,17,2,16
  1840. ;-----------------------------------
  1841. ;-----here begin levels-------------
  1842. ;-----------------------------------
  1843. lev01:
  1844. db 171,0
  1845. db 225,225,33,150,7,2,1,7
  1846. db 41,192,17,150,18,1,57,144
  1847. db 1,16,17,182,1,57,112,33
  1848. db 16,17,38,225,65,96,17,6
  1849. db 1,6,1,7,5,80,1,7
  1850. db 117,1,96,17,38,1,18,80
  1851. db 1,69,24,21,1,96,17,38
  1852. db 1,112,1,34,40,37,1,96
  1853. db 17,38,128,1,19,224,17,38
  1854. db 1,112,1,0,3,96,1,96
  1855. db 17,38,1,224,32,1,96,17
  1856. db 38,1,224,32,65,0,49,38
  1857. db 129,0,145,6,7,6,1,32
  1858. db 17,86,48,1,148,70,1,32
  1859. db 17,86,48,1,148,22,1,22
  1860. db 1,32,17,6,1,54,4,3
  1861. db 16,1,116,16,70,1,32,17
  1862. db 70,35,16,1,20,17,36,32
  1863. db 70,1,8,7,8,17,70,66
  1864. db 1,100,112,1,40,17,70,2
  1865. db 7,34,1,116,96,1,40,225
  1866. db 225,33,16
  1867. lev02:
  1868. db 255,3
  1869. db 225,225,33,5,49,3,225,161
  1870. db 5,38,5,3,64,89,0,40
  1871. db 54,50,33,5,38,5,3,32
  1872. db 35,34,3,16,8,67,6,50
  1873. db 33,5,38,5,3,34,16,3
  1874. db 36,3,2,35,36,3,66,33
  1875. db 5,22,21,3,34,3,0,3
  1876. db 36,3,2,3,7,36,5,3
  1877. db 2,1,35,33,5,22,21,3
  1878. db 7,2,0,2,19,5,20,3
  1879. db 2,51,21,3,66,33,5,22
  1880. db 21,35,0,2,3,7,5,20
  1881. db 18,3,24,3,22,67,2,33
  1882. db 5,17,25,48,2,51,2,35
  1883. db 24,3,22,9,16,19,2,33
  1884. db 5,2,1,25,49,2,3,56
  1885. db 3,54,67,0,3,16,33,5
  1886. db 2,49,22,1,6,3,22,1
  1887. db 8,3,17,88,3,48,33,5
  1888. db 18,4,54,1,6,3,22,1
  1889. db 8,3,7,1,99,57,33,5
  1890. db 18,4,22,1,5,1,54,1
  1891. db 8,3,70,51,57,33,5,18
  1892. db 4,0,17,5,113,51,0,3