Routines |
Prev: 8B0C | Up: Map | Next: 8B90 |
Used by the routine at 89D4.
|
||||||||
8B1F | LD A,($5C7C) | Take 2 off the current Y position. | ||||||
8B22 | SUB $02 | |||||||
8B24 | LD ($5C7C),A | |||||||
8B27 | LD HL,$8D58 | Increment the distance fallen (8D58). | ||||||
8B2A | INC (HL) | |||||||
8B2B | LD A,($5C7C) | Put the old Y position in A. | ||||||
8B2E | ADD A,$02 | |||||||
8B30 | INC (HL) | Increment the distance fallen. | ||||||
8B31 | CALL $8452 | Redraw Monty. Control continues to 8B34. | ||||||
This entry point is used by the routines at 8A0A and 8A63.
|
||||||||
8B34 | CALL $8B90 | Check Monty's current movement. | ||||||
8B37 | LD HL,$5C7C | Get the current position in HL. | ||||||
8B3A | BIT 1,(IX+$00) | Is Monty jumping? | ||||||
8B3E | JR NZ,$8B46 | Move forward if so. | ||||||
8B40 | SET 0,(HL) | Align Monty with a pixel boundary. | ||||||
8B42 | DEC HL | |||||||
8B43 | RES 0,(HL) | |||||||
8B45 | INC HL | |||||||
Check that Monty can move in all directions, and block movement that is not possible.
|
||||||||
8B46 | LD A,($8D7E) | Get the temporary Y co-ordinate. | ||||||
8B49 | BIT 7,(IX+$00) | Can Monty move up? | ||||||
8B4D | JR Z,$8B55 | Jump if so. | ||||||
8B4F | CP (HL) | Is the current co-ordinate out of bounds? | ||||||
8B50 | JR NC,$8B55 | Jump forward if not. | ||||||
8B52 | LD (HL),A | Re-align Monty on the appropriate boundary and jump forward. | ||||||
8B53 | JR $8B5F | |||||||
8B55 | BIT 6,(IX+$00) | Can Monty move down? | ||||||
8B59 | JR Z,$8B5F | Jump if so. | ||||||
8B5B | CP (HL) | Is the current co-ordinate out of bounds? | ||||||
8B5C | JR C,$8B5F | Jump forward if not. | ||||||
8B5E | LD (HL),A | Re-align Monty on the appropriate boundary. | ||||||
8B5F | LD HL,$5C7B | Point HL at Monty's co-ordinates. | ||||||
8B62 | LD A,($8D7D) | Get the temporary X co-ordinate. | ||||||
8B65 | BIT 5,(IX+$00) | Can Monty move left? | ||||||
8B69 | JR Z,$8B71 | Jump if so. | ||||||
8B6B | CP (HL) | Is the current co-ordinate out of bounds? | ||||||
8B6C | JR C,$8B71 | Jump forward if not. | ||||||
8B6E | LD (HL),A | Re-align Monty on the appropriate boundary and jump forward. | ||||||
8B6F | JR $8B7B | |||||||
8B71 | BIT 4,(IX+$00) | Can Monty move right? | ||||||
8B75 | JR Z,$8B7B | Jump if so. | ||||||
8B77 | CP (HL) | Is the current co-ordinate out of bounds? | ||||||
8B78 | JR NC,$8B7B | Jump forward if not. | ||||||
8B7A | LD (HL),A | Re-align Monty on the appropriate boundary. | ||||||
Redraw Monty in the new screen position.
|
||||||||
8B7B | LD HL,($5C7B) | Get the screen position. | ||||||
8B7E | LD ($ECDE),HL | Set this for the graphic to print. | ||||||
8B81 | LD A,$04 | Height is 4. | ||||||
8B83 | LD ($832E),A | |||||||
8B86 | LD HL,($848C) | Get the pointer to the sprite data. | ||||||
8B89 | LD ($ECE0),HL | Set this to draw. | ||||||
8B8C | CALL $EBE0 | Draw the graphic and return. | ||||||
8B8F | RET |
Prev: 8B0C | Up: Map | Next: 8B90 |