Routines |
Prev: 42266 | Up: Map | Next: 42486 |
Used by the routine at 41211.
|
||||
42381 | LD IX,45495 | Point IX at start of state data for snake (level 4) | ||
42385 | LD IY,(34240) | Load IY with address of current level's complex state data for Berk | ||
42389 | LD HL,45507 | Load HL with address of snake's attack progress index | ||
42392 | LD A,(HL) | If snake's attack progress index is not zero... | ||
42393 | OR A | ... | ||
42394 | JR NZ,42415 | ...then skip ahead to 42415 | ||
Snake's attack progress index is zero
|
||||
42396 | LD A,(IY+0) | If Berk's room is not 5 (snake's room)... | ||
42399 | CP 5 | ... | ||
42401 | RET NZ | ...then return | ||
42402 | BIT 7,(IY+12) | If Berk's is-jumping flag is set... | ||
42406 | JR NZ,42413 | ...then skip ahead to 42413 | ||
42408 | BIT 0,(IY+9) | If snake's must-process-current-script-data flag is set... | ||
42412 | RET NZ | ...then return | ||
42413 | INC (HL) | Increase snake's attack progress index | ||
42414 | RET | Return | ||
Snake's attack progress index is not zero
|
||||
42415 | CP 8 | If snake's attack progress index is less than 8... | ||
42417 | JR C,42454 | ...then jump to 42454 (snake moving right) | ||
42419 | CP 15 | If snake's attack progress index is less than 15... | ||
42421 | JR C,42459 | ...then jump to 42459 (snake preparing to pounce) | ||
42423 | CP 17 | If snake's attack progress index is less than 17... | ||
42425 | JR C,42461 | ...then jump to 42461 (snake pouncing) | ||
42427 | JR Z,42480 | If snake's attack progress index is 17 then jump to 42480 (snake finished pouncing) | ||
Snake's attack progress index is greater than 17
|
||||
42429 | LD (HL),20 | Set snake's attack progress index to 20 | ||
42431 | LD BC,42648 | Set snake's graphic layout data address to 42648... | ||
42434 | CALL 42512 | ...(snake, mouth closed, with animated tongue) | ||
42437 | LD A,(IX+5) | If x-coordinate of snake's left edge is not 83... | ||
42440 | CP 83 | ... | ||
42442 | JR NZ,42447 | ...then move snake left one character and return | ||
42444 | LD (HL),0 | Set snake's attack progress index to 0 | ||
42446 | RET | Return | ||
This entry point is used by the routine at 41961.
|
||||
42447 | DEC (IX+5) | Decrease x-coordinates of left and right edges of entity at IX by one... | ||
42450 | DEC (IX+7) | ... | ||
42453 | RET | Return | ||
Snake's attack progress index is less than 8
|
||||
42454 | INC (HL) | Increase snake's attack progress index | ||
42455 | CALL 42505 | Move snake right one character | ||
42458 | RET | Return | ||
Snake's attack progress index is 8 or more, but less than 15
|
||||
42459 | INC (HL) | Increase snake's attack progress index | ||
42460 | RET | Return | ||
Snake's attack progress index is 15 or more, but less than 17
|
||||
42461 | LD A,(IY+6) | If the y-coordinate of Berk's bottom edge is less than 116... | ||
42464 | CP 116 | ... | ||
42466 | JR C,42429 | ...then jump back to 42429 | ||
42468 | CALL 42486 | Open snake's mouth and set Berk-has-been-killed flag if snake and Berk have collided | ||
42471 | LD B,4 | Move snake right four characters... | ||
42473 | CALL 42505 | ... | ||
42476 | DJNZ 42473 | ... | ||
42478 | INC (HL) | Increase snake's attack progress index | ||
42479 | RET | Return | ||
Snake's attack progress index is 17
|
||||
42480 | CALL 42486 | Open snake's mouth and set Berk-has-been-killed flag if snake and Berk have collided | ||
42483 | LD (HL),20 | Set snake's attack progress index to 20 | ||
42485 | RET | Return |
Prev: 42266 | Up: Map | Next: 42486 |