//go:build js && wasm
// +build js,wasm

package main

import (
	"log"

	"github.com/hajimehoshi/ebiten/v2"
	"github.com/skip2/go-qrcode"
)

func (g *Game) notifyPresentationStarted_Platform(roomID string) {
	// Wir generieren den QR Code hier als PNG Bytes.
	joinURL := "https://escape-from-school.de/?room=" + roomID
	pngData, _ := qrcode.Encode(joinURL, qrcode.Medium, 256)
	g.notifyPresentationStarted(roomID, pngData)
}

func (g *Game) updatePresentationState_Platform() {
	g.updatePresentationState()
}

func main() {
	log.Println("🚀 WASM Version startet...")

	// Spiel initialisieren
	game := NewGame()

	// JavaScript Bridge registrieren (für HTML-Menü Kommunikation)
	game.setupJavaScriptBridge()

	// Signal an JavaScript dass WASM vollständig geladen ist
	game.notifyWasmReady()

	// Spiel ohne eigenes Menü starten - HTML übernimmt das Menü
	// Das Spiel wartet im Hintergrund bis startGame() von JavaScript aufgerufen wird
	log.Println("⏳ Warte auf Start-Signal vom HTML-Menü...")

	// WICHTIG: Keine feste WindowSize auf WASM - Layout() regelt die Größe dynamisch
	ebiten.SetWindowTitle("Escape From Teacher")
	ebiten.SetTPS(60)
	ebiten.SetVsyncEnabled(true)

	if err := ebiten.RunGame(game); err != nil {
		log.Fatal(err)
	}
}
