Subversion Repositories Kolibri OS

Rev

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

  1. ;---------------------------------------------------------------------
  2. processing_white_brick:
  3. ;;        DEBUGF  1, "processing_white_brick\n"
  4.         cmp     dl,ROUTE_UP
  5.         je      white_brick_route_up
  6.  
  7.         cmp     dl,ROUTE_DOWN
  8.         je      white_brick_route_down
  9.  
  10.         cmp     dl,ROUTE_LEFT
  11.         je      white_brick_route_left
  12.  
  13.         cmp     dl,ROUTE_RIGHT
  14.         je      white_brick_route_right
  15.  
  16.         ret
  17. ;---------------------------------------------------------------------
  18. white_brick_route_up:
  19. ;        DEBUGF  1, "white_brick route_up\n"
  20.         cmp     ebx,1   ; border of map?
  21.         je      action_stop
  22.  
  23. ;        DEBUGF  1, "white_brick up @@:\n"
  24.         mov     eax,[ecx-LEVEL_MAP_SIZE_X*4]
  25.         cmp     ah,OBJECT_WHITE_BRICK   ; new coordinates have white block?
  26.         je      action_stop
  27.  
  28. ;        DEBUGF  1, "white_brick good route up\n"
  29.         mov     si,0x0100+ROUTE_UP
  30.         mov     edi,ecx
  31.         sub     edi,LEVEL_MAP_SIZE_X*4
  32.         jmp     save_new_and_clear_old_position
  33. ;---------------------------------------------------------------------
  34. white_brick_route_down:
  35. ;        DEBUGF  1, "white_brick route_down\n"
  36.         cmp     ebx,LEVEL_MAP_SIZE_Y    ; border of map?
  37.         je      action_stop
  38.  
  39. ;        DEBUGF  1, "white_brick down @@:\n"
  40.         mov     eax,[ecx+LEVEL_MAP_SIZE_X*4]
  41.         cmp     ah,OBJECT_WHITE_BRICK   ; new coordinates have white block?
  42.         je      action_stop
  43.  
  44. ;        DEBUGF  1, "white_brick good route down\n"
  45.         mov     si,0x0100+ROUTE_DOWN
  46.         mov     edi,ecx
  47.         add     edi,LEVEL_MAP_SIZE_X*4
  48.         jmp     save_new_and_clear_old_position
  49. ;---------------------------------------------------------------------
  50. white_brick_route_left:
  51. ;        DEBUGF  1, "white_brick route_left\n"
  52.         cmp     eax,1   ; border of map?
  53.         je      action_stop
  54.  
  55. ;        DEBUGF  1, "white_brick left @@:\n"
  56.         mov     eax,[ecx-4]
  57.         cmp     ah,OBJECT_WHITE_BRICK   ; new coordinates have white block?
  58.         je      action_stop
  59.  
  60. ;        DEBUGF  1, "white_brick good route left\n"
  61.         mov     si,0x0100+ROUTE_LEFT
  62.         mov     edi,ecx
  63.         sub     edi,4
  64.         jmp     save_new_and_clear_old_position
  65. ;---------------------------------------------------------------------
  66. white_brick_route_right:
  67. ;        DEBUGF  1, "white_brick route_right\n"
  68.         cmp     eax,LEVEL_MAP_SIZE_X    ; border of map?
  69.         je      action_stop
  70.  
  71. ;        DEBUGF  1, "white_brick righ @@:\n"
  72.         mov     eax,[ecx+4]
  73.         cmp     ah,OBJECT_WHITE_BRICK   ; new coordinates have white block?
  74.         je      action_stop
  75.  
  76. ;        DEBUGF  1, "white_brick good route righ\n"
  77.         mov     si,0x0100+ROUTE_RIGHT
  78.         mov     edi,ecx
  79.         add     edi,4
  80.         jmp     save_new_and_clear_old_position
  81. ;---------------------------------------------------------------------
  82.