Routines |
Prev: 63744 | Up: Map | Next: 63861 |
Continues from 63586. Controls MR WACKER as he walks from the vicinity of the stinkbomb cloud over to the nearest closed window, opens it, and walks back again.
|
||||||||
63801 | LD L,21 | Pick up the x-coordinate of the window to be opened from byte 21 of MR WACKER's buffer | ||||||
63803 | LD A,(HL) | |||||||
63804 | LD L,1 | Byte 1 of MR WACKER's buffer holds his current x-coordinate | ||||||
63806 | CP (HL) | Has MR WACKER reached the window yet? | ||||||
63807 | JP NZ,25632 | Keep going if not | ||||||
63810 | CALL 25012 | Update the SRB for MR WACKER's current animatory state and location | ||||||
63813 | OR 7 | A=animatory state of MR WACKER with his arm up | ||||||
63815 | CALL 30534 | Place address 63818 (below) into bytes 17 and 18 of MR WACKER's buffer and update his animatory state | ||||||
The address of this entry point is placed into bytes 17 and 18 of MR WACKER's buffer by the instruction above when he has reached the window that needs opening.
|
||||||||
63818 | LD L,17 | Replace the address of this entry point in bytes 17 and 18 of MR WACKER's buffer with 63830 | ||||||
63820 | LD (HL),86 | |||||||
63822 | LD B,1 | B=1 (open window) | ||||||
63824 | LD L,22 | Pick up the window identifier (64/128) from byte 22 of MR WACKER's buffer | ||||||
63826 | LD A,(HL) | |||||||
63827 | JP 28863 | Open the window and lower MR WACKER's arm | ||||||
This entry point is used after the window has been opened.
|
||||||||
63830 | CALL 25012 | Update the SRB for MR WACKER's current animatory state and location | ||||||
63833 | XOR 128 | A=animatory state of MR WACKER facing left | ||||||
63835 | CALL 30534 | Place address 63838 (below) into bytes 17 and 18 of MR WACKER's buffer and update his animatory state | ||||||
This entry point is used after MR WACKER has turned round to begin his return journey from the window.
|
||||||||
63838 | LD L,0 | Point HL at byte 0 of MR WACKER's buffer | ||||||
63840 | BIT 0,(HL) | Is MR WACKER midstride? | ||||||
63842 | JP NZ,25597 | Finish his stride if so | ||||||
63845 | LD L,19 | Byte 19 stores MR WACKER's x-coordinate before he went off to the window; pick this up in A | ||||||
63847 | LD A,(HL) | |||||||
63848 | LD L,1 | Byte 1 of MR WACKER's buffer holds his x-coordinate | ||||||
63850 | CP (HL) | Is MR WACKER at his pre-window-opening position? | ||||||
63851 | JP NZ,25632 | Continue his return journey if not | ||||||
MR WACKER has now returned to the spot where the stinkbomb first offended his nostrils.
|
||||||||
63854 | LD L,18 | Remove the routine address (63838 above) from bytes 17 and 18 of MR WACKER's buffer | ||||||
63856 | LD (HL),0 | |||||||
63858 | JP 30112 | Restore MR WACKER's original animatory state and update SRB |
Prev: 63744 | Up: Map | Next: 63861 |