WELTKARTE mit Levelauswahl -- Pfad/Punkte/Namen live aus dem Binary

game/worldmap.py: parst Kartenpfad, Levelpunkt-Positionen und die 22
Levelnamen zur Laufzeit aus START.EXE (NE-Datensegment, Anker-Suche,
Fallback W1L1). Links/Rechts laesst die Kartenfigur (Mini-Kopf KARTE4-7
je Charakter) die Original-Wegpunkte ablaufen, der aktive Levelpunkt
blinkt orange/blau (KARTE0/2 -- Blinksequenz stand exakt so in der
Binary-Animationstabelle), Space/Return startet das Level, ESC -> Menue.
Kartenposition bleibt ueber Levelbesuche erhalten.

Level ohne handgepflegte LEVEL_INFO erhalten einen generischen Spawn
(erste Bodenstelle) -- damit sind ALLE 22 Level anwaehlbar und spielbar
(Basis-Physik; Wasser/Tueren dort folgen mit den echten Leveldaten).

E2E: Karte -> laufen -> W1L3 spielen -> zurueck -> W1L2 -> QUIT rc=0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-25 14:18:30 +02:00
co-authored by Claude Fable 5
parent cdf6da6f7d
commit 68be969e0d
4 changed files with 251 additions and 6 deletions
+30
View File
@@ -1681,3 +1681,33 @@ exakt uebernommen, Idle 2.8 fps.
**Offen:** globale Sprite-Basis-Offsets pro BOB entschluesseln (dann sind
ALLE Animationszuordnungen inkl. Smacks-Sprung exakt abzulesen); Karten-
pfad in die Weltkarte einbauen; Cheat-Mode-Aktivierung finden.
## 25.07.2026 (13) -- WELTKARTE MIT LEVELAUSWAHL (Daten aus dem Binary)
game/worldmap.py: parst zur Laufzeit Pfadsegmente, Levelpunkt-Positionen
und die 22 Levelnamen direkt aus START.EXE (NE-Datensegment; Anker-Suche
statt fester Offsets, Fallback auf nur-W1L1 wenn Parse scheitert).
Struktur pro Level: Wegpunkte (flag 1) -> Standpunkt (flag 0) ->
Label-Position; Sonder-Records mit ffff-Koordinaten (Weltwechsel) werden
uebersprungen. Ergebnis: 21 Segmente + 22 Namen (letztes W3L7-Label fehlt
noch -- Randfall im Parser, spaeter).
Karten-Sprites entschluesselt: KARTE0/2 = grosser oranger/blauer
Levelpunkt (Blink-Animation laut Binary-Tabelle [100] 900,902,900!),
KARTE1/3 = kleine Punkte, KARTE4-7 = MINI-KOEPFE (Tony/Smacks/Toucan/
Coco) als Kartenfigur, KARTE8/9 = Seeschlangen-/Baum-Deko-Frames.
Bedienung: Links/Rechts wandert zum vorigen/naechsten Levelpunkt (die
Figur laeuft die Original-Wegpunkte ab, ~0.18s/Punkt), Space/Return
startet das angewaehlte Level, ESC -> Menue. Der aktive Punkt blinkt
orange/blau (0.5s) wie im Original-Datensatz. Position bleibt ueber
Level-Besuche erhalten (map_state).
Level ohne handgepflegte LEVEL_INFO bekommen einen GENERISCHEN Spawn
(erste Spalte mit Boden + 2 Luftzellen darueber); Wasser/Tuer dort noch
None. Alle 22 Level sind anwaehlbar (bewusst -- Test-freundlich, quasi
eingebauter Cheat-Mode ;-).
E2E verifiziert: Karte -> 2x Right (Figur laeuft) -> W1L3 gestartet
(generischer Spawn) -> ESC -> Karte (Position gemerkt) -> Left -> W1L2
gestartet -> ESC/ESC/QUIT rc=0. --once exit 0.