|  | Routines | 
| Prev: 36385 | Up: Map | Next: 36471 | 
| 
Used by the routine at 48096.
 
 | ||||||||
| 36390 | LD BC,35081 | Load BC with address of script data for Berk facing out of screen, ready to respond to control input | ||||||
| 
This entry point is used by the routine at 36385.
 | ||||||||
| 36393 | LD (34266),BC | Store script data address in BC at 34266 | ||||||
| 36397 | LD A,(34208) | Load E with game flags... | ||||||
| 36400 | LD E,A | ... | ||||||
| 36401 | LD A,(34221) | Load A with class of entity currently held by Berk... | ||||||
| 36404 | CP 17 | ...and if this is not 17 (key)... | ||||||
| 36406 | JR NZ,36429 | ...then skip ahead to 36429 | ||||||
| 
Berk is holding a key
 | ||||||||
| 36408 | LD A,7 | Set door colour to 7 (white, i.e. unlocked)... | ||||||
| 36410 | LD (50712),A | ... | ||||||
| 36413 | CALL 36296 | Make Berk drop the key and load IY with its complex state data address | ||||||
| 36416 | LD (IY+1),0 | Set depth of key to 0 (i.e. out of display) | ||||||
| 36420 | SET 4,E | Set level-exit-door-unlocked flag... | ||||||
| 36422 | LD A,E | ... | ||||||
| 36423 | LD (34208),A | ... | ||||||
| 36426 | JP 48096 | Advance HL to next script instruction and execute | ||||||
| 
Berk is not holding a key
 | ||||||||
| 36429 | BIT 4,E | If level-exit-door-unlocked flag is reset... | ||||||
| 36431 | JR Z,36462 | ...then skip ahead to 36462 | ||||||
| 36433 | LD D,A | Load D with class of entity currently held by Berk | ||||||
| 36434 | LD A,(34207) | Set zero flag if current level is level 4... | ||||||
| 36437 | CP 4 | ... | ||||||
| 36439 | LD A,D | Load A with class of entity currently held by Berk | ||||||
| 36440 | JR NZ,36446 | If zero flag is not set (i.e. we are not on level 4) then skip ahead to 36446 | ||||||
| 
Level 4
 | ||||||||
| 36442 | CP 19 | Set zero flag if class of entity currently held by Berk is 19 (Boni) | ||||||
| 36444 | JR 36448 | Skip ahead to 36448 | ||||||
| 
Not level 4
 | ||||||||
| 36446 | CP 18 | Set zero flag if class of entity currently held by Berk is 18 (Drutt) | ||||||
| 36448 | JR NZ,36462 | If zero flag is not set (i.e. Berk is not holding Drutt on levels 1-3 or Boni on level 4) then skip ahead to 36462 | ||||||
| 
Berk is holding the correct character
 | ||||||||
| 36450 | CALL 48417 | Remove Berk's current power and reset sweet / mushroom / edible eyes / sausage to its original state | ||||||
| 36453 | CALL 36638 | Advance to next level and if back-to-level-1 then exit this routine and make Berk start falling | ||||||
| 
New level is not level 1
 | ||||||||
| 36456 | LD HL,(34266) | Load HL with script data address stored at 34266... | ||||||
| 36459 | JP 48098 | ...and execute | ||||||
| 
Door is locked or Berk is not holding the correct character
 | ||||||||
| 36462 | CALL 36296 | Make Berk drop the entity he is holding and load IY with its complex state data address | ||||||
| 36465 | CALL 53667 | Set Berk-has-been-killed flag | ||||||
| 36468 | JP 48096 | Advance HL to next script instruction and execute | ||||||
| Prev: 36385 | Up: Map | Next: 36471 |