Prev: 40595 Up: Map Next: 40711
40608: Show Ending Screen
Used by the routine at Draw_Room.
Shows the screen for escaping from the Underwurlde and then shows the game over screen. It does not return.
The screen says CONGRATULATIONS and YOU HAVE ESCAPED FROM THE UNDERWURLDE, and then gives the name of the next adventure, which depends on the room x of Sabreman: 3 for KNIGHT LORE, 9 for PENTAGRAM and anything else for MIRE MARE. The two letters A of PENTAGRAM are drawn as star sprites (see Ending_Text).
This is where the game ends if Sabreman reaches room y 255 (see Draw_Room).
PENTAGRAM KNIGHT LORE MIRE MARE
ending-pentagram ending-knight-lore ending-mire-mare
Show_Ending_Screen 40608 LD A,71 Set the attribute to bright white (71).
40610 LD (36584),A Store it as the attribute for printing (Current_MenuAttribute).
40613 LD DE,40717 Point at the text CONGRATULATIONS (Ending_Text_Congratulations).
40616 LD HL,12352 Set the x position to 64 and the y position to 48 (12352).
40619 CALL MenuWriteText Print the text.
40622 LD DE,40779 Point at the text YOU HAVE ESCAPED FROM (Ending_Text_You_Have_Escaped_From).
40625 LD HL,18472 Set the x position to 40 and the y position to 72 (18472).
40628 CALL MenuWriteText Print the text.
40631 LD DE,40801 Point at the text THE UNDERWURLDE (Ending_Text_The_Underwurlde).
40634 LD HL,24640 Set the x position to 64 and the y position to 96 (24640).
40637 CALL MenuWriteText Print the text.
40640 LD DE,40817 Point at the text YOUR NEXT ADVENTURE IS (Ending_Text_Your_Next_Adventure_Is).
40643 LD HL,30760 Set the x position to 40 and the y position to 120 (30760).
40646 CALL MenuWriteText Print the text.
40649 LD H,144 Set the y position for the name of the next adventure to 144.
40651 LD A,(36636) Fetch the room x of Sabreman.
40654 CP 3 Jump to Show_Ending_Screen_Knight_Lore if the room x is 3.
40656 JR Z,Show_Ending_Screen_Knight_Lore
40658 CP 9 Jump to Show_Ending_Screen_Pentagram if the room x is 9.
40660 JR Z,Show_Ending_Screen_Pentagram
40662 LD DE,40757 Point at the text MIRE MARE (Ending_Text_Mire_Mare).
40665 LD L,88 Set the x position to 88.
Show_Ending_Screen_Print_Text 40667 CALL MenuWriteText Print the text.
Show_Ending_Screen_Wait_For_Key 40670 CALL Wait_For_Key Wait for key 0 to be pressed.
40673 JP Show_Game_Over Jump to Show_Game_Over to show the game over screen.
The room x is 3.
Show_Ending_Screen_Knight_Lore 40676 LD DE,40732 Point at the text KNIGHT LORE (Ending_Text_Knight_Lore).
40679 LD L,80 Set the x position to 80.
40681 JR Show_Ending_Screen_Print_Text Jump to Show_Ending_Screen_Print_Text to print the text.
The room x is 9. The text PENTAGRAM leaves a gap of two cells for each A, which is filled by a star.
Show_Ending_Screen_Pentagram 40683 LD DE,40744 Point at the attribute and the text PENT GR M (Ending_Text_Pentagram).
40686 LD L,80 Set the x position to 80.
40688 CALL PrintStringColour Print the text using the attribute at the start of the string.
40691 LD IX,40711 Point at the object record of the star (Ending_Text).
40695 LD (IX+1),112 Set the x position of the star to 112.
40699 CALL Update_Object_Sprite_Draw Draw the first star.
40702 LD (IX+1),144 Set the x position of the star to 144.
40706 CALL Update_Object_Sprite_Draw Draw the second star.
40709 JR Show_Ending_Screen_Wait_For_Key Jump to Show_Ending_Screen_Wait_For_Key to wait for a key.
Prev: 40595 Up: Map Next: 40711