diff --git a/App/sims/heli/game.html b/App/sims/heli/game.html
index 876dcea..c180668 100644
--- a/App/sims/heli/game.html
+++ b/App/sims/heli/game.html
@@ -182,6 +182,7 @@
+
@@ -2043,7 +2044,21 @@ function startHeliAudioEngineForPlan() {
});
window.heliAudioEngine.loadAndStart('plan').catch(function(err){
console.warn('[heli-engine] startPhase failed', err);
+ // Audio konnte nicht starten (Ton aus, Ladefehler, Autoplay blockiert) →
+ // die Wegpunkt-Anweisung trotzdem sofort als Card zeigen, sonst steht
+ // ein tonloser Spieler ohne Hinweis da. Bleibt bis zum Fund stehen.
+ if (game.phase === 'plan' && game.planIndex < game.route.length) showPlanInstruction();
});
+ // Sicherheitsnetz unabhängig vom Audio: falls das wp-sichtbar-Event nach kurzer
+ // Zeit nicht gekommen ist (z. B. stummes Abspielen ohne Events), zeigen wir die
+ // Anweisung selbst an — jede Audio-Meldung hat so ihren sichtbaren „Untertitel".
+ clearTimeout(window._heliPlanCardFallback);
+ window._heliPlanCardFallback = setTimeout(function(){
+ var pi = document.getElementById('planInstruction');
+ if (game.phase === 'plan' && game.planIndex < game.route.length && pi && !pi.innerHTML.trim()) {
+ showPlanInstruction();
+ }
+ }, 5000);
}
// =========================================================
@@ -2543,6 +2558,9 @@ function renderHeliOnboardingStep() {
document.getElementById('heliOnbDots').innerHTML = dots;
var isLast = (heliOnbStep === HELI_ONBOARDING_STEPS.length - 1);
document.getElementById('heliOnbNext').textContent = isLast ? 'Los geht\'s 🚁' : 'Weiter →';
+ // Zurück-Button erst ab Schritt 2 zeigen.
+ var back = document.getElementById('heliOnbBack');
+ if (back) back.style.display = heliOnbStep > 0 ? '' : 'none';
}
function nextHeliOnboarding() {
if (heliOnbStep < HELI_ONBOARDING_STEPS.length - 1) {
@@ -2552,12 +2570,16 @@ function nextHeliOnboarding() {
skipHeliOnboarding();
}
}
+function prevHeliOnboarding() {
+ if (heliOnbStep > 0) { heliOnbStep--; renderHeliOnboardingStep(); }
+}
function skipHeliOnboarding() {
document.getElementById('heliOnbOverlay').hidden = true;
try { localStorage.setItem('heli.onboardingDone', '1'); } catch (_) {}
}
window.startHeliOnboarding = startHeliOnboarding;
window.nextHeliOnboarding = nextHeliOnboarding;
+window.prevHeliOnboarding = prevHeliOnboarding;
window.skipHeliOnboarding = skipHeliOnboarding;
// Plattform-Convention: GGS_TUTORIAL (siehe live-client.js).
window.GGS_TUTORIAL = { simId: 'heli', title: 'Helikopter-Navigation', replay: function() { startHeliOnboarding(true); } };