![]() |
Routines |
| Prev: C691 | Up: Map | Next: C794 |
|
Used by the routine at BC48.
|
||||
| C721 | LD A,(IX+$09) | Return if enemy is TRIANGLE | ||
| C724 | AND $7F | |||
| C726 | CP $0E | |||
| C728 | RET Z | |||
| C729 | LD A,(IX+$03) | Return if FOOT MAN is jumping | ||
| C72C | OR A | |||
| C72D | RET NZ | |||
| C72E | LD A,(IX+$01) | Add to y-position the falling speed | ||
| C731 | ADD A,(IX+$06) | |||
| C734 | CP $B8 | y-position is greater than 184? | ||
| C736 | JP NC,$C77B | Jump to make FOOTMAN invisible | ||
| C739 | LD (IX+$01),A | Set the new y-position | ||
| C73C | AND $07 | Return if y-position is not grid fixed | ||
| C73E | OR A | |||
| C73F | RET NZ | |||
| C740 | CALL $C794 | Obtain into HL the tile type address pointer under FOOT MAN | ||
| C743 | LD A,(HL) | Set A the tile type under FOOT MAN | ||
| C744 | CALL $CE17 | Check if tile type is 'background' tile | ||
| C747 | JP NZ,$C76E | Jump if wall tile type | ||
| C74A | INC HL | Increment HL | ||
| C74B | LD A,(HL) | Set A the tile type under FOOT MAN | ||
| C74C | CALL $CE17 | Check if tile type is 'background' tile | ||
| C74F | JP NZ,$C76E | Jump if wall tile type | ||
| C752 | LD A,(IX+$09) | If explosion jump to continue falling | ||
| C755 | CP $FF | |||
| C757 | JP Z,$C762 | |||
| C75A | LD A,($A25D) | If FOOT MAN collides with tile type $03 (tiles of death) then jump to destroy enemy | ||
| C75D | CP $03 | |||
| C75F | CALL Z,$C78C | |||
|
continue falling
|
||||
| C762 | LD A,(IX+$06) | Increment falling speed by 2 if speed less than $04 | ||
| C765 | ADD A,$02 | |||
| C767 | CP $06 | |||
| C769 | RET Z | |||
| C76A | LD (IX+$06),A | |||
| C76D | RET | |||
|
stop falling
|
||||
| C76E | LD (IX+$06),$00 | Reset falling | ||
| C772 | LD A,(IX+$09) | if enemy is FOOT MAN dying then destroy it | ||
| C775 | CP $07 | |||
| C777 | JP Z,$9807 | |||
| C77A | RET | |||
|
enemy falling from screen
|
||||
| C77B | LD (IX+$0C),$00 | Set entity invisble | ||
| C77F | LD HL,$E9FF | Set base address into attribute buffer for score points | ||
| C782 | LD ($A1D2),HL | |||
| C785 | LD HL,$0000 | Set score point to zero | ||
| C788 | LD ($A1D5),HL | |||
| C78B | RET | |||
|
enemy collides with tile of death
|
||||
| C78C | LD (IX+$15),$FF | Set to not generate bubble | ||
| C790 | CALL $9807 | Destroy enemy | ||
| C793 | RET | |||
| Prev: C691 | Up: Map | Next: C794 |