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:
+13
-3
@@ -957,7 +957,10 @@ def main():
|
||||
else:
|
||||
from . import menu as menu_mod
|
||||
from . import level as level_mod
|
||||
from . import worldmap as worldmap_mod
|
||||
m = menu_mod.MenuAssets(assets)
|
||||
map_state = {}
|
||||
pending_map = 'W1L1'
|
||||
|
||||
def play_title_music():
|
||||
path = audio_paths.get(('TITEL', None))
|
||||
@@ -976,10 +979,17 @@ def main():
|
||||
r = menu_mod.run_menu(clock, m)
|
||||
state = {'start': 'map', 'title': 'title'}.get(r, 'quit')
|
||||
elif state == 'map':
|
||||
r = menu_mod.run_worldmap(clock, m)
|
||||
state = {'level': 'level', 'menu': 'menu'}.get(r, 'quit')
|
||||
r = worldmap_mod.run_worldmap(clock, assets, m, state=map_state)
|
||||
if isinstance(r, tuple) and r[0] == 'level':
|
||||
pending_map = r[1]
|
||||
state = 'level'
|
||||
elif r == 'menu':
|
||||
state = 'menu'
|
||||
else:
|
||||
state = 'quit'
|
||||
elif state == 'level':
|
||||
r = level_mod.run_level(clock, assets, audio_paths)
|
||||
r = level_mod.run_level(clock, assets, audio_paths,
|
||||
map_name=pending_map)
|
||||
if r == 'map':
|
||||
play_title_music() # Karte/Menue laufen mit Titelmusik
|
||||
state = 'map'
|
||||
|
||||
Reference in New Issue
Block a user