Prev: 41424 Up: Map Next: 41550
41498: Kill Berk if he collides with skeleton
Used by the routine at 41381.
Input
IX Address of complex state data for skeleton (level 4) (45404)
41498 CALL 54768 Check entity at IX for collision with another entity at same depth whose interaction-(11,6) flag is set...
41501 JR C,41513 ...and if no collision occurred, then skip ahead to 41513
41503 CP 31 If collision was not with entity of class 31 (Berk)...
41505 JR NZ,41513 ...then skip ahead to 41513
41507 CALL 53667 Set Berk-has-been-killed flag
41510 JP 48096 Advance HL to next script instruction and execute
The instructions below do a "manual" check for a collision between the skeleton and Berk. See trivia
41513 LD IY,(34240) Load IY with address of current level's complex state data for Berk
41517 LD A,(IY+0) If Berk's current room is not 3 (skeleton's room)...
41520 CP 3 ...
41522 JP NZ,48096 ...then jump to 48096 (advance HL to next script instruction and execute)
41525 LD A,(IX+5) If x-coordinate of skeleton's left edge...
41528 SUB 5 ...is at least five characters to the right of Berk's right edge...
41530 CP (IY+7) ...
41533 JP NC,48096 ...then jump to 48096 (advance HL to next script instruction and execute)
41536 LD A,(IY+6) If y-coordinate of Berk's bottom edge...
41539 CP 116 ...is less than 116...
41541 JP C,48096 ...then jump to 48096 (advance HL to next script instruction and execute)
41544 CALL 53667 Set Berk-has-been-killed flag
41547 JP 48096 Advance HL to next script instruction and execute
Prev: 41424 Up: Map Next: 41550