Prev: ABB1 Up: Map Next: ABDF
ABBD: Action: Offer Save
Prints the score, asks whether to save, and sets flag bit 02.
Input
F The zero flag is set when the conditions hold
IX Pointer to the script entry
When the condition failed, skip this action.
Action_OfferSave ABBD JP NZ,RunScript_SkipAction_OneByte Jump to RunScript_SkipAction_OneByte if the condition failed.
Show the score, then ask "Want to save the game? Y/N".
ABC0 CALL Print_Scoring Call Print_Scoring to print the score.
ABC3 LD HL,$0016 HL=Messaging_WantToSaveTheGame.
ABC6 CALL PrintCompressedStringAndNewline Call PrintCompressedStringAndNewline to print that compressed string and a newline.
N declines the save and Y writes the position to tape.
SavePrompt_Loop ABC9 CALL GetUserInput Call GetUserInput to read the answer key.
ABCC CP $4E Compare it with "N".
ABCE JR Z,OfferSave_SetFlag Jump to OfferSave_SetFlag if the player declined.
ABD0 CP $59 Compare it with "Y".
ABD2 JR NZ,SavePrompt_Loop Jump to SavePrompt_Loop if the key was neither Y nor N.
ABD4 CALL SaveGame Call SaveGame to save the game to tape.
Remember that the offer was made by setting flag bit 02 then resume the script.
OfferSave_SetFlag ABD7 LD A,$02 Load flag bit 02 into A.
ABD9 CALL SetFlag Call SetFlag to set that flag bit in Flags_GameStates.
ABDC JP RunScript_SkipAction_OneByte Jump to RunScript_SkipAction_OneByte.
Prev: ABB1 Up: Map Next: ABDF