3 * Iter Vehemens ad Necem (IVAN)
4 * Copyright (C) Timo Kiviluoto
5 * Released under the GNU General
8 * See LICENSING which should be included
9 * along with this file for more details
18 void id::AddNameSingular (festring
&String
, truth Articled
) const {
20 if (UsesLongArticle()) String
<< "an "; else String
<< "a ";
22 String
<< GetNameSingular();
26 void id::AddName (festring
&Name
, int Case
) const {
28 if ((Case
& ARTICLE_BIT
) && (GetArticleMode() == FORCE_THE
|| (!GetArticleMode() && !(Case
& INDEFINE_BIT
)))) {
32 Articled
= !(Case
& PLURAL
) && (Case
& ARTICLE_BIT
) && (Case
& INDEFINE_BIT
) && GetArticleMode() != NO_ARTICLE
;
34 if (!(Case
& STRIPPED
)) {
35 if (AddRustLevelDescription(Name
, Articled
)) Articled
= false;
36 if (AddStateDescription(Name
, Articled
)) Articled
= false;
38 if (AddAdjective(Name
, Articled
)) Articled
= false;
39 if (!(Case
& STRIPPED
) && ShowMaterial() && AddMaterialDescription(Name
, Articled
)) Articled
= false;
40 if (Case
& PLURAL
) Name
<< GetNamePlural(); else AddNameSingular(Name
, Articled
);
41 AddPostFix(Name
, Case
);
45 festring
id::GetName (int Case
) const {
53 void id::AddName (festring
&Name
, int Case
, int Amount
) const {
55 AddName(Name
, Case
&~PLURAL
);
57 if ((Case
& ARTICLE_BIT
) && (GetArticleMode() == FORCE_THE
|| (!GetArticleMode() && !(Case
& INDEFINE_BIT
)))) Name
<< "the ";
58 Name
<< Amount
<< ' ';
59 AddName(Name
, (Case
&~ARTICLE_BIT
)|PLURAL
); //k8: ???
64 festring
id::GetName (int Case
, int Amount
) const {
67 AddName(Name
, Case
, Amount
);
72 truth
id::AddAdjective (festring
&String
, truth Articled
) const {
73 if (GetAdjective().GetSize()) {
75 if (UsesLongAdjectiveArticle()) String
<< "an "; else String
<< "a ";
77 String
<< GetAdjective() << ' ';
84 void id::AddPostFix (festring
&String
, int) const {
85 if (GetPostFix().GetSize()) String
<< ' ' << GetPostFix();
89 truth
id::AddActiveAdjective (festring
&String
, truth Articled
) const {
90 String
<< (Articled
? "an active " : "active ");