H | Character number (183-214) |
1 | Left study door |
2 | Right study door |
4 | Science lab storeroom door |
8 | Boys' skool door |
16 | Skool gate |
28767 | 2E00 | LD L,0 | |
28769 | 7E | LD A,(HL) | A=character's animatory state |
28770 | 07 | RLCA | |
28771 | 3F | CCF | |
28772 | 9F | SBC A,A | |
28773 | 87 | ADD A,A | |
28774 | 3C | INC A | |
28775 | 2C | INC L | |
28776 | 86 | ADD A,(HL) | |
28777 | 5F | LD E,A | Now E=x-coordinate of location directly in front of character |
28778 | 2C | INC L | |
28779 | 56 | LD D,(HL) | D=y-coordinate of character |
28780 | E5 | PUSH HL | |
28781 | 213EB9 | LD HL,47422 | Point HL to base address of table containing locations of doors |
28784 | 010105 | LD BC,1281 | B=5, C=1 |
28787 | 7B | LD A,E | A=x-coordinate of location directly in front of character |
28788 | BE | CP (HL) | |
28789 | 23 | INC HL | |
28790 | 2004 | JR NZ,28796 | Jump if the x-coordinates don't match |
28792 | 7A | LD A,D | A=y-coordinate of character |
28793 | BE | CP (HL) | Do the y-coordinates match? |
28794 | 2808 | JR Z,28804 | Jump if so (character is standing at this door) |
28796 | 23 | INC HL | |
28797 | CB01 | RLC C | Move the set bit in C one place to the left |
28799 | 10F2 | DJNZ 28787 | Jump back to consider remaining doors |
28801 | E1 | POP HL | |
28802 | AF | XOR A | Signal: no door in front of character |
28803 | C9 | RET | |
28804 | 3AF47F | LD A,(32756) | Pick up the doors flags |
28807 | A1 | AND C | |
28808 | E1 | POP HL | |
28809 | C0 | RET NZ | Return if the door is already open |
28810 | 37 | SCF | Signal: door needs opening |
28811 | C9 | RET |
Address | Location | Description | C |
47422 | 72,3 | Left study door | 1 |
47424 | 83,3 | Right study door | 2 |
47426 | 54,10 | Science lab storeroom door | 4 |
47428 | 94,17 | Boys' skool door | 8 |
47430 | 133,17 | Skool gate | 16 |