with Ada.Streams.Stream_IO; use Ada.Streams.Stream_IO; with Ada.Strings.Wide_Wide_Unbounded; use Ada.Strings.Wide_Wide_Unbounded; private with SpeziesDatentypen; private with StadtDatentypen; private with EinheitenDatentypen; private with ZahlenDatentypen; private with LeseSpeziesbelegung; package SpeichernLogik is pragma Elaborate_Body; procedure Speichern (AutospeichernExtern : in Boolean); procedure AutoSpeichern; private use type SpeziesDatentypen.Spieler_Enum; VorhandeneStädte : StadtDatentypen.Städtebereich; VorhandeneEinheiten : EinheitenDatentypen.Einheitenbereich; AktuellerAutospeichernwert : ZahlenDatentypen.EigenesPositive; MaximalerAutospeichernwert : Natural; DateiSpeichern : File_Type; Spielstandname : Unbounded_Wide_Wide_String; Autospeichernname : Unbounded_Wide_Wide_String; function Allgemeines (DateiSpeichernExtern : in File_Type) return Boolean; function SpezieswerteSpeichern (DateiSpeichernExtern : in File_Type) return Boolean; function StädteEinheitenSpeichern (SpeziesExtern : in SpeziesDatentypen.Spezies_Vorhanden_Enum; DateiSpeichernExtern : in File_Type) return Boolean with Pre => ( LeseSpeziesbelegung.Belegung (SpeziesExtern => SpeziesExtern) /= SpeziesDatentypen.Leer_Spieler_Enum ); function Spezieswerte (SpeziesExtern : in SpeziesDatentypen.Spezies_Vorhanden_Enum; DateiSpeichernExtern : in File_Type) return Boolean with Pre => ( LeseSpeziesbelegung.Belegung (SpeziesExtern => SpeziesExtern) /= SpeziesDatentypen.Leer_Spieler_Enum ); function NameAutoSpeichern return Unbounded_Wide_Wide_String; end SpeichernLogik;