currency.h
author peter1138
Sun, 01 Oct 2006 12:00:32 +0000
changeset 4694 c917a3ad0dd2
parent 4625 f365b341a330
child 5091 a7dfbe278c05
permissions -rw-r--r--
(svn r6601) - Codechange: Support cargo subtypes in the refit window. The refit window has been altered to support resizing and scrolling. Note that the cargo subtype isn't yet passed for actual refitting yet. (Based on mart3p's patch)
2292
0b9d6e4ea0e6 (svn r2816) Forgot an Id tag and an #include
tron
parents: 2291
diff changeset
     1
/* $Id$ */
0b9d6e4ea0e6 (svn r2816) Forgot an Id tag and an #include
tron
parents: 2291
diff changeset
     2
2291
c142846954ee (svn r2815) Store the currency information in one central place instead of scattering it in several unrelated files
tron
parents:
diff changeset
     3
#ifndef CURRENCY_H
c142846954ee (svn r2815) Store the currency information in one central place instead of scattering it in several unrelated files
tron
parents:
diff changeset
     4
#define CURRENCY_H
c142846954ee (svn r2815) Store the currency information in one central place instead of scattering it in several unrelated files
tron
parents:
diff changeset
     5
c142846954ee (svn r2815) Store the currency information in one central place instead of scattering it in several unrelated files
tron
parents:
diff changeset
     6
enum {
c142846954ee (svn r2815) Store the currency information in one central place instead of scattering it in several unrelated files
tron
parents:
diff changeset
     7
	CF_NOEURO = 0,
c142846954ee (svn r2815) Store the currency information in one central place instead of scattering it in several unrelated files
tron
parents:
diff changeset
     8
	CF_ISEURO = 1,
4601
8e75de247b94 (svn r6453) -Feature: FS#305 Turkish currency (jnmbk)
belugas
parents: 4380
diff changeset
     9
	NUM_CURRENCY = 26,
4380
71243f206e6b (svn r6122) Fix an off-by-two error in r6108: it should be the index for the last element in the array
tron
parents: 4377
diff changeset
    10
	CUSTOM_CURRENCY_ID = NUM_CURRENCY - 1
2291
c142846954ee (svn r2815) Store the currency information in one central place instead of scattering it in several unrelated files
tron
parents:
diff changeset
    11
};
c142846954ee (svn r2815) Store the currency information in one central place instead of scattering it in several unrelated files
tron
parents:
diff changeset
    12
c142846954ee (svn r2815) Store the currency information in one central place instead of scattering it in several unrelated files
tron
parents:
diff changeset
    13
typedef struct {
c142846954ee (svn r2815) Store the currency information in one central place instead of scattering it in several unrelated files
tron
parents:
diff changeset
    14
	uint16 rate;
c142846954ee (svn r2815) Store the currency information in one central place instead of scattering it in several unrelated files
tron
parents:
diff changeset
    15
	char separator;
4297
d0311b62255c (svn r5934) -Cleanup: forgot some conversions to Year and to Date
rubidium
parents: 3596
diff changeset
    16
	Year to_euro;
2291
c142846954ee (svn r2815) Store the currency information in one central place instead of scattering it in several unrelated files
tron
parents:
diff changeset
    17
	char prefix[16];
c142846954ee (svn r2815) Store the currency information in one central place instead of scattering it in several unrelated files
tron
parents:
diff changeset
    18
	char suffix[16];
4377
f04bcf6f9a04 (svn r6108) -NewGRF Feature: Implement currencies replacment via grf file.
belugas
parents: 4311
diff changeset
    19
	/**
4602
43c44f7df615 (svn r6454) -Fix(r6108) : Allow custom currency to display both prefix and suffix
belugas
parents: 4601
diff changeset
    20
	 * The currency symbol is represented by two possible values, prefix and suffix
43c44f7df615 (svn r6454) -Fix(r6108) : Allow custom currency to display both prefix and suffix
belugas
parents: 4601
diff changeset
    21
	 * Usage of one or the other is determined by symbol_pos.
43c44f7df615 (svn r6454) -Fix(r6108) : Allow custom currency to display both prefix and suffix
belugas
parents: 4601
diff changeset
    22
	 * 0 = prefix
43c44f7df615 (svn r6454) -Fix(r6108) : Allow custom currency to display both prefix and suffix
belugas
parents: 4601
diff changeset
    23
	 * 1 = suffix
43c44f7df615 (svn r6454) -Fix(r6108) : Allow custom currency to display both prefix and suffix
belugas
parents: 4601
diff changeset
    24
	 * 2 = both : Special case only for custom currency.
43c44f7df615 (svn r6454) -Fix(r6108) : Allow custom currency to display both prefix and suffix
belugas
parents: 4601
diff changeset
    25
	 *            It is not a spec from Newgrf,
43c44f7df615 (svn r6454) -Fix(r6108) : Allow custom currency to display both prefix and suffix
belugas
parents: 4601
diff changeset
    26
	 *            rather a way to let users do what they want with custom curency
4377
f04bcf6f9a04 (svn r6108) -NewGRF Feature: Implement currencies replacment via grf file.
belugas
parents: 4311
diff changeset
    27
	 */
f04bcf6f9a04 (svn r6108) -NewGRF Feature: Implement currencies replacment via grf file.
belugas
parents: 4311
diff changeset
    28
	byte symbol_pos;
f04bcf6f9a04 (svn r6108) -NewGRF Feature: Implement currencies replacment via grf file.
belugas
parents: 4311
diff changeset
    29
	StringID name;
2291
c142846954ee (svn r2815) Store the currency information in one central place instead of scattering it in several unrelated files
tron
parents:
diff changeset
    30
} CurrencySpec;
c142846954ee (svn r2815) Store the currency information in one central place instead of scattering it in several unrelated files
tron
parents:
diff changeset
    31
4377
f04bcf6f9a04 (svn r6108) -NewGRF Feature: Implement currencies replacment via grf file.
belugas
parents: 4311
diff changeset
    32
f04bcf6f9a04 (svn r6108) -NewGRF Feature: Implement currencies replacment via grf file.
belugas
parents: 4311
diff changeset
    33
extern CurrencySpec _currency_specs[NUM_CURRENCY];
2291
c142846954ee (svn r2815) Store the currency information in one central place instead of scattering it in several unrelated files
tron
parents:
diff changeset
    34
2306
adb71c055afb (svn r2830) Move CheckSwitchToEuro() to currency.[ch] and hide the truth about the custom currency behind a #define
tron
parents: 2292
diff changeset
    35
// XXX small hack, but makes the rest of the code a bit nicer to read
3596
6654541a3958 (svn r4487) - Codechange: replace the custom currency magic number 23 with a define
peter1138
parents: 2468
diff changeset
    36
#define _custom_currency (_currency_specs[CUSTOM_CURRENCY_ID])
2468
9ea52370a093 (svn r2994) Another small hack regarding currencies: add a #define to emulate a variable, that holds the current currency; again this should increase readability
tron
parents: 2436
diff changeset
    37
#define _currency ((const CurrencySpec*)&_currency_specs[_opt_ptr->currency])
2306
adb71c055afb (svn r2830) Move CheckSwitchToEuro() to currency.[ch] and hide the truth about the custom currency behind a #define
tron
parents: 2292
diff changeset
    38
2291
c142846954ee (svn r2815) Store the currency information in one central place instead of scattering it in several unrelated files
tron
parents:
diff changeset
    39
uint GetMaskOfAllowedCurrencies(void);
2306
adb71c055afb (svn r2830) Move CheckSwitchToEuro() to currency.[ch] and hide the truth about the custom currency behind a #define
tron
parents: 2292
diff changeset
    40
void CheckSwitchToEuro(void);
4377
f04bcf6f9a04 (svn r6108) -NewGRF Feature: Implement currencies replacment via grf file.
belugas
parents: 4311
diff changeset
    41
void ResetCurrencies(void);
f04bcf6f9a04 (svn r6108) -NewGRF Feature: Implement currencies replacment via grf file.
belugas
parents: 4311
diff changeset
    42
StringID* BuildCurrencyDropdown(void);
4625
f365b341a330 (svn r6485) -NewGRF Feature: Match the order of TTDPatch's currencies with those used in OTTD.
belugas
parents: 4602
diff changeset
    43
byte GetNewgrfCurrencyIdConverted(byte grfcurr_id);
2291
c142846954ee (svn r2815) Store the currency information in one central place instead of scattering it in several unrelated files
tron
parents:
diff changeset
    44
2436
7d5df545bd5d (svn r2962) - const correctness for all Get* functions and most Draw* functions that don't change their pointer parameters
Darkvater
parents: 2306
diff changeset
    45
#endif /* CURRENCY_H */