with Ada.Strings.Wide_Wide_Unbounded; use Ada.Strings.Wide_Wide_Unbounded;
private with Sf.System.Vector2;
private with Sf.Graphics.Color;
with SpeziesDatentypen;
with StadtDatentypen;
with EinheitenDatentypen;
with StadtRecords;
with StadtGrafikRecords;
private with GrafikRecordKonstanten;
with LeseSpeziesbelegung;
package BauauswahlGrafik is
pragma Elaborate_Body;
use type SpeziesDatentypen.Spieler_Enum;
use type EinheitenDatentypen.EinheitenID;
use type StadtDatentypen.GebäudeID;
procedure Bauauswahl
(BauauswahlExtern : in StadtGrafikRecords.BaumenüGrafikRecord;
AktuelleAuswahlExtern : in StadtRecords.ErweiterterBauprojektRecord;
AktuelleAufteilungExtern : in Positive)
with
Pre => (
LeseSpeziesbelegung.Belegung (SpeziesExtern => BauauswahlExtern.Spezies) = SpeziesDatentypen.Mensch_Spieler_Enum
-- and
-- (if AktuelleAuswahlExtern.Gebäude /= 0 then AktuelleAuswahlExtern.Einheit = 0)
-- and
-- (if AktuelleAuswahlExtern.Einheit /= 0 then AktuelleAuswahlExtern.Gebäude = 0)
);
function Gebäude
(AuswahlExtern : in StadtDatentypen.GebäudeID;
SpeziesExtern : in SpeziesDatentypen.Spezies_Vorhanden_Enum;
ViewbereichExtern : in Positive)
return Float
with
Pre => (
LeseSpeziesbelegung.Belegung (SpeziesExtern => SpeziesExtern) = SpeziesDatentypen.Mensch_Spieler_Enum
);
private
Textbreite : Float;
Text : Unbounded_Wide_Wide_String;
ViewflächeGebäude : Sf.System.Vector2.sfVector2f := GrafikRecordKonstanten.StartView;
ViewflächeEinheiten : Sf.System.Vector2.sfVector2f := GrafikRecordKonstanten.StartView;
ViewflächeAktuell : Sf.System.Vector2.sfVector2f := GrafikRecordKonstanten.StartView;
ViewflächeAufteilung : Sf.System.Vector2.sfVector2f := GrafikRecordKonstanten.StartView;
Textposition : Sf.System.Vector2.sfVector2f;
Farbe : Sf.Graphics.Color.sfColor;
procedure Bauaufteilung
(AusgewählteAufteilungExtern : in Natural;
AktuelleAufteilungExtern : in Positive);
procedure GebäudeviewEinstellen
(AuswahlExtern : in StadtDatentypen.GebäudeID;
SpeziesExtern : in SpeziesDatentypen.Spezies_Vorhanden_Enum)
with
Pre => (
LeseSpeziesbelegung.Belegung (SpeziesExtern => SpeziesExtern) = SpeziesDatentypen.Mensch_Spieler_Enum
);
procedure Einheiten
(AuswahlExtern : in EinheitenDatentypen.EinheitenID;
SpeziesExtern : in SpeziesDatentypen.Spezies_Vorhanden_Enum)
with
Pre => (
LeseSpeziesbelegung.Belegung (SpeziesExtern => SpeziesExtern) = SpeziesDatentypen.Mensch_Spieler_Enum
);
procedure Aktuell
(BauauswahlExtern : in StadtGrafikRecords.BaumenüGrafikRecord)
with
Pre => (
LeseSpeziesbelegung.Belegung (SpeziesExtern => BauauswahlExtern.Spezies) = SpeziesDatentypen.Mensch_Spieler_Enum
);
end BauauswahlGrafik;