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>
Stefans Frage nach Disassembly: Byte-Muster-Suche nach Frame-Tabellen in
START.EXE/RTM.EXE ohne Treffer (nicht als nackte Tabellen im Binary);
stattdessen DOSBox-Frameserie (0.12s) mit Tuer-Charakterwechsel zu Smacks:
- Original-Sprung hat eine Absprung-Hocke (Kauer-Frame im Absprungmoment,
dann Streckung) -> JUMP_SQUAT_SECONDS=0.09 eingebaut (alle Charaktere).
- Original dimmt den Level waehrend der Tuer-Sequenz ab -> Overlay
waehrend door_open_t.
- Nebenbei verifiziert: unser Charakter-Menue ist deckungsgleich mit dem
Original (Layout, graue Koepfe fuer nicht verfuegbare Charaktere).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Nicht-Schwimmer koennen im Wasser nicht mehr ducken.
- Herzverlust im Wasser alle 1.5s statt 5s.
- Nach Schaden blinkt die Figur 0.9s (Sichtbarkeits-Toggle; beim Tod
deaktiviert, damit die Anim nicht unsichtbar haengt).
- Tuer-Reinschauen nutzt die echten Sprites: TONY 50 (Rueckenansicht),
SMACKS 48 (Stefans Fund -- jeweils letzter Frame vor den Platzhaltern).
Verifiziert: Duck-Verbot im Wasser, Blink-Muster wechselt, --once exit 0.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Stefans fuenfte Feedback-Runde:
- Nicht-Schwimmer huepfen endlos auf der Wasseroberflaeche (~6px Auto-
Bounce) statt statisch zu stehen; Steuerung und voller Ausstiegs-Sprung
bleiben moeglich. Kein Idle im Wasser.
- Tod bei 0 Herzen: Tony verliert sein HALSTUCH (Frame 38 = Tony ohne
Tuch, Frame 40 = Tuch einzeln -- die Assets waren dafuer gebaut!),
fliegt aus dem Bild, Tuch flattert herab; Smacks analog mit Kappe
(26/29). Danach Respawn mit Leben-1, bei 0 Leben zurueck zur Karte.
- Tuer-Peek: Figur zeigt waehrend der Offen-Sekunde einen Reinschau-Frame.
- Duck-Kamera: 0.2s-Grace gegen X11-Autorepeat-/on_ground-Flackern
("Kamera geht sporadisch wieder rauf").
Verifiziert: Bounce-Amplitude ~6px endlos, voller Sprung aus dem Wasser,
Tod-Sprites gesichtet (Tuch/Kappe), --once exit 0, E2E rc=0.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Stefans vierte Feedback-Runde:
- Sprites sinken 4px in den Boden ein (Fuesse standen sichtbar UEBER den
Blaettern; Original laesst sie einsinken).
- Echte Steh-Frames: Tony 16/17, Smacks-Walkzyklus ohne die Steh-Frames
12-15 ("letzter Lauf-Frame blieb beim Anhalten stehen").
- Tuer: DOORS[0] ist die OFFENE Tuer -> Ruhe = Tile-Tuer + Kopf-Schild
(DOORS[5]); ALT oeffnet die Tuer sichtbar und nach 1s folgt die Aktion
(Charakterwechsel-Menue) -- Muster fuer alle Tueren inkl. der
Schluessel-Tueren (DOORS 1-4).
- Slope-Landung: Swept-Kollision ueber alle ueberstrichenen Zeilen +
Herkunftsbedingung -- kein Durchfallen mehr bei schnellen Landungen
(Stress-Test: 50 Drops ueber die Hangbreite, 0 Durchfaller).
- Kamera: Figur steht bei ~75% Bildhoehe; DUCKEN gehalten (>=1.2s) faehrt
die Kamera sanft ~40px nach unten (Wasser unter Abgruenden sichtbar).
Verifiziert: Tunneling-Stresstest 0/50, Idle-Frames korrekt, Standbild
(Fuesse in Blaettern, Schild auf zu-Tuer, Kamerahoehe), --once exit 0.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Charakter-Icon im HUD: nearest-skalierter WECH-Kopf + schwarzer 1px-
Umriss (Original-Look, Stefans Feedback). Eigene Mini-Kopf-Assets gibt
es nicht (GAMEBAR.BOB[16] leer).
- DOORS.BOB entschluesselt: Frame 0 (Tuer mit Kopf-Schild) wird jetzt auf
die Tuerposition geblittet; Frames 1-4 sind die Schluessel-Tueren mit
farbigen Knaeufen (fuer die spaetere Schluessel-Logik), Frame 5 das
Schild einzeln.
Szene deckungsgleich mit Stefans Original-Screenshot (Tuer mit Schild und
Punkten, pixeliger HUD-Kopf). --once exit 0.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Stefans Korrektur: Box-Innenflaechen sind im Original WEISS (die Grafik
hatte es schon richtig -- Dunkelrot-Fuellung entfernt, Grafik-":" damit
nativ sichtbar). Zahlen jetzt in der Original-HUD-Font: GAMEBAR.BOB-
Ziffern (7x13), gerendert mit der GAMEBAR.PCC-Palette -> sattes Rot mit
dunkler Umrandung, gleiche Farbe wie der Doppelpunkt. Herzen: 6 Stueck im
3x2-Grid (Original-Screenshot), Start/Reset auf 6.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Stefans dritte Feedback-Runde:
- HUD nutzt jetzt die ECHTE GAMEBAR.PCC aus PCKELL.DAT (Stefans Fund):
Kellogg's-Leiste, Boxrahmen und Uhr-":" kommen aus der Original-Grafik;
weisse Box-Innenflaechen werden beim Laden dunkelrot gefuellt (macht die
Original-Engine zur Laufzeit ebenso). Inhalte an den gemessenen Box-
Positionen; HUD_H=25 (Grafikhoehe), VIEW_H=175.
- Slopes PIXELGENAU: Laufflaeche = oberster Nicht-Himmel-Pixel der Tile-
Grafik pro Spalte (die Haenge sind ~1:2, nicht 45 Grad -- Ursache des
restlichen Schwebens). Sky-Index vom haeufigsten Luft-Tile. Reine
Himmel-Spalten tragen nicht.
- STEP_UP=6: Mini-Stufen (Plateau-Kante ueber Hangende) werden beim Laufen
ueberwunden; hohe Waende blocken weiterhin.
- Unterste Map-Zeile immer solide (Grafik-Bodenstreifen ohne ctypes) --
kein Steckenbleiben mehr beim Tieftauchen.
- Smacks-Steh-Frames 12/13 statt 0/1 (Anhalte-Sprite-Bug).
Verifiziert: Slope-Drop exakt auf Grafikkante, Plateau-Aufstieg, Wand-
Integritaet, Smacks-Idle, --once exit 0, E2E rc=0.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Stefans zweite Feedback-Runde:
- Nicht-Schwimmer (Tony & Co.) tauchen nicht mehr unter: die Wasser-
oberflaeche traegt (14px Eintauchtiefe, springen von dort moeglich,
Herzverlust laeuft) -- wie im Original-Screenshot. Schwimmer (Smacks)
loesen nahe der Oberflaeche mit der Sprungtaste einen echten Sprung aus
und kommen wieder aus dem Wasser raus (vorher unmoeglich).
- Slope-Schweben gefixt: Luft-Snap nur bei echter Durchdringung; Bergauf-
Toleranz nur fuer bereits Gelandete.
- Start-Sprite-Sequenz beim Levelstart/Charakterwechsel (Tony Arm hoch,
Smacks Daumen hoch, Frame 22, ~1.1s, durch Eingabe abbrechbar).
- Rennsprungweite: RUN_SPEED 185 -> 200 ("bis hinter die Blume").
- HUD v3 nach Original-Referenz: helle Creme-Rahmen, hoehere Boxen,
Cerealien-Icon in voller Groesse, leere Herz-Plaetze dunkel.
Verifiziert: Physik-Sims (Wade+Absprung, Smacks-Ausstiegssprung, Decken-
Kollision unter der Bruecke korrekt) + E2E rc=0 + --once exit 0.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>