![]() |
Routines |
Prev: CE73 | Up: Map | Next: CEE5 |
Used by the routine at 9470.
|
||||
CE74 | LD A,($A256) | Return if Rex not jumping | ||
CE77 | OR A | |||
CE78 | RET Z | |||
CE79 | LD HL,($A1B2) | Set HL the address into tile type buffer pointing over Rex | ||
CE7C | LD DE,$0021 | |||
CE7F | ADD HL,DE | |||
CE80 | CALL $CDF5 | Check if tile type is wall | ||
CE83 | JP Z,$CEAA | Jump to start falling if tile is wall | ||
CE86 | INC HL | Increment address | ||
CE87 | CALL $CDF5 | Check if tile type is wall | ||
CE8A | JP Z,$CEAA | Jump to start falling if tile is wall | ||
CE8D | LD A,($A250) | Substract to y-position of Rex the corresponding y-offset pointed by A259 | ||
CE90 | LD HL,($A259) | |||
CE93 | LD E,(HL) | |||
CE94 | SUB E | |||
CE95 | CP $08 | If y-position of Rex is less than 8 then jump forward to stop jumping | ||
CE97 | JP C,$CEC7 | |||
CE9A | LD ($A250),A | Set the new y-position of Rex | ||
CE9D | INC HL | Increment address pointer into the y-offset table for jumping | ||
CE9E | LD ($A259),HL | |||
CEA1 | LD A,(HL) | Return if not arrived to the end of the y-offset table | ||
CEA2 | CP $FF | |||
CEA4 | RET NZ | |||
CEA5 | XOR A | Set Rex not jumping | ||
CEA6 | LD ($A256),A | |||
CEA9 | RET | |||
Rex start falling after wall collision
|
||||
CEAA | LD A,($A25D) | If Rex collides with tile type $03 (tile of death) then jump to kill Rex | ||
CEAD | CP $03 | |||
CEAF | CALL Z,$9CC5 | |||
This entry point is used by the routine at A0F8.
|
||||
CEB2 | LD A,$02 | Set falling speed | ||
CEB4 | LD ($A255),A | |||
CEB7 | XOR A | Set not jumping | ||
CEB8 | LD ($A256),A | |||
CEBB | LD A,($A250) | Return if Rex y-position is not grid fixed | ||
CEBE | AND $07 | |||
CEC0 | OR A | |||
CEC1 | RET NZ | |||
CEC2 | XOR A | Set Rex not falling | ||
CEC3 | LD ($A255),A | |||
CEC6 | RET | |||
Rex start falling after collision with top border room
|
||||
CEC7 | XOR A | Set not jumping | ||
CEC8 | LD ($A256),A | |||
CECB | LD A,$02 | Set falling speed | ||
CECD | LD ($A255),A | |||
CED0 | LD A,($A227) | Return if no top room connection | ||
CED3 | OR A | |||
CED4 | RET Z | |||
CED5 | LD ($A251),A | Set the top room to be the current room | ||
CED8 | LD A,$A0 | Set y-position of Rex to be 160 | ||
CEDA | LD ($A250),A | |||
CEDD | XOR A | Set Rex to not falling | ||
CEDE | LD ($A255),A | |||
CEE1 | POP BC | Restore BC | ||
CEE2 | JP $C9CD | Check for end game room |
Prev: CE73 | Up: Map | Next: CEE5 |