(engine: VisualNovelEngine, screen: string)
| 158 | } |
| 159 | |
| 160 | export function showScreen (engine: VisualNovelEngine, screen: string): void { |
| 161 | // Capture a screenshot before hiding the game screen if we're opening the save screen. |
| 162 | const shouldCapture = screen === 'save' |
| 163 | && engine.setting ('Screenshots') === true |
| 164 | && engine.global ('playing') === true |
| 165 | && engine.element ().find ('[data-screen="game"]').isVisible (); |
| 166 | |
| 167 | if (shouldCapture) { |
| 168 | engine._pendingScreenshot = captureGameScreenshot (engine); |
| 169 | engine._pendingScreenshot.finally (() => revealScreen (engine, screen)); |
| 170 | return; |
| 171 | } |
| 172 | |
| 173 | // Leaving the save screen discards any pending capture |
| 174 | if (screen !== 'save') { |
| 175 | engine._pendingScreenshot = null; |
| 176 | } |
| 177 | |
| 178 | revealScreen (engine, screen); |
| 179 | } |
| 180 | |
| 181 | /** |
| 182 | * Capture the current game screen as a JPEG Blob |
no test coverage detected