ASxxxx Assembler V02.00 + NoICE + SDCC mods  (Zilog Z80 / Hitachi HD64180), page 1.
Hexadecimal [16-Bits]



                              1 .include "entity_templates.h.s"
                              1 .globl player1
                              2 .globl player2
                              3 .globl zombie
                              4 .globl arquero
                              5 .globl arcoiris
                              6 .globl shot1
                              7 .globl vida
                              8 .globl shot_arquero
                              9 .globl ghostX
                             10 .globl ghostY
                             11 .globl monster
                             12 .globl semiseguidor
                             13 .globl cangrejo
                             14 .globl topo
                             15 .globl muriendo_tmp_cmps
                             16 .globl zBoss
ASxxxx Assembler V02.00 + NoICE + SDCC mods  (Zilog Z80 / Hitachi HD64180), page 2.
Hexadecimal [16-Bits]



                              2 .include "entity.h.s"
                              1 .globl entity_create
                              2 .globl entity_copy
                              3 .globl entity_doForAll
                              4 .globl entity_doForAll_matching
                              5 .globl entity_doForAll_pairs_matching
                              6 .globl entity_update
                              7 .globl entity_vector
                              8 .globl entity_set4destruction
                              9 .globl entity_set4creation
                             10 .globl entity_register
                             11 .globl num_entities
                             12 .globl getEntity2
                             13 
                             14 
                             15 ; Constantes
                     0000    16 e_tipo            = 0
                     0001    17 e_cmps            = 1
                     0002    18 e_x               = 2
                     0003    19 e_y               = 3
                     0004    20 e_vx              = 4
                     0005    21 e_vy              = 5
                     0006    22 e_w               = 6
                     0007    23 e_h               = 7
                     0008    24 e_spriteL         = 8
                     0009    25 e_spriteH         = 9
                     000A    26 e_iaL             = 10
                     000B    27 e_iaH             = 11
                     000C    28 e_animL           = 12
                     000D    29 e_animH           = 13
                     000E    30 e_anim_st         = 14
                     000F    31 e_animCounter     = 15
                     0010    32 e_collidesAgainst = 16
                     0011    33 e_last_dir        = 17
                     0012    34 e_last_dirY       = 18
                     0013    35 e_player_shot     = 19
                     0014    36 e_actualizaMove   = 20
                     0015    37 e_contMove        = 21
                     0016    38 e_aim_X           = 22
                     0017    39 e_aim_Y           = 23
                     0018    40 e_hp              = 24
                     0019    41 e_perteneceL      = 25
                     001A    42 e_perteneceH      = 26
                     001B    43 e_tablaAnimL      = 27
                     001C    44 e_tablaAnimH      = 28
                     001D    45 e_anim_especial   = 29
                     001E    46 e_invencibilidad  = 30
                     001F    47 e_atacando        = 31
                             48 
                             49 
                             50 ;; Tipos
                     0000    51 e_type_invalid  = 0x00 
                     0001    52 e_type_player   = 0x01
                     0002    53 e_type_zombie   = 0x02  ;; realmente no es para el zombie, es para todos los enemigos
                     0004    54 e_type_shot     = 0x04
ASxxxx Assembler V02.00 + NoICE + SDCC mods  (Zilog Z80 / Hitachi HD64180), page 3.
Hexadecimal [16-Bits]



                     0008    55 e_type_arcoiris = 0x08
                     0010    56 e_type_vida     = 0x10
                     0080    57 e_type_dead     = 0x80
                     007F    58 e_type_default  = 0x7F
                             59 
                             60 ;; Components
                     0001    61 e_cmp_render   = 0x01
                     0002    62 e_cmp_movable  = 0x02
                     0004    63 e_cmp_input    = 0x04
                     0008    64 e_cmp_ia       = 0x08
                     0010    65 e_cmp_animated = 0x10
                     0020    66 e_cmp_collider = 0x20
                     0040    67 e_cmp_vidaextra = 0x40
                             68 
                     0010    69 k_max_num_entities = 16
                     0020    70 k_size_entity      = 32
                             71 
                             72 
                             73 
                             74 ;; Define an entity 
                             75 .macro DefineEntity _name, _tipo, _cmps, _x, _y, _vx, _vy, _w, _h, _sprite, _ia, _anim, _anim_st,_animCounter, _collides, _lastdir, _lastdirY , _playerShot, _actualizaMove, _contMove, _aimX, _aimY, _hp, _pertenece, _tablaAnim, _animEspecial, _invencible, _atacando
                             76    _name:
                             77       .db _tipo      ;; (Invalid 00, Player 01, Enemigo 02, Dead 80, Default 7F)
                             78       .db _cmps      ;; ()
                             79       .db _x,  _y    ;; x, y
                             80       .db _vx, _vy   ;; Vx, Vy
                             81       .db _w, _h     ;; Width, Height
                             82       .dw _sprite    ;; sprite (puntero al sprite)
                             83       .dw _ia        ;; IA     (puntero a funcion)
                             84       .dw _anim      ;; puntero a la animacion
                             85       .db _anim_st
                             86       .db _animCounter  ;; contador de animacion
                             87       .db _collides  ;; Collides Against
                             88       .db _lastdir, _lastdirY   ;; Ultima direccion a la que apunta la entidad (solo para ver hacia donde dispara el player)
                             89       .db _playerShot ;; 1 si la entidad ya ha disparado, 0 si no
                             90       .db _actualizaMove
                             91       .db _contMove
                             92       .db _aimX, _aimY
                             93       .db _hp
                             94       .dw _pertenece
                             95       .dw _tablaAnim    ;; puntero a la tabla que le corresponde de animaciones
                             96       .db _animEspecial ;; indica si es normal (0) o especial (1)
                             97       .db _invencible
                             98       .db _atacando
                             99 .endm
                            100 
                            101 ;; Define an entity with default values
                            102 .macro DefineEntityDefault _name, _suf
                            103                         ;;  Tipo  cmps  x     y      vx   vy   width height  sprite   ia     anim  status counter  collides  last_dir last_dir  player_shot actualizaMove contMove aimX, aimY    HP   pertenece tablaAnim especial invencibile atacando
                            104    DefineEntity _name'_suf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000, 0x00, 0x00,    0x00,    0x00,    0x00,       0x00,       0x00,       0x00,     0x00, 0x00,  0x00,  0x0000,  0x0000,   0x00,        0xDE,     0xAD;;
                            105 .endm
                            106 
                            107 ;; Define N default entities (changing the names)
                            108 .macro DefineNEntities _name, _n
                            109    _c = 0
ASxxxx Assembler V02.00 + NoICE + SDCC mods  (Zilog Z80 / Hitachi HD64180), page 4.
Hexadecimal [16-Bits]



                            110    .rept _n
                            111       DefineEntityDefault _name, \_c
                            112       _c = _c + 1 
                            113    .endm
                            114 .endm
ASxxxx Assembler V02.00 + NoICE + SDCC mods  (Zilog Z80 / Hitachi HD64180), page 5.
Hexadecimal [16-Bits]



                              3 .include "animations.h.s"
                              1 .globl player1_wait_down
                              2 .globl player2_wait_down
                              3 .globl zombie_walk_down
                              4 .globl pato_walk_down
                              5 .globl topo_walk_down
                              6 .globl cangrejo_walk_down
                              7 .globl fantasma_wait_down
                              8 .globl canion2_walk_down
                              9 .globl shot_muere
                             10 .globl vida_objeto
                             11 .globl arcoiris_objeto
                             12 .globl boss_walk
                             13 
                             14 .globl animations_zombie_array
                             15 .globl animations_player1_array
                             16 .globl animations_player2_array
                             17 .globl animations_getAnimHL
                             18 .globl animations_shot_array
                             19 .globl animations_pato_array
                             20 .globl animations_topo_array
                             21 .globl animations_canion2_array
                             22 .globl animations_cangrejo_array
                             23 .globl animations_fantasma_array
                             24 .globl animations_vida_array
                             25 .globl animations_arcoiris_array
                             26 .globl animations_boss_array
ASxxxx Assembler V02.00 + NoICE + SDCC mods  (Zilog Z80 / Hitachi HD64180), page 6.
Hexadecimal [16-Bits]



                              4 .include "sys/ia.h.s"
                              1 .globl ia_update
                              2 .globl ia_update_one
                              3 .globl ia_mover_drcha_izq
                              4 .globl ia_mover_arriba_abajo
                              5 .globl ia_seguimiento_player
                              6 .globl ia_patron
                              7 .globl cambia_direccion_patron
                              8 .globl ia_variable_tiempo
                              9 .globl ia_arquero
                             10 .globl ia_cangrejo
                             11 .globl ia_topo
                             12 .globl ia_update_cont_shot
ASxxxx Assembler V02.00 + NoICE + SDCC mods  (Zilog Z80 / Hitachi HD64180), page 7.
Hexadecimal [16-Bits]



                              5 
                              6 .globl _spr_player1_00
                              7 .globl _spr_player2_00
                              8 .globl _spr_zombie_00
                              9 .globl _spr_arcoiris_0
                             10 .globl _spr_shotArcoiris_4
                             11 .globl _spr_shotArcoiris_2
                             12 .globl _spr_vida_0
                             13 .globl _spr_pato_00
                             14 .globl _spr_cangrejo_00
                             15 .globl _spr_topo_0
                             16 .globl _spr_canion2_0
                             17 .globl _spr_fantasma_00
                             18 .globl _spr_boss_0
                             19 
                             20 
                     0037    21 player_tmp_cmps   = e_cmp_render | e_cmp_movable | e_cmp_input | e_cmp_animated | e_cmp_collider
                     003B    22 zombie_tmp_cmps   = e_cmp_render | e_cmp_ia | e_cmp_movable | e_cmp_collider | e_cmp_animated
                     007B    23 boss_tmp_cmps   = e_cmp_render | e_cmp_ia | e_cmp_movable | e_cmp_collider | e_cmp_animated | e_cmp_vidaextra
                     002B    24 shot_tmp_cmps     = e_cmp_render | e_cmp_movable | e_cmp_collider | e_cmp_ia
                     0031    25 arcoiris_tmp_cmps = e_cmp_render | e_cmp_collider | e_cmp_animated
                     0031    26 vida_tmp_cmps     = e_cmp_render | e_cmp_collider | e_cmp_animated
                     0023    27 shotArc_tmp_cmps  = e_cmp_render | e_cmp_movable | e_cmp_collider ;; shot del arquero
                             28 
                             29 ;; OJO ES UNA PRUEBA PORQUE LAS ANIMACIONES CAMBIAN EL SPRITE (es solo para quitar la animacion)
                     003B    30 escudero_tmp_cmps   = e_cmp_render | e_cmp_ia | e_cmp_movable | e_cmp_collider | e_cmp_animated
                     0011    31 muriendo_tmp_cmps = e_cmp_render | e_cmp_animated
                             32 
                             33 
                     0018    34 player_tmp_collider   = e_type_arcoiris | e_type_vida  ;; el player colisiona contra arcoiris y vida
                     0001    35 zombie_tmp_collider   = e_type_player                  ;; el enemigo colisiona contra el player (al reves no)
                     0002    36 shot_tmp_collider     = e_type_zombie                  ;; la bala de momento no colisiona
                     0000    37 arcoiris_tmp_collider = #0x00
                     0000    38 vida_tmp_collider     = #0x00
                     0001    39 shotArq_tmp_collider  = e_type_player
                             40 
                             41 ;; Ojo   ->  las posiciones iniciales de Y deben ser multiplos de 4
   93F2                      42 player_tmp:
                             43     ;;                       Tipo               cmps            x       y     vx     vy     width  height  sprite            ia                     anim              anim_st anim_count    collides           last_dir last_dirY  playerShot actualizaMove contMove aimX    aimY    HP    ptr      tbl_anim                    anim_espacial   invencible atacando
   93F2                      44     DefineEntity player1, e_type_player,  player_tmp_cmps,      #0x27, #0x28, #0x00, #0x00, #0x06, #0x1C, #_spr_player1_00, #0x0000,                #player1_wait_down, #0x00, #0x0C,  player_tmp_collider,    #0x00,    #0x04,   #0x00,      #0x01,      #0x00,     #0x00, #0x00,  #0x03, #0x0000, #animations_player1_array,  #0x00,           #0x00,     #0x00
   0000                       1    player1:
   93F2 01                    2       .db e_type_player      ;; (Invalid 00, Player 01, Enemigo 02, Dead 80, Default 7F)
   93F3 37                    3       .db player_tmp_cmps      ;; ()
   93F4 27 28                 4       .db #0x27,  #0x28    ;; x, y
   93F6 00 00                 5       .db #0x00, #0x00   ;; Vx, Vy
   93F8 06 1C                 6       .db #0x06, #0x1C     ;; Width, Height
   93FA 02 54                 7       .dw #_spr_player1_00    ;; sprite (puntero al sprite)
   93FC 00 00                 8       .dw #0x0000        ;; IA     (puntero a funcion)
   93FE BC 8D                 9       .dw #player1_wait_down      ;; puntero a la animacion
   9400 00                   10       .db #0x00
   9401 0C                   11       .db #0x0C  ;; contador de animacion
   9402 18                   12       .db player_tmp_collider  ;; Collides Against
   9403 00 04                13       .db #0x00, #0x04   ;; Ultima direccion a la que apunta la entidad (solo para ver hacia donde dispara el player)
   9405 00                   14       .db #0x00 ;; 1 si la entidad ya ha disparado, 0 si no
   9406 01                   15       .db #0x01
ASxxxx Assembler V02.00 + NoICE + SDCC mods  (Zilog Z80 / Hitachi HD64180), page 8.
Hexadecimal [16-Bits]



   9407 00                   16       .db #0x00
   9408 00 00                17       .db #0x00, #0x00
   940A 03                   18       .db #0x03
   940B 00 00                19       .dw #0x0000
   940D D2 8C                20       .dw #animations_player1_array    ;; puntero a la tabla que le corresponde de animaciones
   940F 00                   21       .db #0x00 ;; indica si es normal (0) o especial (1)
   9410 00                   22       .db #0x00
   9411 00                   23       .db #0x00
                             45 
   9412                      46 player2_tmp:
   9412                      47     DefineEntity player2, e_type_player,  player_tmp_cmps,      #0x27, #0x40, #0x00, #0x00, #0x06, #0x1C, #_spr_player2_00, #0x0000,                #player2_wait_down, #0x00, #0x0C,  player_tmp_collider,    #0x00,    #0x04,   #0x00,      #0x01,      #0x00,     #0x00, #0x00,  #0x03, #0x0000, #animations_player2_array,  #0x00,           #0x00,     #0x00
   0020                       1    player2:
   9412 01                    2       .db e_type_player      ;; (Invalid 00, Player 01, Enemigo 02, Dead 80, Default 7F)
   9413 37                    3       .db player_tmp_cmps      ;; ()
   9414 27 40                 4       .db #0x27,  #0x40    ;; x, y
   9416 00 00                 5       .db #0x00, #0x00   ;; Vx, Vy
   9418 06 1C                 6       .db #0x06, #0x1C     ;; Width, Height
   941A F2 42                 7       .dw #_spr_player2_00    ;; sprite (puntero al sprite)
   941C 00 00                 8       .dw #0x0000        ;; IA     (puntero a funcion)
   941E 44 8E                 9       .dw #player2_wait_down      ;; puntero a la animacion
   9420 00                   10       .db #0x00
   9421 0C                   11       .db #0x0C  ;; contador de animacion
   9422 18                   12       .db player_tmp_collider  ;; Collides Against
   9423 00 04                13       .db #0x00, #0x04   ;; Ultima direccion a la que apunta la entidad (solo para ver hacia donde dispara el player)
   9425 00                   14       .db #0x00 ;; 1 si la entidad ya ha disparado, 0 si no
   9426 01                   15       .db #0x01
   9427 00                   16       .db #0x00
   9428 00 00                17       .db #0x00, #0x00
   942A 03                   18       .db #0x03
   942B 00 00                19       .dw #0x0000
   942D EE 8C                20       .dw #animations_player2_array    ;; puntero a la tabla que le corresponde de animaciones
   942F 00                   21       .db #0x00 ;; indica si es normal (0) o especial (1)
   9430 00                   22       .db #0x00
   9431 00                   23       .db #0x00
                             48 
                             49 
   9432                      50 zombie_tmp:
   9432                      51     DefineEntity zombie, e_type_zombie,    zombie_tmp_cmps,     #0x39, #0x20, #0x00, #0x00, #0x06, #0x1C, #_spr_fantasma_00,  #ia_seguimiento_player, #fantasma_wait_down, #0x00, #0x0C,  zombie_tmp_collider, #0x00,    #0x00,   #0x00,      #0x06,      #0x00,     #0x00,  #0x00,  #0x01, #0x0000, #animations_fantasma_array,#0x00,           #0x00,     #0x00
   0040                       1    zombie:
   9432 02                    2       .db e_type_zombie      ;; (Invalid 00, Player 01, Enemigo 02, Dead 80, Default 7F)
   9433 3B                    3       .db zombie_tmp_cmps      ;; ()
   9434 39 20                 4       .db #0x39,  #0x20    ;; x, y
   9436 00 00                 5       .db #0x00, #0x00   ;; Vx, Vy
   9438 06 1C                 6       .db #0x06, #0x1C     ;; Width, Height
   943A 92 30                 7       .dw #_spr_fantasma_00    ;; sprite (puntero al sprite)
   943C AF A6                 8       .dw #ia_seguimiento_player        ;; IA     (puntero a funcion)
   943E A4 8F                 9       .dw #fantasma_wait_down      ;; puntero a la animacion
   9440 00                   10       .db #0x00
   9441 0C                   11       .db #0x0C  ;; contador de animacion
   9442 01                   12       .db zombie_tmp_collider  ;; Collides Against
   9443 00 00                13       .db #0x00, #0x00   ;; Ultima direccion a la que apunta la entidad (solo para ver hacia donde dispara el player)
   9445 00                   14       .db #0x00 ;; 1 si la entidad ya ha disparado, 0 si no
   9446 06                   15       .db #0x06
   9447 00                   16       .db #0x00
   9448 00 00                17       .db #0x00, #0x00
ASxxxx Assembler V02.00 + NoICE + SDCC mods  (Zilog Z80 / Hitachi HD64180), page 9.
Hexadecimal [16-Bits]



   944A 01                   18       .db #0x01
   944B 00 00                19       .dw #0x0000
   944D 0A 8D                20       .dw #animations_fantasma_array    ;; puntero a la tabla que le corresponde de animaciones
   944F 00                   21       .db #0x00 ;; indica si es normal (0) o especial (1)
   9450 00                   22       .db #0x00
   9451 00                   23       .db #0x00
                             52 
   9452                      53 zombieBoss_tmp:
   9452                      54     DefineEntity zBoss, e_type_zombie,    boss_tmp_cmps,     #0x39, #0x20, #0x00, #0x00, #0x08, #0x24, #_spr_boss_0,          #ia_seguimiento_player, #boss_walk, #0x00, #0x0C,          zombie_tmp_collider, #0x00,    #0x00,   #0x00,      #0x0A,      #0x00,     #0x00,  #0x00,  #0x05, #0x0000, ##animations_boss_array , #0x00,           #0x00,     #0x00
   0060                       1    zBoss:
   9452 02                    2       .db e_type_zombie      ;; (Invalid 00, Player 01, Enemigo 02, Dead 80, Default 7F)
   9453 7B                    3       .db boss_tmp_cmps      ;; ()
   9454 39 20                 4       .db #0x39,  #0x20    ;; x, y
   9456 00 00                 5       .db #0x00, #0x00   ;; Vx, Vy
   9458 08 24                 6       .db #0x08, #0x24     ;; Width, Height
   945A D0 12                 7       .dw #_spr_boss_0    ;; sprite (puntero al sprite)
   945C AF A6                 8       .dw #ia_seguimiento_player        ;; IA     (puntero a funcion)
   945E AA 8D                 9       .dw #boss_walk      ;; puntero a la animacion
   9460 00                   10       .db #0x00
   9461 0C                   11       .db #0x0C  ;; contador de animacion
   9462 01                   12       .db zombie_tmp_collider  ;; Collides Against
   9463 00 00                13       .db #0x00, #0x00   ;; Ultima direccion a la que apunta la entidad (solo para ver hacia donde dispara el player)
   9465 00                   14       .db #0x00 ;; 1 si la entidad ya ha disparado, 0 si no
   9466 0A                   15       .db #0x0A
   9467 00                   16       .db #0x00
   9468 00 00                17       .db #0x00, #0x00
   946A 05                   18       .db #0x05
   946B 00 00                19       .dw #0x0000
   946D 1C 8D                20       .dw ##animations_boss_array    ;; puntero a la tabla que le corresponde de animaciones
   946F 00                   21       .db #0x00 ;; indica si es normal (0) o especial (1)
   9470 00                   22       .db #0x00
   9471 00                   23       .db #0x00
                             55 
   9472                      56 arquero_tmp:
   9472                      57     DefineEntity arquero, e_type_zombie,    zombie_tmp_cmps,    #0x39, #0x20, #0x00, #0x04, #0x05, #0x1A, #_spr_canion2_0,  #ia_arquero,          #canion2_walk_down,  #0x00, #0x0C,  zombie_tmp_collider,    #0x00,    #0x00,   #0x00,      #0x03,      #0x00,     #0x00,  #0x00,  #0x01, #0x0000, #animations_canion2_array,  #0x00,           #0x00,     #0x00
   0080                       1    arquero:
   9472 02                    2       .db e_type_zombie      ;; (Invalid 00, Player 01, Enemigo 02, Dead 80, Default 7F)
   9473 3B                    3       .db zombie_tmp_cmps      ;; ()
   9474 39 20                 4       .db #0x39,  #0x20    ;; x, y
   9476 00 04                 5       .db #0x00, #0x04   ;; Vx, Vy
   9478 05 1A                 6       .db #0x05, #0x1A     ;; Width, Height
   947A E8 23                 7       .dw #_spr_canion2_0    ;; sprite (puntero al sprite)
   947C 60 A6                 8       .dw #ia_arquero        ;; IA     (puntero a funcion)
   947E 5A 8F                 9       .dw #canion2_walk_down      ;; puntero a la animacion
   9480 00                   10       .db #0x00
   9481 0C                   11       .db #0x0C  ;; contador de animacion
   9482 01                   12       .db zombie_tmp_collider  ;; Collides Against
   9483 00 00                13       .db #0x00, #0x00   ;; Ultima direccion a la que apunta la entidad (solo para ver hacia donde dispara el player)
   9485 00                   14       .db #0x00 ;; 1 si la entidad ya ha disparado, 0 si no
   9486 03                   15       .db #0x03
   9487 00                   16       .db #0x00
   9488 00 00                17       .db #0x00, #0x00
   948A 01                   18       .db #0x01
   948B 00 00                19       .dw #0x0000
   948D 86 8D                20       .dw #animations_canion2_array    ;; puntero a la tabla que le corresponde de animaciones
ASxxxx Assembler V02.00 + NoICE + SDCC mods  (Zilog Z80 / Hitachi HD64180), page 10.
Hexadecimal [16-Bits]



   948F 00                   21       .db #0x00 ;; indica si es normal (0) o especial (1)
   9490 00                   22       .db #0x00
   9491 00                   23       .db #0x00
                             58 
   9492                      59 ghostX_tmp: ;; se mueve solo en eje X
   9492                      60     DefineEntity ghostX, e_type_zombie,    zombie_tmp_cmps,     #0x39, #0x20, #0xFF, #0x00, #0x06, #0x1C, #_spr_zombie_00,  #ia_mover_drcha_izq, #zombie_walk_down,    #0x00, #0x0C,  zombie_tmp_collider,    #0x00,    #0x00,   #0x00,      #0x02,      #0x00,     #0x00,  #0x00,  #0x01, #0x0000, #animations_zombie_array,   #0x00,           #0x00,     #0x00
   00A0                       1    ghostX:
   9492 02                    2       .db e_type_zombie      ;; (Invalid 00, Player 01, Enemigo 02, Dead 80, Default 7F)
   9493 3B                    3       .db zombie_tmp_cmps      ;; ()
   9494 39 20                 4       .db #0x39,  #0x20    ;; x, y
   9496 FF 00                 5       .db #0xFF, #0x00   ;; Vx, Vy
   9498 06 1C                 6       .db #0x06, #0x1C     ;; Width, Height
   949A C2 39                 7       .dw #_spr_zombie_00    ;; sprite (puntero al sprite)
   949C AB A5                 8       .dw #ia_mover_drcha_izq        ;; IA     (puntero a funcion)
   949E CC 8E                 9       .dw #zombie_walk_down      ;; puntero a la animacion
   94A0 00                   10       .db #0x00
   94A1 0C                   11       .db #0x0C  ;; contador de animacion
   94A2 01                   12       .db zombie_tmp_collider  ;; Collides Against
   94A3 00 00                13       .db #0x00, #0x00   ;; Ultima direccion a la que apunta la entidad (solo para ver hacia donde dispara el player)
   94A5 00                   14       .db #0x00 ;; 1 si la entidad ya ha disparado, 0 si no
   94A6 02                   15       .db #0x02
   94A7 00                   16       .db #0x00
   94A8 00 00                17       .db #0x00, #0x00
   94AA 01                   18       .db #0x01
   94AB 00 00                19       .dw #0x0000
   94AD 38 8D                20       .dw #animations_zombie_array    ;; puntero a la tabla que le corresponde de animaciones
   94AF 00                   21       .db #0x00 ;; indica si es normal (0) o especial (1)
   94B0 00                   22       .db #0x00
   94B1 00                   23       .db #0x00
                             61 
   94B2                      62 ghostY_tmp: ;; se mueve solo en eje Y
   94B2                      63     DefineEntity ghostY, e_type_zombie,    zombie_tmp_cmps,     #0x39, #0x20, #0xFF, #0x00, #0x06, #0x1C, #_spr_zombie_00,  #ia_mover_arriba_abajo, #zombie_walk_down, #0x00, #0x0C,  zombie_tmp_collider,    #0x00,    #0x00,   #0x00,      #0x02,      #0x00,     #0x00,  #0x00,  #0x01, #0x0000, #animations_zombie_array,   #0x00,           #0x00,     #0x00
   00C0                       1    ghostY:
   94B2 02                    2       .db e_type_zombie      ;; (Invalid 00, Player 01, Enemigo 02, Dead 80, Default 7F)
   94B3 3B                    3       .db zombie_tmp_cmps      ;; ()
   94B4 39 20                 4       .db #0x39,  #0x20    ;; x, y
   94B6 FF 00                 5       .db #0xFF, #0x00   ;; Vx, Vy
   94B8 06 1C                 6       .db #0x06, #0x1C     ;; Width, Height
   94BA C2 39                 7       .dw #_spr_zombie_00    ;; sprite (puntero al sprite)
   94BC EC A5                 8       .dw #ia_mover_arriba_abajo        ;; IA     (puntero a funcion)
   94BE CC 8E                 9       .dw #zombie_walk_down      ;; puntero a la animacion
   94C0 00                   10       .db #0x00
   94C1 0C                   11       .db #0x0C  ;; contador de animacion
   94C2 01                   12       .db zombie_tmp_collider  ;; Collides Against
   94C3 00 00                13       .db #0x00, #0x00   ;; Ultima direccion a la que apunta la entidad (solo para ver hacia donde dispara el player)
   94C5 00                   14       .db #0x00 ;; 1 si la entidad ya ha disparado, 0 si no
   94C6 02                   15       .db #0x02
   94C7 00                   16       .db #0x00
   94C8 00 00                17       .db #0x00, #0x00
   94CA 01                   18       .db #0x01
   94CB 00 00                19       .dw #0x0000
   94CD 38 8D                20       .dw #animations_zombie_array    ;; puntero a la tabla que le corresponde de animaciones
   94CF 00                   21       .db #0x00 ;; indica si es normal (0) o especial (1)
   94D0 00                   22       .db #0x00
   94D1 00                   23       .db #0x00
ASxxxx Assembler V02.00 + NoICE + SDCC mods  (Zilog Z80 / Hitachi HD64180), page 11.
Hexadecimal [16-Bits]



                             64 
   94D2                      65 monster_tmp: ;; este es el del patron aleatorio
   94D2                      66     DefineEntity monster, e_type_zombie,    zombie_tmp_cmps,   #0x12, #0x40, #0x00, #0x00, #0x06, #0x18, #_spr_pato_00,  #ia_patron,          #pato_walk_down,         #0x00, #0x0C,  zombie_tmp_collider,    #0x00,    #0x00,   #0x00,      #0x03,      #0x00,     #0x00,  #0x00,  #0x01, #0x0000, #animations_pato_array,     #0x00,           #0x00,     #0x00
   00E0                       1    monster:
   94D2 02                    2       .db e_type_zombie      ;; (Invalid 00, Player 01, Enemigo 02, Dead 80, Default 7F)
   94D3 3B                    3       .db zombie_tmp_cmps      ;; ()
   94D4 12 40                 4       .db #0x12,  #0x40    ;; x, y
   94D6 00 00                 5       .db #0x00, #0x00   ;; Vx, Vy
   94D8 06 18                 6       .db #0x06, #0x18     ;; Width, Height
   94DA 70 1B                 7       .dw #_spr_pato_00    ;; sprite (puntero al sprite)
   94DC 08 A7                 8       .dw #ia_patron        ;; IA     (puntero a funcion)
   94DE 08 8F                 9       .dw #pato_walk_down      ;; puntero a la animacion
   94E0 00                   10       .db #0x00
   94E1 0C                   11       .db #0x0C  ;; contador de animacion
   94E2 01                   12       .db zombie_tmp_collider  ;; Collides Against
   94E3 00 00                13       .db #0x00, #0x00   ;; Ultima direccion a la que apunta la entidad (solo para ver hacia donde dispara el player)
   94E5 00                   14       .db #0x00 ;; 1 si la entidad ya ha disparado, 0 si no
   94E6 03                   15       .db #0x03
   94E7 00                   16       .db #0x00
   94E8 00 00                17       .db #0x00, #0x00
   94EA 01                   18       .db #0x01
   94EB 00 00                19       .dw #0x0000
   94ED 44 8D                20       .dw #animations_pato_array    ;; puntero a la tabla que le corresponde de animaciones
   94EF 00                   21       .db #0x00 ;; indica si es normal (0) o especial (1)
   94F0 00                   22       .db #0x00
   94F1 00                   23       .db #0x00
                             67 
                             68 ;;                          Tipo               cmps            x       y     vx     vy     width  height  sprite            ia                     anim              anim_st anim_count    collides           last_dir last_dirY  playerShot actualizaMove contMove aimX    aimY    HP    ptr      tbl_anim                    anim_espacial   invencible 
                             69 
   94F2                      70 semiseguidor_tmp: ;; este es el que te sigue de vez en cuando
   94F2                      71     DefineEntity semiseguidor, e_type_zombie, zombie_tmp_cmps, #0x12, #0x40, #0x00, #0x00, #0x06, #0x18, #_spr_pato_00,  #ia_variable_tiempo, #pato_walk_down,     #0x00, #0x0C,  zombie_tmp_collider,    #0x00,    #0x00,   #0x00,      #0x03,      #0x00,     #0x00,  #0x00,  #0x01, #0x0000, #animations_pato_array,         #0x00,           #0x00,     #0x00
   0100                       1    semiseguidor:
   94F2 02                    2       .db e_type_zombie      ;; (Invalid 00, Player 01, Enemigo 02, Dead 80, Default 7F)
   94F3 3B                    3       .db zombie_tmp_cmps      ;; ()
   94F4 12 40                 4       .db #0x12,  #0x40    ;; x, y
   94F6 00 00                 5       .db #0x00, #0x00   ;; Vx, Vy
   94F8 06 18                 6       .db #0x06, #0x18     ;; Width, Height
   94FA 70 1B                 7       .dw #_spr_pato_00    ;; sprite (puntero al sprite)
   94FC DA A7                 8       .dw #ia_variable_tiempo        ;; IA     (puntero a funcion)
   94FE 08 8F                 9       .dw #pato_walk_down      ;; puntero a la animacion
   9500 00                   10       .db #0x00
   9501 0C                   11       .db #0x0C  ;; contador de animacion
   9502 01                   12       .db zombie_tmp_collider  ;; Collides Against
   9503 00 00                13       .db #0x00, #0x00   ;; Ultima direccion a la que apunta la entidad (solo para ver hacia donde dispara el player)
   9505 00                   14       .db #0x00 ;; 1 si la entidad ya ha disparado, 0 si no
   9506 03                   15       .db #0x03
   9507 00                   16       .db #0x00
   9508 00 00                17       .db #0x00, #0x00
   950A 01                   18       .db #0x01
   950B 00 00                19       .dw #0x0000
   950D 44 8D                20       .dw #animations_pato_array    ;; puntero a la tabla que le corresponde de animaciones
   950F 00                   21       .db #0x00 ;; indica si es normal (0) o especial (1)
   9510 00                   22       .db #0x00
   9511 00                   23       .db #0x00
                             72 
ASxxxx Assembler V02.00 + NoICE + SDCC mods  (Zilog Z80 / Hitachi HD64180), page 12.
Hexadecimal [16-Bits]



   9512                      73 cangrejo_tmp: ;; cuando ve una bala se esconde y no le puedes disparar
   9512                      74     DefineEntity cangrejo, e_type_zombie,    escudero_tmp_cmps,  #0x39, #0x20, #0x00, #0x00, #0x09, #0x18, #_spr_cangrejo_00,  #ia_cangrejo,   #cangrejo_walk_down,    #0x00, #0x0C,  zombie_tmp_collider,    #0x00,    #0x00,   #0x00,      #0x07,      #0x00,     #0x00,  #0x00,  #0x01, #0x0000, #animations_cangrejo_array,       #0x00,           #0x00,     #0x00
   0120                       1    cangrejo:
   9512 02                    2       .db e_type_zombie      ;; (Invalid 00, Player 01, Enemigo 02, Dead 80, Default 7F)
   9513 3B                    3       .db escudero_tmp_cmps      ;; ()
   9514 39 20                 4       .db #0x39,  #0x20    ;; x, y
   9516 00 00                 5       .db #0x00, #0x00   ;; Vx, Vy
   9518 09 18                 6       .db #0x09, #0x18     ;; Width, Height
   951A 72 26                 7       .dw #_spr_cangrejo_00    ;; sprite (puntero al sprite)
   951C 8C A7                 8       .dw #ia_cangrejo        ;; IA     (puntero a funcion)
   951E 76 8F                 9       .dw #cangrejo_walk_down      ;; puntero a la animacion
   9520 00                   10       .db #0x00
   9521 0C                   11       .db #0x0C  ;; contador de animacion
   9522 01                   12       .db zombie_tmp_collider  ;; Collides Against
   9523 00 00                13       .db #0x00, #0x00   ;; Ultima direccion a la que apunta la entidad (solo para ver hacia donde dispara el player)
   9525 00                   14       .db #0x00 ;; 1 si la entidad ya ha disparado, 0 si no
   9526 07                   15       .db #0x07
   9527 00                   16       .db #0x00
   9528 00 00                17       .db #0x00, #0x00
   952A 01                   18       .db #0x01
   952B 00 00                19       .dw #0x0000
   952D 6A 8D                20       .dw #animations_cangrejo_array    ;; puntero a la tabla que le corresponde de animaciones
   952F 00                   21       .db #0x00 ;; indica si es normal (0) o especial (1)
   9530 00                   22       .db #0x00
   9531 00                   23       .db #0x00
                             75 
   9532                      76 topo_tmp: 
   9532                      77     DefineEntity topo, e_type_zombie,    escudero_tmp_cmps,      #0x39, #0x20, #0x00, #0x00, #0x08, #0x14, #_spr_topo_0,  #ia_topo,            #topo_walk_down,   #0x00, #0x0C,  zombie_tmp_collider,    #0x00,    #0x00,   #0x00,      #0x07,      #0x00,     #0x00,  #0x00,  #0x01, #0x0000, #animations_topo_array,                 #0x00,           #0x01,     #0x00
   0140                       1    topo:
   9532 02                    2       .db e_type_zombie      ;; (Invalid 00, Player 01, Enemigo 02, Dead 80, Default 7F)
   9533 3B                    3       .db escudero_tmp_cmps      ;; ()
   9534 39 20                 4       .db #0x39,  #0x20    ;; x, y
   9536 00 00                 5       .db #0x00, #0x00   ;; Vx, Vy
   9538 08 14                 6       .db #0x08, #0x14     ;; Width, Height
   953A B0 17                 7       .dw #_spr_topo_0    ;; sprite (puntero al sprite)
   953C 40 A7                 8       .dw #ia_topo        ;; IA     (puntero a funcion)
   953E 36 8F                 9       .dw #topo_walk_down      ;; puntero a la animacion
   9540 00                   10       .db #0x00
   9541 0C                   11       .db #0x0C  ;; contador de animacion
   9542 01                   12       .db zombie_tmp_collider  ;; Collides Against
   9543 00 00                13       .db #0x00, #0x00   ;; Ultima direccion a la que apunta la entidad (solo para ver hacia donde dispara el player)
   9545 00                   14       .db #0x00 ;; 1 si la entidad ya ha disparado, 0 si no
   9546 07                   15       .db #0x07
   9547 00                   16       .db #0x00
   9548 00 00                17       .db #0x00, #0x00
   954A 01                   18       .db #0x01
   954B 00 00                19       .dw #0x0000
   954D 4E 8D                20       .dw #animations_topo_array    ;; puntero a la tabla que le corresponde de animaciones
   954F 00                   21       .db #0x00 ;; indica si es normal (0) o especial (1)
   9550 01                   22       .db #0x01
   9551 00                   23       .db #0x00
                             78 
   9552                      79 shot_tmp:
   9552                      80     DefineEntity shot1, e_type_shot,      shot_tmp_cmps,        #0x00, #0x00, #0x01, #0x00, #0x04, #0x10, #_spr_shotArcoiris_2, #ia_update_cont_shot,  #shot_muere,        #0x00, #0x01,  shot_tmp_collider,      #0x00,    #0x00,   #0x00,      #0x00,      #0x00,     #0x00,  #0x00,  #0x00, #0x0000, #animations_shot_array,       #0x01,           #0x00,     #0x00
   0160                       1    shot1:
ASxxxx Assembler V02.00 + NoICE + SDCC mods  (Zilog Z80 / Hitachi HD64180), page 13.
Hexadecimal [16-Bits]



   9552 04                    2       .db e_type_shot      ;; (Invalid 00, Player 01, Enemigo 02, Dead 80, Default 7F)
   9553 2B                    3       .db shot_tmp_cmps      ;; ()
   9554 00 00                 4       .db #0x00,  #0x00    ;; x, y
   9556 01 00                 5       .db #0x01, #0x00   ;; Vx, Vy
   9558 04 10                 6       .db #0x04, #0x10     ;; Width, Height
   955A 70 16                 7       .dw #_spr_shotArcoiris_2    ;; sprite (puntero al sprite)
   955C D6 A7                 8       .dw #ia_update_cont_shot        ;; IA     (puntero a funcion)
   955E 02 8F                 9       .dw #shot_muere      ;; puntero a la animacion
   9560 00                   10       .db #0x00
   9561 01                   11       .db #0x01  ;; contador de animacion
   9562 02                   12       .db shot_tmp_collider  ;; Collides Against
   9563 00 00                13       .db #0x00, #0x00   ;; Ultima direccion a la que apunta la entidad (solo para ver hacia donde dispara el player)
   9565 00                   14       .db #0x00 ;; 1 si la entidad ya ha disparado, 0 si no
   9566 00                   15       .db #0x00
   9567 00                   16       .db #0x00
   9568 00 00                17       .db #0x00, #0x00
   956A 00                   18       .db #0x00
   956B 00 00                19       .dw #0x0000
   956D 42 8D                20       .dw #animations_shot_array    ;; puntero a la tabla que le corresponde de animaciones
   956F 01                   21       .db #0x01 ;; indica si es normal (0) o especial (1)
   9570 00                   22       .db #0x00
   9571 00                   23       .db #0x00
                             81 
   9572                      82 arcoiris_tmp:
   9572                      83     DefineEntity arcoiris, e_type_arcoiris, arcoiris_tmp_cmps,  #0x20, #0x40, #0x00, #0x00, #0x06, #0x08, #_spr_arcoiris_0,   #0x0000,         #arcoiris_objeto,           #0x00, #0x0C,  arcoiris_tmp_collider,  #0x00,    #0x00,   #0x00,      #0x00,      #0x00,     #0x00,  #0x00,  #0x00, #0x0000, #animations_arcoiris_array,    0x00,           #0x00,     #0x00
   0180                       1    arcoiris:
   9572 08                    2       .db e_type_arcoiris      ;; (Invalid 00, Player 01, Enemigo 02, Dead 80, Default 7F)
   9573 31                    3       .db arcoiris_tmp_cmps      ;; ()
   9574 20 40                 4       .db #0x20,  #0x40    ;; x, y
   9576 00 00                 5       .db #0x00, #0x00   ;; Vx, Vy
   9578 06 08                 6       .db #0x06, #0x08     ;; Width, Height
   957A F8 22                 7       .dw #_spr_arcoiris_0    ;; sprite (puntero al sprite)
   957C 00 00                 8       .dw #0x0000        ;; IA     (puntero a funcion)
   957E E4 8F                 9       .dw #arcoiris_objeto      ;; puntero a la animacion
   9580 00                   10       .db #0x00
   9581 0C                   11       .db #0x0C  ;; contador de animacion
   9582 00                   12       .db arcoiris_tmp_collider  ;; Collides Against
   9583 00 00                13       .db #0x00, #0x00   ;; Ultima direccion a la que apunta la entidad (solo para ver hacia donde dispara el player)
   9585 00                   14       .db #0x00 ;; 1 si la entidad ya ha disparado, 0 si no
   9586 00                   15       .db #0x00
   9587 00                   16       .db #0x00
   9588 00 00                17       .db #0x00, #0x00
   958A 00                   18       .db #0x00
   958B 00 00                19       .dw #0x0000
   958D 9C 8D                20       .dw #animations_arcoiris_array    ;; puntero a la tabla que le corresponde de animaciones
   958F 00                   21       .db 0x00 ;; indica si es normal (0) o especial (1)
   9590 00                   22       .db #0x00
   9591 00                   23       .db #0x00
                             84 
   9592                      85 vida_tmp:
   9592                      86     DefineEntity vida,      e_type_vida,    vida_tmp_cmps,      #0x29, #0x60, #0x00, #0x00, #0x04, #0x0A, #_spr_vida_0    ,   #0x0000,            #vida_objeto,           #0x00, #0x0C,  vida_tmp_collider,      #0x00,    #0x00,   #0x00,      #0x00,      #0x00,     #0x00,  #0x00,  #0x00, #0x0000, #animations_vida_array,        #0x00,           #0x00,     #0x00
   01A0                       1    vida:
   9592 10                    2       .db e_type_vida      ;; (Invalid 00, Player 01, Enemigo 02, Dead 80, Default 7F)
   9593 31                    3       .db vida_tmp_cmps      ;; ()
   9594 29 60                 4       .db #0x29,  #0x60    ;; x, y
ASxxxx Assembler V02.00 + NoICE + SDCC mods  (Zilog Z80 / Hitachi HD64180), page 14.
Hexadecimal [16-Bits]



   9596 00 00                 5       .db #0x00, #0x00   ;; Vx, Vy
   9598 04 0A                 6       .db #0x04, #0x0A     ;; Width, Height
   959A 30 22                 7       .dw #_spr_vida_0    ;; sprite (puntero al sprite)
   959C 00 00                 8       .dw #0x0000        ;; IA     (puntero a funcion)
   959E D2 8F                 9       .dw #vida_objeto      ;; puntero a la animacion
   95A0 00                   10       .db #0x00
   95A1 0C                   11       .db #0x0C  ;; contador de animacion
   95A2 00                   12       .db vida_tmp_collider  ;; Collides Against
   95A3 00 00                13       .db #0x00, #0x00   ;; Ultima direccion a la que apunta la entidad (solo para ver hacia donde dispara el player)
   95A5 00                   14       .db #0x00 ;; 1 si la entidad ya ha disparado, 0 si no
   95A6 00                   15       .db #0x00
   95A7 00                   16       .db #0x00
   95A8 00 00                17       .db #0x00, #0x00
   95AA 00                   18       .db #0x00
   95AB 00 00                19       .dw #0x0000
   95AD A0 8D                20       .dw #animations_vida_array    ;; puntero a la tabla que le corresponde de animaciones
   95AF 00                   21       .db #0x00 ;; indica si es normal (0) o especial (1)
   95B0 00                   22       .db #0x00
   95B1 00                   23       .db #0x00
                             87 
                             88 
   95B2                      89 shot_arquero_tmp:
   95B2                      90     DefineEntity shot_arquero, e_type_shot, shotArc_tmp_cmps,  #0x00, #0x00, #0x00, #0x00, #0x04, #0x10, #_spr_shotArcoiris_4,  #0x0000,           #shot_muere,            #0x00, #0x01,  shotArq_tmp_collider    #0x00,    #0x00,   #0x00,      #0x00,      #0x00,     #0x00,  #0x00,  #0x00, #0x0000, #animations_shot_array,       #0x01,           #0x00,     #0x00
   01C0                       1    shot_arquero:
   95B2 04                    2       .db e_type_shot      ;; (Invalid 00, Player 01, Enemigo 02, Dead 80, Default 7F)
   95B3 23                    3       .db shotArc_tmp_cmps      ;; ()
   95B4 00 00                 4       .db #0x00,  #0x00    ;; x, y
   95B6 00 00                 5       .db #0x00, #0x00   ;; Vx, Vy
   95B8 04 10                 6       .db #0x04, #0x10     ;; Width, Height
   95BA F0 16                 7       .dw #_spr_shotArcoiris_4    ;; sprite (puntero al sprite)
   95BC 00 00                 8       .dw #0x0000        ;; IA     (puntero a funcion)
   95BE 02 8F                 9       .dw #shot_muere      ;; puntero a la animacion
   95C0 00                   10       .db #0x00
   95C1 01                   11       .db #0x01  ;; contador de animacion
   95C2 01                   12       .db shotArq_tmp_collider  ;; Collides Against
   95C3 00 00                13       .db #0x00, #0x00   ;; Ultima direccion a la que apunta la entidad (solo para ver hacia donde dispara el player)
   95C5 00                   14       .db #0x00 ;; 1 si la entidad ya ha disparado, 0 si no
   95C6 00                   15       .db #0x00
   95C7 00                   16       .db #0x00
   95C8 00 00                17       .db #0x00, #0x00
   95CA 00                   18       .db #0x00
   95CB 00 00                19       .dw #0x0000
   95CD 42 8D                20       .dw #animations_shot_array    ;; puntero a la tabla que le corresponde de animaciones
   95CF 01                   21       .db #0x01 ;; indica si es normal (0) o especial (1)
   95D0 00                   22       .db #0x00
   95D1 00                   23       .db #0x00
                             91    
                             92 
                             93 
                             94 
                             95 
