export interface PacmanModule {
canvas: HTMLCanvasElement;
_start_game?: () => void;
_stop_game?: () => void;
_restart_game?: () => void;
locateFile: (path: string) => string;
preRun: unknown[];
// Emscripten error hooks
onAbort?: (what: unknown) => void;
onRuntimeInitialized?: () => void;
}
export type LoadingError =
| { type: "timeout" }
| { type: "script"; message: string }
| { type: "runtime"; message: string };
export interface PacmanWindow extends Window {
Module?: PacmanModule;
pacmanReady?: () => void;
pacmanError?: (error: LoadingError) => void;
SDL_CANVAS_ID?: string;
}
export const getPacmanWindow = (): PacmanWindow => window as unknown as PacmanWindow;