diff options
author | rubidium <rubidium@openttd.org> | 2010-11-16 21:01:56 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2010-11-16 21:01:56 +0000 |
commit | ebf7b915b0dee963e5398de8e06a0377c49142e6 (patch) | |
tree | 7a357823fca94e222741ffb54dbe7aaf347b7bf0 /src/strings.cpp | |
parent | c96cb9ce3757f90384f8cd624eb3f2878db477ff (diff) | |
download | openttd-ebf7b915b0dee963e5398de8e06a0377c49142e6.tar.xz |
(svn r21215) -Codechange: store the plural form in the plural (choice) lists
Diffstat (limited to 'src/strings.cpp')
-rw-r--r-- | src/strings.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/strings.cpp b/src/strings.cpp index 8cb362a1f..63e0df95e 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -375,12 +375,18 @@ static char *FormatGenericCurrency(char *buff, const CurrencySpec *spec, Money n return buff; } -static int DeterminePluralForm(int64 count) +/** + * Determine the "plural" index given a plural form and a number. + * @param count The number to get the plural index of. + * @param plural_form The plural form we want an index for. + * @return The plural index for the given form. + */ +static int DeterminePluralForm(int64 count, int plural_form) { /* The absolute value determines plurality */ uint64 n = abs(count); - switch (_langpack->plural_form) { + switch (plural_form) { default: NOT_REACHED(); @@ -875,8 +881,9 @@ static char *FormatString(char *buff, const char *str, int64 *argv, uint casei, break; case SCC_PLURAL_LIST: { // {P} + int plural_form = *str++; // contains the plural form for this string int64 v = argv_orig[(byte)*str++]; // contains the number that determines plural - str = ParseStringChoice(str, DeterminePluralForm(v), &buff, last); + str = ParseStringChoice(str, DeterminePluralForm(v, plural_form), &buff, last); break; } |