Jet Set Willy: Routine at 94D2

| Routines

94D2: Move Willy into the room below

Used by the routine at 8DD3.
94D2 | LD A,($80EC) | Pick up the number of the room below from 80EC
94D5 | LD ($8420),A | Make it the current room number by copying it to 8420
94D8 | XOR A | Set Willy's y-coordinate (at 85CF) to 0
94D9 | LD ($85CF),A
94DC | LD A,($85D1) | Pick up the airborne status indicator from 85D1
94DF | CP $0B | Is it 0x0B or greater (meaning Willy has already been falling for a while)?
94E1 | JR NC,$94E8 | Jump if so
94E3 | LD A,$02 | Otherwise set the airborne status indicator to 2 (Willy will start falling here if there's no floor beneath him)
94E5 | LD ($85D1),A
94E8 | LD A,($85D3) | Willy should now appear at the top of the room, so adjust his attribute buffer coordinates (at 85D3) accordingly
94EB | AND $1F
94ED | LD ($85D3),A
94F0 | LD A,$5C
94F2 | LD ($85D4),A
94F5 | POP HL | Drop the return address (89D1, in the main loop) from the stack
94F6 | JP $8912 | Draw the room and re-enter the main loop