Routines |
Prev: 94F9 | Up: Map | Next: 9584 |
Used by the routine at 89AD.
|
||||
9534 | LD A,($8420) | Pick up the number of the current room from 8420 | ||
9537 | CP $23 | Are we in Master Bedroom? | ||
9539 | JR NZ,$959A | Jump if not | ||
953B | LD A,($85DF) | Pick up the game mode indicator from 85DF | ||
953E | OR A | Has Willy collected all the items? | ||
953F | JR NZ,$9576 | Jump if so | ||
Willy hasn't collected all the items yet, so Maria is on guard.
|
||||
9541 | LD A,($85CB) | Pick up the minute counter from 85CB; this will determine Maria's animation frame | ||
9544 | AND $02 | Keep only bit 1, move it to bit 5, and set bit 7 | ||
9546 | RRCA | |||
9547 | RRCA | |||
9548 | RRCA | |||
9549 | RRCA | |||
954A | OR $80 | |||
954C | LD E,A | Now E=0x80 (foot down) or 0xA0 (foot raised) | ||
954D | LD A,($85CF) | Pick up Willy's y-coordinate from 85CF | ||
9550 | CP $D0 | Is Willy on the floor below the ramp? | ||
9552 | JR Z,$955C | Jump if so | ||
9554 | LD E,$C0 | E=0xC0 (raising arm) | ||
9556 | CP $C0 | Is Willy 8 or fewer pixels above floor level? | ||
9558 | JR NC,$955C | Jump if so | ||
955A | LD E,$E0 | E=0xE0 (arm raised) | ||
955C | LD D,$9C | Point DE at the sprite graphic data for Maria (9C80, 9CA0, 9CC0 or 9CE0) | ||
955E | LD HL,$686E | Draw Maria at (11,14) in the screen buffer at 6000 | ||
9561 | LD C,$01 | |||
9563 | CALL $9456 | |||
9566 | JP NZ,$90B7 | Kill Willy if Maria collided with him | ||
9569 | LD HL,$4545 | H=L=0x45 (INK 5: PAPER 0: BRIGHT 1) | ||
956C | LD ($5D6E),HL | Set the attribute bytes for the top half of Maria's sprite in the buffer at 5C00 | ||
956F | LD HL,$0707 | H=L=0x07 (INK 7: PAPER 0: BRIGHT 0) | ||
9572 | LD ($5D8E),HL | Set the attribute bytes for the bottom half of Maria's sprite in the buffer at 5C00 | ||
9575 | RET | |||
Willy has collected all the items, so Maria is gone.
|
||||
9576 | LD A,($85D3) | Pick up Willy's screen x-coordinate from 85D3 | ||
9579 | AND $1F | |||
957B | CP $06 | Has Willy reached the bed (at x=5) yet? | ||
957D | RET NC | Return if not | ||
957E | LD A,$02 | Update the game mode indicator at 85DF to 2 (Willy is running to the toilet) | ||
9580 | LD ($85DF),A | |||
9583 | RET |
Prev: 94F9 | Up: Map | Next: 9584 |