1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106 | with Ada.Strings.Wide_Wide_Unbounded; use Ada.Strings.Wide_Wide_Unbounded;
with TextnummernKonstanten;
with Speziestexte;
with SystemRecordKonstanten;
with GrafikDatentypen;
with TextKonstanten;
with LeseStadtGebaut;
with SchreibeLogiktask;
with LeseLogiktask;
with SchreibeGrafiktask;
with EingabeAllgemeinLogik;
package body TexteingabeLogik is
function StadtName
(StadtSpeziesNummerExtern : in StadtRecords.SpeziesStadtnummerRecord;
BauenExtern : in Boolean)
return SystemRecords.TextEingabeRecord
is begin
if
BauenExtern
then
Frage := TextnummernKonstanten.FrageStadtname;
SchreibeLogiktask.Texteingabe (TextExtern => Speziestexte.Städtenamen (StadtSpeziesNummerExtern.Spezies, StadtSpeziesNummerExtern.Nummer));
elsif
StadtSpeziesNummerExtern.Spezies = SpeziesKonstanten.LeerSpezies
then
Frage := TextnummernKonstanten.FrageStadtSuchen;
SchreibeLogiktask.Texteingabe (TextExtern => TextKonstanten.LeerUnboundedString);
else
Frage := TextnummernKonstanten.FrageStadtname;
SchreibeLogiktask.Texteingabe (TextExtern => LeseStadtGebaut.Name (StadtSpeziesNummerExtern => StadtSpeziesNummerExtern));
end if;
return NameEingeben (WelcheFrageExtern => Frage);
end StadtName;
function SpielstandName
return SystemRecords.TextEingabeRecord
is begin
Name := NameEingeben (WelcheFrageExtern => TextnummernKonstanten.FrageSpielstandname);
case
Name.ErfolgreichAbbruch
is
when False =>
return Name;
when True =>
null;
end case;
case
To_Wide_Wide_String (Source => Name.EingegebenerText)'Length
is
when 0 =>
return (True, TextKonstanten.LeerzeichenUnboundedString);
when others =>
return Name;
end case;
end SpielstandName;
function NameEingeben
(WelcheFrageExtern : in Positive)
return SystemRecords.TextEingabeRecord
is begin
case
WelcheFrageExtern
is
when TextnummernKonstanten.FrageStadtname =>
null;
when others =>
SchreibeLogiktask.KompletteTexteingabe (EingabeExtern => SystemRecordKonstanten.LeerTexteingabe);
end case;
SchreibeGrafiktask.Fragenanzeige (FrageExtern => WelcheFrageExtern);
SchreibeGrafiktask.Eingabeart (EingabeartExtern => GrafikDatentypen.Text_Eingabe_Enum);
SchreibeLogiktask.WartenGrafik (ZustandExtern => True);
SchreibeGrafiktask.Texteingabe (JaNeinExtern => True);
EingabeAllgemeinLogik.EingabeAbwarten;
EingabeAllgemeinLogik.LeerEingabeartFrage;
return LeseLogiktask.KompletteTexteingabe;
end NameEingeben;
end TexteingabeLogik;
|