---
von: heli
an: atlas
datum: 2026-04-26 15:00
status: neu
betrifft: Heli-Modul — Sammelbericht der letzten beiden Tage
---

# Heli — Sammelbericht 2026-04-25 / 2026-04-26

Hier ein Sammelreport, was beim Heli-Modul in den letzten beiden Tagen
gelaufen ist. Vieles war Feedback-getrieben durch Thomas-Durchspielrunden,
einiges hat zu Konzept-Änderungen geführt.

## 1. Audio-Architektur — komplett neu

Das alte „jeder ruft, wer zuerst kommt"-Audio-Chaos ist weg. Neue
**Speech-Pipe** in allen drei HTMLs (start, landing, game) mit identischen
Regeln:

- Sprach-Audios laufen **seriell**, nie zwei gleichzeitig
- 400 ms Pause zwischen Clips
- TTL pro Clip 10 s — veraltete Items werden verworfen statt verspätet gespielt
- Prioritäten: 1 (low: Lesson) · 2 (normal: Pilot/Tower) · 3 (crash: Strike/Takeover)
- Crash-Audio bricht laufenden Clip ab und leert die Queue
- Geräusche (Rotor, Vögel, Crash-Sound, Donner) laufen über separate Kanäle
  und sind unabhängig
- Phase-Wechsel räumt auf (Flight-Pipe geleert beim Wechsel zur Landing,
  Landing-Pipe geleert in `silenceAll`)

Plus zwei kritische Bugs gefixt:
- **Audio-Preload-Bug**: alte Code-Pfad fetchte ohne `r_`-Präfix, neue Files
  liegen aber mit `r_`-Präfix. Fallback-Logik eingebaut (probiert beide).
- **Phase-Übergang flight→landing**: Flight-Audios werden gestoppt, sonst
  quaken Richtungs-Audios in die Landung rein.

## 2. Faktentreue durchgesetzt — Heiligtums-Tabelle

Thomas-Direktive: „Erstes didaktisches Gesetz: Nie etwas Falsches sagen.
Vereinfachen ist erlaubt, nicht verfälschen." Daraufhin Audit aller Texte:

**Korrigierte Falschaussagen:**
- C7 Lienz: „Drau entwässert zur Adria" → korrigiert zu „mündet später in die Donau"
- m19 Glockner: „Grenze Salzburg–Kärnten" → „Grenze Tirol–Kärnten"
- m17 Tauerntunnel: „durchsticht die Hauptkette der Alpen" → „die Niederen Tauern"
- m18 Wolfgangsee: „Sole über den See nach Ebensee" → „Name vom Salinen-Eigentum"
- m25 Karawankentunnel: „achtkommacht km" → „knapp acht km"
- m23 Wörthersee: „wärmster Badesee Österreichs" → „einer der wärmsten"
- m8 Gaschurn: „höchstes ganzjährig besiedeltes Dorf" → Aussage entfernt (Partenen ist höher)
- „Bregenz Tower" überall → ist erfunden, gibt es nicht. Korrigiert zu **„Innsbruck Tower"** (real zuständiger Sektor für Vorarlberg)
- AFIS-Plätze (C2/C3/C14/C16) hatten erfundene Tower → jetzt **„Wien Information"** (reale FIS-Frequenz)

**Stützpunkt-Tabelle als „Heiligtum"** etabliert:
- 14 aktive Stützpunkte (alle ÖAMTC-Christophorus 1–16)
- **ARA Hohenems aus dem Spielbetrieb raus** — ARA ist real in Reutte (Tirol),
  nicht Vorarlberg. War didaktisch falsch.
- m2 (A14), m5 (Bregenz), m6 (Mellau) jetzt alle bei C8 Nenzing
- **Hohenems bleibt als Polizei-POI** auf der Plan-Karte (👮-Marker, dunkelblau).
  Klick öffnet Popup mit EC135-Bild und Erklärung: Polizeihubschrauber
  Vorarlberg, kein Patiententransport — das ist Aufgabe des Christophorus 8
  in Nenzing.

## 3. Audio neu organisiert

Geo-Lehrinhalte gehören in die **Vorbereitung**, nicht in den akuten Einsatz.
Daher umgebaut:

- **Phase 2 (Routenplanung):** Beim Briefing-Screen mit den vollständigen
  Wegpunkten wird `r_tower_geo_<missionId>` gespielt — der ausführliche
  Geografie-Lernstoff zum Ziel.
- **Phase 5 (Einsatz):** Tower-Antwort beim Anflug ist jetzt **knapp und
  sachlich** — keine Lehr-Erklärung während Patientenrettung.

Plus: Audios reduziert im Kartenflug (jedes 2. Segment, Heli-Intro nur
einmal pro Flug).

## 4. Plan-Phase verbessert

- Mission-Waypoints als kleine rote Kreispunkte auf der Karte sichtbar
  (Orientierungshilfe, keine Lösung)
- 16-teilige Windrose mit fixer Kompassnadel + goldenem Live-Kurspfeil
  der Maus folgend
- Max 3 Fehler-Hinweise sichtbar, durchnummeriert
- Pilot-Takeover nach 15 Fehlversuchen **pro Wegpunkt** (Reset bei korrekt) →
  keine Sterne für die Zielsuche

## 5. Landing-Phase

- Pad-Y-Toleranzfenster (vy>12, h.y in pad.y±18) verhindert das passive
  „Durchfliegen wird als Landung erkannt"-Bug
- hover_pickup zweistufig: Phase A klinkt Haken ein, Phase B markiert
  Patient als gerettet erst wenn Winch oben
- disembark-Duration 4 → 6 s
- Autobahn: 6–8 Gaffer + fahrender Einsatzwagen (Polizei/Rettung mit
  Blaulicht), Pilot-Warnung bei Naähe, Strike bei Berührung
- Proximity-Vögel mit 15 s Cooldown (statt Dauerkrähen)

## 6. UX

- **iPad-Joystick** in start.html und landing.html: Kreis mit gefedertem
  grünem Stick, ersetzt die drei Pfeil-Buttons. Diagonal-Steuerung möglich.
  Aktiviert per `@media(pointer:coarse)`.
- HUD vereinheitlicht (Speed, Verbrauch, G-Kraft) zwischen start und landing
- Verbrauchsanzeige physikalisch korrekt: Flap + Steigflug = mehr Sprit,
  Sinkflug = weniger
- **Inspect-Modus** `?inspect=1` in start.html und landing.html — zeigt
  Konturen aller Objekte, Drag scrollt, Klick öffnet Info-Panel rechts.
  Hilfsmittel zum Debuggen schwebender Objekte.

## 7. Mission-Routen

Detour-Routen begradigt: m1, m11, m13, m15, m18, m20, m21. Beispielsweise
m15 A1 Sattledt war vorher `linz_c10 → linz → wels → sattledt` — der Sprung
nach Linz-Stadt war Detour. Jetzt direkt `linz_c10 → wels → sattledt`.

## 8. Integrations-Auftrag (alt) — komplett

Der Auftrag vom 23.04. ist durchgelaufen:
- mode-check im Wrapper (ggs_session → class_modules → forcedLevel)
- Forced-Level-Start (Level 1=easy, 2=medium, 3=hard, Mission random aus Pool)
- Assessment-Calls an drei Hooks (start, 30 s-Ping, completed)
- End-Screen auf `.ggs-endscreen`-Komponente

**Offen vom alten Auftrag:** Pre/Post-Quiz-Hook — wartet auf eine Quiz-UI-
Komponente im Design-System. Kein Drama, kann später nachgezogen werden.

## 9. Briefing-Musik

- Patagonia Stringmap v1 + v2 aus deinem Pool integriert.
- v1 für Auftragswahl + End-Screen, v2 für Briefing-Overlays.
- Audio-Tag mit MutationObserver auf `.overlay.show` — Musik startet/stoppt
  automatisch, fadet 300 ms ein/aus.
- Audio-Gate für Funksprüche bei offenem Overlay → Musik und Funk laufen
  nie gleichzeitig.

## 10. Tools / Übersichten

Drei interne Werkzeuge gebaut:
- [audio-overview.html](App/sims/heli/audio-overview.html) — alle Audios
  pro Mission linear, mit Nummer (z.B. `M17-12`) zum Referenzieren
- [audio-matrix.html](App/sims/heli/audio-matrix.html) — Bundesland →
  Stützpunkt → Heli → Audios → Missionen, hierarchisch
- Inspect-Modus `?inspect=1` in beiden Touch-HTMLs

## 11. Audio-Stand

Aktuell **ca. 360 MP3s** im sounds/radio-Ordner. Davon ca. 100 alte
Pilot-/Strike-/Ouch-Witze von früher (nicht mehr referenziert, bleiben
als Rollback-Option auf Platte). Aktiv genutzt: ca. 260 Clips —
personalisiert pro Heli + missionsspezifische Geo-Audios + Lesson-Pool +
neue Heli-Flug-Intros.

OpenAI TTS gpt-4o-mini-tts mit Stimme `nova` und Speed 1.12, alle Pilot-
und Tower-Audios laufen durch den Bandpass-Filter (Walkie-Talkie-Sound).

## Status

Bereit für Durchspielrunden — das gröbste Audio-Chaos und die didaktischen
Falschaussagen sind raus. Nichts blockiert.

Wenn du die `.ggs-quiz`-Komponente fertig hast, baue ich Pre/Post-Quiz ein.

— Heli
