![]() |
Routines |
Prev: 24328 | Up: Map | Next: 24476 |
A | ERIC's animatory state |
D | ERIC's y-coordinate |
E | ERIC's x-coordinate |
24348 | LD HL,53504 | Point HL at the byte 0 of HAYLEY's buffer |
24351 | XOR (HL) | Are ERIC and HAYLEY facing the same way? |
24352 | RLCA | |
24353 | JR NC,24378 | Jump if so |
24355 | BIT 2,(HL) | Is HAYLEY standing up? |
24357 | JR NZ,24378 | Jump if not |
24359 | LD A,(HL) | A=HAYLEY's animatory state |
24360 | RLCA | A=x-coordinate of the position two spaces in front of HAYLEY |
24361 | SBC A,A | |
24362 | ADD A,A | |
24363 | CPL | |
24364 | ADD A,A | |
24365 | INC L | |
24366 | ADD A,(HL) | |
24367 | CP E | Does ERIC's x-coordinate match this? |
24368 | JR NZ,24378 | Jump if not |
24370 | INC L | L=2 |
24371 | LD A,(HL) | A=HAYLEY's y-coordinate |
24372 | SUB D | Does ERIC's y-coordinate match HAYLEY's? |
24373 | JR NZ,24378 | Jump if not |
24375 | LD L,18 | Set the zero flag if there is no routine address in bytes 17 and 18 of HAYLEY's buffer (A=0) |
24377 | CP (HL) | |
At this point the zero flag is set if HAYLEY is kissable (i.e. ERIC and HAYLEY are standing and facing each other at close proximity), and reset otherwise.
|
||
24378 | LD A,1 | 1: ERIC midstride |
24380 | LD HL,53796 | At 53796 lies a RET instruction |
24383 | JP NZ,57642 | Jump if HAYLEY is not kissable at this time |
24386 | LD A,(32738) | 32738 holds the number of kisses left |
24389 | AND A | Has ERIC used up all his kisses? |
24390 | JR NZ,24395 | Jump if not |
24392 | LD HL,24328 | 24328: hit ERIC |
24395 | LD (53521),HL | Place the appropriate routine address (24328: hit ERIC, or 53796: do nothing) into bytes 17 and 18 of HAYLEY's buffer |
24398 | JR Z,24372 | Make HAYLEY hit ERIC if he's used up all his kisses |
ERIC has scored a kiss.
|
||
24400 | SUB 7 | Subtract 7 from the kiss counter |
24402 | JR NC,24405 | Jump if that doesn't take it below zero |
24404 | XOR A | Set it to zero otherwise |
24405 | LD (32738),A | Store the new kiss count at 32738 |
24408 | LD HL,(32743) | 32743 holds the number of lines (divided by 10) |
24411 | LD BC,65436 | BC=-100 |
24414 | XOR A | |
24415 | ADD HL,BC | Subtract 1000 from the number of lines |
24416 | JR C,24420 | Jump if the lines total (in HL) is still positive |
24418 | LD H,A | Otherwise set HL=0 |
24419 | LD L,A | |
24420 | LD (32743),HL | Decrease ERIC's lines total by 1000 (or to 0) |
24423 | CALL 29643 | Print the number of lines |
24426 | LD H,209 | 209=HAYLEY |
24428 | CALL 25012 | Update SRB for HAYLEY's current animatory state and location |
24431 | LD L,20 | Save HAYLEY's current animatory state in byte 20 of her buffer for later retrieval |
24433 | LD (HL),A | |
24434 | DEC L | Save HAYLEY's current x-coordinate in byte 19 of her buffer for later retrieval |
24435 | LD (HL),E | |
24436 | LD L,1 | Set HAYLEY's x-coordinate to 224 (out of sight) briefly |
24438 | LD (HL),224 | |
24440 | LD H,210 | 210=ERIC |
24442 | CALL 25012 | Update SRB for ERIC's current animatory state and location |
24445 | LD L,1 | Point HL at byte 1 of ERIC's buffer |
24447 | RLCA | Is ERIC facing right (bit 7 set)? |
24448 | JR C,24452 | Jump if so |
24450 | DEC (HL) | |
24451 | DEC (HL) | |
24452 | INC (HL) | Move ERIC one space forward for the snog (which pushes ERIC through the closed skool gate if he kisses HAYLEY from behind it; this is a bug) |
24453 | LD A,15 | 15: ERIC and HAYLEY kissing |
24455 | CALL 24247 | Adjust ERIC's animatory state, update SRB, and return to 24458 (below) next time |
24458 | CALL 62404 | Make a sound effect |
24461 | LD HL,53523 | Point HL at byte 19 of HAYLEY's buffer |
24464 | LD E,(HL) | Pick up HAYLEY's pre-kiss x-coordinate in E |
24465 | LD L,2 | Point HL at byte 2 of HAYLEY's buffer |
24467 | LD D,(HL) | D=HAYLEY's y-coordinate |
24468 | CALL 30653 | Restore HAYLEY's pre-kiss coordinates and animatory state and update SRB |
24471 | LD H,210 | 210=ERIC |
24473 | JP 24290 | Detach ERIC from HAYLEY's embrace |
Prev: 24328 | Up: Map | Next: 24476 |