![]() |
Routines |
| Prev: 9171 | Up: Map | Next: 91B2 |
|
Used by the routine at InGameControls.
|
||||||||
| InGame_MoveCursor | 918B | PUSH AF | Stash the keypress on the stack. | |||||
| 918C | LD B,$78 | B=INK: BLACK, PAPER: WHITE (BRIGHT) . | ||||||
| 918E | CALL InGame_UpdateCursorPosition | Call InGame_UpdateCursorPosition. | ||||||
| 9191 | POP AF | Restore the keypress from the stack. | ||||||
| 9192 | CP $04 | Jump to Handler_MoveCursorRight if "right" was pressed. | ||||||
| 9194 | LD A,($91D8) | |||||||
| 9197 | JR Z,Handler_MoveCursorRight | |||||||
|
Else "left" was pressed, so check if there's a slot on the left still to move to.
|
||||||||
| 9199 | OR A | Jump to InGame_MoveCursorLeft if *InGame_HighlightedOption is not zero. | ||||||
| 919A | JR NZ,InGame_MoveCursorLeft | |||||||
|
The cursor IS at the first position, 00 so reset it to the last position +01.
|
||||||||
| 919C | LD A,$03 | A=03. | ||||||
|
Process the "left" action.
|
||||||||
| InGame_MoveCursorLeft | 919E | DEC A | Decrease A by one. | |||||
| 919F | JR InGame_WriteCursorPosition | Jump to InGame_WriteCursorPosition. | ||||||
|
Handle moving the cursor right.
|
||||||||
| Handler_MoveCursorRight | 91A1 | CP $02 | Jump to InGame_MoveCursorRight if the cursor still has slots to the right it can move to, and is not in the last position. | |||||
| 91A3 | JR NZ,InGame_MoveCursorRight | |||||||
|
The cursor IS at the last position, 02 so reset it to the starting position -01.
|
||||||||
| 91A5 | LD A,$FF | A=FF. | ||||||
|
Process the "right" action.
|
||||||||
| InGame_MoveCursorRight | 91A7 | INC A | Increment the cursor position by one. | |||||
|
The cursor position has changed, left or right, both actions follow the same flow.
|
||||||||
| InGame_WriteCursorPosition | 91A8 | LD ($91D8),A | Write A to *InGame_HighlightedOption. | |||||
| 91AB | LD B,$68 | B=INK: BLACK, PAPER: CYAN (BRIGHT) . | ||||||
| 91AD | CALL InGame_UpdateCursorPosition | Call InGame_UpdateCursorPosition. | ||||||
| 91B0 | JR InGameControls_Loop | Jump to InGameControls_Loop. | ||||||
| Prev: 9171 | Up: Map | Next: 91B2 |