|  | Routines | 
| Prev: 37062 | Up: Map | Next: 37205 | 
| 
Used by the routine at 37062.
 
 | ||||||||||
| 37085 | CALL 54768 | Check entity at IX for collision with another entity at same depth whose interaction-(11,6) flag is set... | ||||||||
| 37088 | JR C,37104 | ...and if no collision occurred, then skip ahead to 37104 | ||||||||
| 37090 | CP 31 | If collision was not with entity of class 31 (Berk)... | ||||||||
| 37092 | JR NZ,37100 | ...then skip ahead to 37100 | ||||||||
| 37094 | CALL 53667 | Set Berk-has-been-killed flag | ||||||||
| 37097 | JP 48096 | Advance HL to next script instruction and execute | ||||||||
| 37100 | CP 18 | If collision was with entity of class 18 (Drutt)... | ||||||||
| 37102 | JR Z,37111 | ...then skip ahead to 37111 | ||||||||
| 37104 | CALL 54890 | Check entity at IX for collision with another entity (in reverse order) at next depth level into screen whose interaction-(11,7) flag is set and if collision was not with entity of class 18 (Drutt) then skip ahead to 37128 | ||||||||
| 37107 | CP 18 | |||||||||
| 37109 | JR NZ,37128 | |||||||||
| 37111 | BIT 6,(IY+10) | If Drutt's can-fall flag is set... | ||||||||
| 37115 | JR NZ,37128 | ...then skip ahead to 37128 | ||||||||
| 37117 | SET 6,(IY+10) | Set Drutt's can-fall flag | ||||||||
| 37121 | LD (IY+12),2 | Set Drutt's velocity factor to 2 | ||||||||
| 37125 | JP 48096 | Advance HL to next script instruction and execute | ||||||||
| 37128 | BIT 0,(IX+9) | If bat's must-process-current-script-data flag is set... | ||||||||
| 37132 | JP NZ,48096 | ...then jump to 48096 (advance HL to next script instruction and execute) | ||||||||
| 37135 | LD A,(34208) | If Drutt-mode flag is set... | ||||||||
| 37138 | BIT 0,A | ... | ||||||||
| 37140 | JR NZ,37148 | ...then skip ahead to 37148 | ||||||||
| 37142 | LD IY,(34240) | Load IY with address of current level's complex state data for Berk | ||||||||
| 37146 | JR 37152 | Skip ahead to 37152 | ||||||||
| 37148 | LD IY,(34242) | Load IY with address of current level's complex state data for Drutt | ||||||||
| 
At this point, IY points to the complex state data entry for the current character.
 | ||||||||||
| 37152 | LD A,(IY+0) | If current character's current room is not the same as the bat's... | ||||||||
| 37155 | CP (IX+0) | ... | ||||||||
| 37158 | JP NZ,48096 | ...then jump to 48096 (advance HL to next script instruction and execute) | ||||||||
| 37161 | LD A,(IY+7) | If the current character's right side... | ||||||||
| 37164 | CP (IX+5) | ...is to the left of the bat's left side... | ||||||||
| 37167 | JR C,37194 | ...then skip ahead to 37194 | ||||||||
| 37169 | LD A,(IX+7) | If the bat's right side... | ||||||||
| 37172 | CP (IY+5) | ...is to the left of the current character's left side... | ||||||||
| 37175 | JR C,37183 | ...then skip ahead to 37183 | ||||||||
| 37177 | LD HL,37024 | Point HL at script data for bat attacking... | ||||||||
| 37180 | JP 48098 | ...and execute | ||||||||
| 37183 | LD A,(IX+7) | If the x-coordinate of the bat's right side is less than 130... | ||||||||
| 37186 | CP 130 | ... | ||||||||
| 37188 | JP C,48615 | ...then move bat right by one character | ||||||||
| 37191 | JP 48096 | Advance HL to next script instruction and execute | ||||||||
| 37194 | LD A,101 | If the x-coordinate of the bat's left side is greater than 101... | ||||||||
| 37196 | CP (IX+5) | ... | ||||||||
| 37199 | JP C,48660 | ...then move bat left by one character | ||||||||
| 37202 | JP 48096 | Advance HL to next script instruction and execute | ||||||||
| Prev: 37062 | Up: Map | Next: 37205 |