DE | Coordinates of pellet/water/sherry/conker |
H | Pellet/water/sherry/conker's character number |
29856 | 0606 | LD B,6 | There are six adult characters |
29858 | 4C | LD C,H | |
29859 | 26C8 | LD H,200 | 200=MR WACKER |
29861 | 2E02 | LD L,2 | |
29863 | 7A | LD A,D | A=projectile's y-coordinate |
29864 | BE | CP (HL) | Does it match that of the character? |
29865 | 2016 | JR NZ,29889 | Jump if not |
29867 | 2E00 | LD L,0 | |
29869 | 7E | LD A,(HL) | A=character's animatory state |
29870 | E687 | AND 135 | |
29872 | FE06 | CP 6 | Is the character sitting on the floor facing left (already struck)? |
29874 | 2805 | JR Z,29881 | Jump if so |
29876 | 2D | DEC L | |
29877 | FE86 | CP 134 | Is the character sitting on the floor facing right (already struck)? |
29879 | 2801 | JR Z,29882 | Jump if so |
29881 | 2C | INC L | |
29882 | 7D | LD A,L | |
29883 | 2E01 | LD L,1 | |
29885 | 86 | ADD A,(HL) | A=x-coordinate of character's head |
29886 | BB | CP E | Does this match that of the projectile? |
29887 | 2803 | JR Z,29892 | Jump if so |
29889 | 24 | INC H | Next character |
29890 | 10E1 | DJNZ 29861 | Jump back to consider remaining characters |
29892 | 44 | LD B,H | B=number of character hit by projectile (if any) |
29893 | 61 | LD H,C | Restore projectile's character number to H |
29894 | C9 | RET | Return with the zero flag set if a character was hit |