Merge pull request #2242 from Gymnasiast/more-currencies

Add South Korean Won and Russian Rouble as currencies, closes #2222, also fix #2232
This commit is contained in:
Ted John 2015-11-08 11:58:41 +00:00
commit 91edd322ae
6 changed files with 28 additions and 14 deletions

View File

@ -3915,6 +3915,8 @@ STR_5573 :Remove From Favorites
STR_5574 :Server Name:
STR_5575 :Max Players:
STR_5576 :Port:
STR_5577 :South Korean Won (W)
STR_5578 :Russian Rouble (R)
#####################
# Rides/attractions #

View File

@ -124,6 +124,8 @@ config_enum_definition _currencyEnum[] = {
{ "NLG", CURRENCY_GUILDERS },
{ "SEK", CURRENCY_KRONA },
{ "EUR", CURRENCY_EUROS },
{ "KRW", CURRENCY_WON },
{ "RUB", CURRENCY_ROUBLE },
END_OF_ENUM
};

View File

@ -19,16 +19,19 @@
*****************************************************************************/
#include "currency.h"
#include "string_ids.h"
const rct_currency_spec g_currency_specs[CURRENCY_END] = {
{ 10 , "\xC2\xA3" , CURRENCY_PREFIX }, // British Pound
{ 10 , "$" , CURRENCY_PREFIX }, // US Dollar
{ 10 , "F" , CURRENCY_SUFFIX }, // French Franc
{ 10 , "DM" , CURRENCY_PREFIX }, // Deutsche Mark
{ 1000 , "\xC2\xA5" , CURRENCY_PREFIX }, // Japanese Yen
{ 10 , "Pts" , CURRENCY_SUFFIX }, // Spanish Peseta
{ 1000 , "L" , CURRENCY_PREFIX }, // Italian Lira
{ 10 , "fl. " , CURRENCY_PREFIX }, // Dutch Guilder
{ 10 , "kr." , CURRENCY_SUFFIX }, // Swedish Krona
{ 10 , "\xE2\x82\xAC" , CURRENCY_PREFIX }, // Euro
{ 10 , "\xC2\xA3" , CURRENCY_PREFIX, STR_POUNDS }, // British Pound
{ 10 , "$" , CURRENCY_PREFIX, STR_DOLLARS}, // US Dollar
{ 10 , "F" , CURRENCY_SUFFIX, STR_FRANC }, // French Franc
{ 10 , "DM" , CURRENCY_PREFIX, STR_DEUTSCHMARK }, // Deutschmark
{ 1000 , "\xC2\xA5" , CURRENCY_PREFIX, STR_YEN }, // Japanese Yen
{ 10 , "Pts" , CURRENCY_SUFFIX, STR_PESETA }, // Spanish Peseta
{ 1000 , "L" , CURRENCY_PREFIX, STR_LIRA }, // Italian Lira
{ 10 , "fl. " , CURRENCY_PREFIX, STR_GUILDERS }, // Dutch Guilder
{ 10 , "kr." , CURRENCY_SUFFIX, STR_KRONA }, // Swedish Krona
{ 10 , "\xE2\x82\xAC" , CURRENCY_PREFIX, STR_EUROS }, // Euro
{ 10000 , "W" , CURRENCY_PREFIX, STR_WON }, // South Korean Won
{ 1000 , "R " , CURRENCY_PREFIX, STR_ROUBLE }, // Russian Rouble
};

View File

@ -35,6 +35,8 @@ typedef enum {
CURRENCY_GUILDERS, // Dutch Gilder
CURRENCY_KRONA, // Swedish Krona
CURRENCY_EUROS, // Euro
CURRENCY_WON, // South Korean Won
CURRENCY_ROUBLE, // Russian Rouble
CURRENCY_END // Last item
} CURRENCY_TYPE;
@ -52,6 +54,7 @@ typedef struct {
int rate;
utf8 symbol[CURRENCY_SYMBOL_MAX_SIZE];
int affix;
int stringId;
} rct_currency_spec;
// List of currency formats

View File

@ -2166,6 +2166,9 @@ enum {
STR_MAX_PLAYERS = 5575,
STR_PORT = 5576,
STR_WON = 5577,
STR_ROUBLE = 5578,
// Have to include resource strings (from scenarios and objects) for the time being now that language is partially working
STR_COUNT = 32768
};

View File

@ -36,6 +36,7 @@
#include "../interface/viewport.h"
#include "../interface/widget.h"
#include "../interface/window.h"
#include "../localisation/currency.h"
#include "../localisation/date.h"
#include "../localisation/localisation.h"
#include "../platform/platform.h"
@ -773,14 +774,14 @@ static void window_options_mousedown(int widgetIndex, rct_window*w, rct_widget*
window_options_show_dropdown(w, widget, 2);
dropdown_set_checked(gConfigGeneral.show_height_as_units ? 1 : 2, true);
dropdown_set_checked(gConfigGeneral.show_height_as_units ? 0 : 1, true);
break;
case WIDX_CURRENCY_DROPDOWN:
num_items = 10;
num_items = CURRENCY_END;
for (i = 0; i < num_items; i++) {
gDropdownItemsFormat[i] = 1142;
gDropdownItemsArgs[i] = STR_POUNDS + i;
gDropdownItemsArgs[i] = g_currency_specs[i].stringId;
}
window_options_show_dropdown(w, widget, num_items);
@ -1181,7 +1182,7 @@ static void window_options_invalidate(rct_window *w)
case WINDOW_OPTIONS_PAGE_CULTURE:
// currency: pounds, dollars, etc. (10 total)
RCT2_GLOBAL(0x013CE952 + 12, uint16) = STR_POUNDS + gConfigGeneral.currency_format;
RCT2_GLOBAL(0x013CE952 + 12, uint16) = g_currency_specs[gConfigGeneral.currency_format].stringId;
// distance: metric/imperial
RCT2_GLOBAL(0x013CE952 + 14, uint16) = STR_IMPERIAL + gConfigGeneral.measurement_format;