![]() |
Routines |
| Prev: C30A | Up: Map | Next: C433 |
|
Used by the routine at C2E7.
|
||||
| C3C1 | LD A,(IX+$00) | Computes new TRIANGLE x-position based on x-delta | ||
| C3C4 | ADD A,(IX+$04) | |||
| C3C7 | LD (IX+$00),A | |||
| C3CA | LD A,(IX+$01) | Computes new TRIANGLE y-position based on y-delta | ||
| C3CD | ADD A,(IX+$05) | |||
| C3D0 | LD (IX+$01),A | |||
| C3D3 | LD A,(IX+$09) | Enemy type $0F not exist. Never jump | ||
| C3D6 | CP $0F | |||
| C3D8 | JP Z,$C3EA | |||
| C3DB | LD HL,($A1B4) | Set HL the address of the tile type buffer under enemy | ||
| C3DE | LD DE,$0020 | Check if tile type buffer on enemy position is wall | ||
| C3E1 | AND A | |||
| C3E2 | SBC HL,DE | |||
| C3E4 | CALL $CDF5 | |||
| C3E7 | JP Z,$9807 | Jump to destroy enemy is tile is wall | ||
| C3EA | DEC (IX+$11) | Decrement state change counter | ||
| C3ED | RET NZ | Return if not zero | ||
| C3EE | LD A,R | Generate a random number between 2 and 5 | ||
| C3F0 | AND $03 | |||
| C3F2 | ADD A,$02 | |||
| C3F4 | LD (IX+$11),A | Set this number to state change counter | ||
| C3F7 | LD A,(IX+$09) | Enemy type $0F not exist. Never jump | ||
| C3FA | CP $0F | |||
| C3FC | JP Z,$C409 | |||
| C3FF | LD A,(IX+$12) | Change movement state | ||
| C402 | XOR $01 | |||
| C404 | LD (IX+$12),A | |||
| C407 | OR A | Return if no movement change state | ||
| C408 | RET Z | |||
| C409 | LD A,R | Set A a random number between 8 and 15 | ||
| C40B | AND $07 | |||
| C40D | ADD A,$08 | |||
| C40F | LD (IX+$11),A | Reset state change counter with this number | ||
|
Set x/y-delta
|
||||
| C412 | LD (IX+$04),$01 | Set x-delta to 1 | ||
| C416 | LD A,($A24F) | if x-position of Rex is less than x-position of TRIANGLE then set x-delta to -1 | ||
| C419 | CP (IX+$00) | |||
| C41C | JP NC,$C423 | |||
| C41F | LD (IX+$04),$FF | |||
| C423 | LD (IX+$05),$01 | Set y-delta to 1 | ||
| C427 | LD A,($A250) | if y-position of Rex is less than y-position of TRIANGLE then set y-delta to -1 | ||
| C42A | CP (IX+$01) | |||
| C42D | RET NC | |||
| C42E | LD (IX+$05),$FF | |||
| C432 | RET | |||
| Prev: C30A | Up: Map | Next: C433 |