Routines |
Prev: 36625 | Up: Map | Next: 36753 |
Used by the routine at 36390.
|
||||
36638 | LD A,(34208) | Set update-scores-and-display flag... | ||
36641 | SET 5,A | ... | ||
36643 | LD (34208),A | ... | ||
36646 | LD IY,(34256) | Load IY with address of complex state data for door just interacted with | ||
36650 | LD A,(IY+9) | Load A with destination level from door's state data... | ||
36653 | LD (34207),A | ...and set current level to this value | ||
36656 | CP 1 | If destination level is not level 1... | ||
36658 | JR NZ,36725 | ...then skip ahead to 36725 | ||
Destination level is level 1 (i.e. level 4 completed)
|
||||
36660 | CALL 36753 | Load IX with address of Berk's complex state data and set his horizontal position to match level 1's entry door | ||
36663 | SET 2,(IX+10) | Set back-to-level-1 flag | ||
36667 | LD (IX+0),10 | Set Berk's room to 10 | ||
36671 | LD (IX+4),103 | Set y-coordinate of Berk's top edge to 103 | ||
36675 | LD (IX+6),109 | Set y-coordinate of Berk's bottom edge to 109 | ||
36679 | LD IY,43606 | Load IY with address of Boni's entry in level 1's state data for complex entities... | ||
36683 | LD (34256),IY | ...and store at 34256 | ||
36687 | CALL 48850 | Have Berk hold Boni, and position him appropriately between Berk's hands | ||
36690 | LD (IY+1),1 | Set Boni's depth to 1 | ||
36694 | LD (IY+0),10 | Set Boni's room to 10 | ||
36698 | CALL 36296 | Make Berk drop the entity he is holding and load IY with its complex state data address | ||
36701 | CALL 55516 | Set Berk's can-fall flag and set his initial velocity factor to 2 | ||
36704 | CALL 36739 | Lock level 1's exit door and cycle attributes (full-screen) | ||
36707 | POP BC | Remove top value from stack (i.e. return address to routine that called this routine) | ||
36708 | LD HL,36625 | Overwrite Drutt's entry in level 1's state data for complex entities with data at 36625... | ||
36711 | LD DE,43671 | ... | ||
36714 | LD BC,13 | ... | ||
36717 | LDIR | ... | ||
36719 | LD HL,35359 | Point HL at script data for Berk starting to fall downwards... | ||
36722 | JP 48098 | ...and execute | ||
Destination level is not level 1
|
||||
36725 | CALL 36753 | Set Berk's horizontal position to match level 1's entry door | ||
36728 | LD IY,(34242) | Load IY with address of current level's complex state data for Drutt... | ||
36732 | LD (34256),IY | ...and store at 34256 | ||
36736 | CALL 48850 | Have Berk hold Drutt, and position him appropriately between Berk's hands | ||
36739 | LD HL,34208 | Reset level-exit-door-unlocked flag... | ||
36742 | RES 4,(HL) | ... | ||
36744 | LD A,5 | Set door colour to 5 (cyan, i.e. locked)... | ||
36746 | LD (50712),A | ... | ||
36749 | CALL 36616 | Cycle attributes (full-screen), clear display buffers and paint red areas outside current room | ||
36752 | RET | Return |
Prev: 36625 | Up: Map | Next: 36753 |