08.08.2025, 13:18
Ganz genau, cmfrydos.
Der Spielstatus (gs_) ist aktuell in der Datei datseg.cpp und "nur" ein zusammenhängender Bereich von globalen Variablen.
Bsp.:
Die sauberste Lösung ist, ein unbenutztes Bit in der Datenstruktur des Helden/Heldin zu definieren.
Ist der Held nicht mehr in der Gruppe kommt das Einhorn bei zweiten mal gar nicht.
Wenn das Spiel erfolgreich beendet wurde, wird dieses Bit gelöscht und der Held/Spielstand bleibt mit Sternschweif kompatibel.
Der Zeiger (gs_unicorn_hero_ptr) und die Position (gs_unicorn_hero_pos) gehören überhaupt nicht in den Spielstand,
weil diese Daten synchron gehalten werden müssten. Single-Point-of-Truth!
Das kann aber erst umgesetzt werden, wenn Schick in dem Zustand ist, wie der Charaktergenerator zum jetzigen Zeitpunkt.
Das heißt auch, dass diese Information aus "alten" Spielständen nicht mehr genau rekonstruiert werden kann.
Hoffe dass das bei den anderen Zeigern nicht sosehr ins Gewicht fällt.
Der Spielstatus (gs_) ist aktuell in der Datei datseg.cpp und "nur" ein zusammenhängender Bereich von globalen Variablen.
Bsp.:
Code:
Bit8s gs_datseg_status_start = 0; // ds:0x2d34, 99 = game finished, area of the datseg that is stored one to one in savegame files
Bit8s gs_current_group = 0; // ds:0x2d35
Bit8s gs_group_member_counts[6] = {0}; // ds:0x2d36, members per group
Bit8s gs_total_hero_counter = 0; // ds:0x2d3c
Bit8s gs_direction = 0; // ds:0x2d3d
Bit8s gs_groups_direction[6] = {0}; // ds:0x2d3e
Bit16s gs_x_target = 0; // ds:0x2d44
Bit16s gs_y_target = 0; // ds:0x2d46
...
Die sauberste Lösung ist, ein unbenutztes Bit in der Datenstruktur des Helden/Heldin zu definieren.
Ist der Held nicht mehr in der Gruppe kommt das Einhorn bei zweiten mal gar nicht.
Wenn das Spiel erfolgreich beendet wurde, wird dieses Bit gelöscht und der Held/Spielstand bleibt mit Sternschweif kompatibel.
Der Zeiger (gs_unicorn_hero_ptr) und die Position (gs_unicorn_hero_pos) gehören überhaupt nicht in den Spielstand,
weil diese Daten synchron gehalten werden müssten. Single-Point-of-Truth!
Das kann aber erst umgesetzt werden, wenn Schick in dem Zustand ist, wie der Charaktergenerator zum jetzigen Zeitpunkt.
Das heißt auch, dass diese Information aus "alten" Spielständen nicht mehr genau rekonstruiert werden kann.
Hoffe dass das bei den anderen Zeigern nicht sosehr ins Gewicht fällt.