![]() |
Routines |
| Prev: C66E | Up: Map | Next: C721 |
|
Used by the routine at BC48.
|
||||
| C691 | LD A,(IX+$09) | Check enemy type | ||
| C694 | CP $FE | Return if bubble | ||
| C696 | RET Z | |||
| C697 | CP $FD | Return if smartbomb | ||
| C699 | RET Z | |||
| C69A | CP $FC | Return if question | ||
| C69C | RET Z | |||
| C69D | AND $7F | Return if TRIANGLE | ||
| C69F | CP $0E | |||
| C6A1 | RET Z | |||
| C6A2 | LD A,(IX+$03) | Return if FOOT MAN not jumping | ||
| C6A5 | OR A | |||
| C6A6 | RET Z | |||
|
FOOT MAN jumping
|
||||
| C6A7 | LD A,(IX+$00) | Set A248 to the x-position of enemy | ||
| C6AA | LD ($A248),A | |||
| C6AD | LD A,(IX+$01) | Set A249 to the y-position of enemy | ||
| C6B0 | LD ($A249),A | |||
| C6B3 | LD A,(IX+$02) | Set A to the direction of enemy | ||
| C6B6 | CALL $A6AB | Set into HL the address into tile type buffer of enemy position | ||
| C6B9 | INC HL | Increment HL | ||
| C6BA | CALL $CDF5 | Check if tile type is a wall | ||
| C6BD | JP Z,$C700 | Jump if it's a wall | ||
| C6C0 | INC HL | Increment HL | ||
| C6C1 | CALL $CDF5 | Check if tile type is a wall | ||
| C6C4 | JP Z,$C700 | Jump if it's a wall | ||
| C6C7 | LD A,(IX+$01) | Set A to the y-position | ||
| C6CA | LD L,(IX+$04) | Set HL to the address for jumping y-offset | ||
| C6CD | LD H,(IX+$05) | |||
| C6D0 | LD E,(HL) | Computes the new y-position | ||
| C6D1 | SUB E | |||
| C6D2 | CP $08 | if y-position is less than 8 then start falling | ||
| C6D4 | JP C,$C6EA | |||
| C6D7 | LD (IX+$01),A | Set the new y-position | ||
| C6DA | INC HL | Increment y-offset address | ||
| C6DB | LD (IX+$04),L | |||
| C6DE | LD (IX+$05),H | |||
| C6E1 | LD A,(HL) | if no end marker for y-offet then return | ||
| C6E2 | CP $FF | |||
| C6E4 | RET NZ | |||
| C6E5 | LD (IX+$03),$00 | Finish jumping | ||
| C6E9 | RET | |||
|
FOOT MAN start falling
|
||||
| C6EA | LD (IX+$03),$00 | Set FOOT MAN not jumping | ||
| C6EE | LD (IX+$06),$02 | Set FOOT MAN falling (speed 2) | ||
| C6F2 | LD A,(IX+$09) | if FOOT MAN is dying jump back and destroy it | ||
| C6F5 | CP $07 | |||
| C6F7 | JP Z,$9807 | |||
| C6FA | CP $06 | |||
| C6FC | JP Z,$9807 | |||
| C6FF | RET | |||
|
FOOT MAN start falling
|
||||
| C700 | LD A,(IX+$09) | if FOOT MAN is dying jump back and destroy it | ||
| C703 | CP $07 | |||
| C705 | JP Z,$9807 | |||
| C708 | CP $06 | |||
| C70A | JP Z,$9807 | |||
| C70D | LD (IX+$06),$02 | Set FOOT MAN falling (speed 2) | ||
| C711 | LD (IX+$03),$00 | Set FOOT MAN not jumping | ||
| C715 | LD A,(IX+$01) | if bits2-0 of y-position are 0 then stop falling | ||
| C718 | AND $07 | |||
| C71A | OR A | |||
| C71B | RET NZ | |||
| C71C | LD (IX+$06),$00 | |||
| C720 | RET | |||
| Prev: C66E | Up: Map | Next: C721 |