Routines |
Prev: C5FD | Up: Map | Next: C6C2 |
Used by the routine at BA5C.
|
||||
C620 | LD A,(IX+$09) | Check enemy type | ||
C623 | CP $FE | Return if bubble | ||
C625 | RET Z | |||
C626 | CP $FD | Return if smartbomb | ||
C628 | RET Z | |||
C629 | CP $FC | Return if question | ||
C62B | RET Z | |||
C62C | AND $7F | |||
C62E | CP $08 | is SCANNER? | ||
C630 | JP Z,$C213 | Jump to handle SCANNER - moves up | ||
C633 | CP $0C | is POD? | ||
C635 | JP Z,$C05A | Jump to handle POD | ||
C638 | CP $0D | is MINE LAYER? | ||
C63A | JP Z,$C05A | Jump to handle MINE LAYER | ||
C63D | CP $0E | Return if MINE | ||
C63F | RET Z | |||
C640 | CP $0F | Return if BLOB | ||
C642 | RET Z | |||
C643 | LD A,(IX+$03) | return if enemy is not FOOT MAN jumping | ||
C646 | OR A | |||
C647 | RET Z | |||
C648 | LD A,(IX+$00) | Set A0AF to the x-position of enemy | ||
C64B | LD ($A0AF),A | |||
C64E | LD A,(IX+$01) | Set A0B0 to the y-position of enemy | ||
C651 | LD ($A0B0),A | |||
C654 | LD A,(IX+$02) | Set A to the direction of enemy | ||
C657 | CALL $A503 | Set into HL the address into tile type buffer of enemy position | ||
C65A | INC HL | Increment HL | ||
C65B | CALL $D06C | Check if tile type is a wall | ||
C65E | JP Z,$C6A1 | Jump if it's a wall | ||
C661 | INC HL | Increment HL | ||
C662 | CALL $D06C | Check if tile type is a wall | ||
C665 | JP Z,$C6A1 | Jump if it's a wall | ||
C668 | LD A,(IX+$01) | Set A to the y-position | ||
C66B | LD L,(IX+$04) | Set HL to the address for jumping y-offset | ||
C66E | LD H,(IX+$05) | |||
C671 | LD E,(HL) | Computes the new y-position | ||
C672 | SUB E | |||
C673 | CP $08 | if y-position is less than 8 then start falling | ||
C675 | JP C,$C68B | |||
C678 | LD (IX+$01),A | Set the new y-position | ||
C67B | INC HL | Increment y-offset address | ||
C67C | LD (IX+$04),L | |||
C67F | LD (IX+$05),H | |||
C682 | LD A,(HL) | if no end marker for y-offet then return | ||
C683 | CP $FF | |||
C685 | RET NZ | |||
C686 | LD (IX+$03),$00 | Finish jumping | ||
C68A | RET | |||
FOOT MAN start falling
|
||||
C68B | LD (IX+$03),$00 | Set FOOT MAN not jumping | ||
C68F | LD (IX+$06),$02 | Set FOOT MAN falling (speed 2) | ||
C693 | LD A,(IX+$09) | if FOOT MAN is dying jump back and destroy it | ||
C696 | CP $07 | |||
C698 | JP Z,$981F | |||
C69B | CP $06 | |||
C69D | JP Z,$981F | |||
C6A0 | RET | |||
FOOT MAN start falling
|
||||
C6A1 | LD A,(IX+$09) | if FOOT MAN is dying jump back and destroy it | ||
C6A4 | CP $07 | |||
C6A6 | JP Z,$981F | |||
C6A9 | CP $06 | |||
C6AB | JP Z,$981F | |||
C6AE | LD (IX+$06),$02 | Set FOOT MAN falling (speed 2) | ||
C6B2 | LD (IX+$03),$00 | Set FOOT MAN not jumping | ||
C6B6 | LD A,(IX+$01) | if bits2-0 of y-position are 0 then stop falling | ||
C6B9 | AND $07 | |||
C6BB | OR A | |||
C6BC | RET NZ | |||
C6BD | LD (IX+$06),$00 | |||
C6C1 | RET |
Prev: C5FD | Up: Map | Next: C6C2 |