![]() |
Routines |
| Prev: D21B | Up: Map | Next: D26E |
|
Used by the routine at D1D2.
|
||||
|
Maroc loses a very small amount of energy (1) if he collides with a tunnel boundary.
This routine checks Maroc's position against that of either the left (D250) or right (D23B) boundary (determined at D1D9).
RIGHT boundary wall check - compare boundary wall position against Maroc's position
Vertical position check:
|
||||
| D23B | LD A,($EB4A) | Boundary wall's vertical (pixel) position | ||
| D23E | SUB $50 | Subtract 80 (pixels) from this value | ||
| D240 | CP $10 | |||
| D242 | JP NC,$D27D | If the difference is >=16, it's NOT within Maroc's vertical 'hit box' area (jump out here) | ||
|
Horizontal position check:
|
||||
| D245 | LD A,($EB48) | Boundary wall's horizontal (half-character/4-pixel) position | ||
| D248 | CP $20 | Check vs 32 (= 16 character squares = the right hand side of Maroc's sprite graphic) | ||
| D24A | JR NC,$D26B | If no carry (NC), Maroc ISN'T beyond the tunnel boundary, so can jump out here | ||
| D24C | LD A,$20 | Maroc has hit/passed the boundary wall. Pre-load the value to assign to Maroc's speed to +32 = full speed left, as Maroc bounces off the wall |
||
| D24E | JR $D263 | |||
|
LEFT boundary wall check - compare boundary wall position against Maroc's position
Vertical position check:
|
||||
| D250 | LD A,($EB4A) | Boundary wall's vertical (pixel) position | ||
| D253 | SUB $50 | Subtract 80 (pixels) from this value | ||
| D255 | CP $10 | |||
| D257 | JP NC,$D27D | If the difference is >=16, it's not within Maroc's vertical 'hit box' area (jump out here) | ||
|
Horizontal position check:
|
||||
| D25A | LD A,($EB48) | Boundary wall's horizontal (half-character/4-pixel) position | ||
| D25D | CP $18 | Check vs 24 ( = 12 character squares = the left hand side of Maroc's sprite graphic) | ||
| D25F | JR C,$D26B | If there's a carry, Maroc ISN'T beyond the tunnel boundary, so jump out here | ||
| D261 | LD A,$E0 | Maroc has hit/passed the boundary wall. Pre-load the value to assign to Maroc's speed to 224 (-32) = full speed right, as Maroc bounces off the wall |
||
|
Maroc has hit a boundary wall
|
||||
| D263 | LD ($EB04),A | Store Maroc's adjusted speed (after bouncing off either wall) | ||
| D266 | LD A,$01 | Set energy drain amount to 1 | ||
| D268 | CALL $E3CC | Decrease Maroc's energy | ||
| D26B | JP $D27D | |||
| Prev: D21B | Up: Map | Next: D26E |