use crate::firmware::firmware_state::{AppCrashesStep, FirmwareState}; use crate::firmware::prometeu_context::PrometeuContext; use prometeu_hal::log::{LogLevel, LogSource}; #[derive(Debug, Clone)] pub struct GameRunningStep; impl GameRunningStep { pub fn on_enter(&mut self, ctx: &mut PrometeuContext) { ctx.os.log(LogLevel::Info, LogSource::Pos, 0, "Entering GameRunning".to_string()); } pub fn on_update(&mut self, ctx: &mut PrometeuContext) -> Option { let result = ctx.os.tick(ctx.vm, ctx.signals, ctx.hw); if !ctx.os.logical_frame_active { ctx.hw.gfx_mut().present(); } result.map(|report| FirmwareState::AppCrashes(AppCrashesStep { report })) } pub fn on_exit(&mut self, _ctx: &mut PrometeuContext) {} }