![]() |
Routines |
| Prev: CE74 | Up: Map | Next: CF59 |
|
Used by the routine at 9470.
|
||||
| CEE5 | LD A,($A256) | Return if Rex is jumping | ||
| CEE8 | OR A | |||
| CEE9 | RET NZ | |||
| CEEA | LD A,($A250) | Add falling speed to y-position of Rex | ||
| CEED | LD HL,$A255 | |||
| CEF0 | ADD A,(HL) | |||
| CEF1 | CP $BA | if y-position is greater then 186 jump to check bottom room | ||
| CEF3 | JP NC,$CF3B | |||
| CEF6 | LD ($A250),A | Set the new y-position | ||
| CEF9 | AND $07 | Return if y-position is not grid fixed | ||
| CEFB | OR A | |||
| CEFC | RET NZ | |||
| CEFD | LD A,($A24F) | Set A248 the x-position of Rex | ||
| CF00 | LD ($A248),A | |||
| CF03 | LD A,($A250) | Set A249 the y-position of Rex | ||
| CF06 | LD ($A249),A | |||
| CF09 | LD A,($A254) | Set A the face direction | ||
| CF0C | CALL $A6AB | Computes address position in tile type buffer based on (x,y) position on screen | ||
| CF0F | LD DE,$0061 | Set HL to point into tile type buffer under Rex feet | ||
| CF12 | ADD HL,DE | |||
| CF13 | LD A,(HL) | Set A the tile type | ||
| CF14 | CALL $CE17 | Check if tile type is 'background' | ||
| CF17 | JP NZ,$CF36 | Jump to stop falling if not background | ||
| CF1A | INC HL | Increment address | ||
| CF1B | LD A,(HL) | Set A the tile type | ||
| CF1C | CALL $CE17 | Check if tile type is 'background' | ||
| CF1F | JP NZ,$CF36 | Jump to stop falling if not background | ||
| CF22 | LD A,($A25D) | If Rex collides with tile type $03 (tile of death) then jump to kill Rex | ||
| CF25 | CP $03 | |||
| CF27 | CALL Z,$9CC5 | |||
| CF2A | LD A,($A255) | Increase falling speed by 2 | ||
| CF2D | ADD A,$02 | |||
| CF2F | CP $06 | Return if falling speed greater than 4 | ||
| CF31 | RET Z | |||
| CF32 | LD ($A255),A | Set the new falling speed | ||
| CF35 | RET | |||
|
Rex has finished falling
|
||||
| CF36 | XOR A | Set falling speed to 0 | ||
| CF37 | LD ($A255),A | |||
| CF3A | RET | |||
|
Rex has fallen through bottom room
|
||||
| CF3B | LD A,($A228) | If no bottom room connection then jump to kill Rex | ||
| CF3E | OR A | |||
| CF3F | JP Z,$CF4E | |||
| CF42 | LD ($A251),A | Set the new room | ||
| CF45 | LD A,$08 | Set the new y-position of Rex as 8 | ||
| CF47 | LD ($A250),A | |||
| CF4A | POP BC | Restore BC | ||
| CF4B | JP $C9CD | Check for end game room | ||
|
No room connection, kill Rex
|
||||
| CF4E | XOR A | Set Rex to not jumping nor falling | ||
| CF4F | LD ($A255),A | |||
| CF52 | LD ($A256),A | |||
| CF55 | CALL $9CC5 | Handle Rex dead | ||
| CF58 | RET | |||
| Prev: CE74 | Up: Map | Next: CF59 |