Prev: 38064 Up: Map Next: 38137
38098: Move Willy into the room below
Used by the routine at 36307.
Input
Output
38098 LD A,(33004) Pick up the number of the room below from 33004
38101 LD (33824),A Make it the current room number by copying it to 33824
38104 XOR A Set Willy's pixel y-coordinate (at 34255) to 0
38105 LD (34255),A
38108 LD A,(34257) Pick up the airborne status indicator from 34257
38111 CP 11 Is it 11 or greater (meaning Willy has already been falling for a while)?
38113 JR NC,38120 Jump if so
38115 LD A,2 Otherwise set the airborne status indicator to 2 (Willy will start falling here if there's no floor beneath him)
38117 LD (34257),A
38120 LD A,(34259) Willy should now appear at the top of the room, so adjust his attribute buffer coordinates (at 34259) accordingly
38123 AND 31
38125 LD (34259),A
38128 LD A,92
38130 LD (34260),A
38133 POP HL Drop the return address (35281, in the main loop) from the stack
38134 JP 35090 Draw the room and re-enter the main loop
Prev: 38064 Up: Map Next: 38137