author | rubidium |
Sun, 25 May 2008 19:17:03 +0000 | |
changeset 9354 | 845e07db4549 |
parent 9346 | bfd803297888 |
child 9358 | 2e1e4d2f71dd |
permissions | -rw-r--r-- |
2292 | 1 |
/* $Id$ */ |
2 |
||
9111
48ce04029fe4
(svn r12971) -Documentation: add @file in files that missed them and add something more than whitespace as description of files that don't have a description.
rubidium
parents:
8264
diff
changeset
|
3 |
/** @file currency.h Functions to handle different currencies. */ |
6123
04eb770ec17e
(svn r8859) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5475
diff
changeset
|
4 |
|
2291
c142846954ee
(svn r2815) Store the currency information in one central place instead of scattering it in several unrelated files
tron
parents:
diff
changeset
|
5 |
#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
|
6 |
#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
|
7 |
|
8140
0d0d8c94f84b
(svn r11702) -Codechange: move all date related stuff to date*.
rubidium
parents:
6379
diff
changeset
|
8 |
#include "date_type.h" |
8264
b1e85998c7d3
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8140
diff
changeset
|
9 |
#include "strings_type.h" |
8140
0d0d8c94f84b
(svn r11702) -Codechange: move all date related stuff to date*.
rubidium
parents:
6379
diff
changeset
|
10 |
|
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 |
enum { |
c142846954ee
(svn r2815) Store the currency information in one central place instead of scattering it in several unrelated files
tron
parents:
diff
changeset
|
12 |
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
|
13 |
CF_ISEURO = 1, |
5091
a7dfbe278c05
(svn r7160) -Feature [SF 1243657, 1171147]: Slovak/Brazil currency patch (gpsoft, klanticus)
Darkvater
parents:
4625
diff
changeset
|
14 |
NUM_CURRENCY = 28, |
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
|
15 |
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
|
16 |
}; |
c142846954ee
(svn r2815) Store the currency information in one central place instead of scattering it in several unrelated files
tron
parents:
diff
changeset
|
17 |
|
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
18 |
struct CurrencySpec { |
2291
c142846954ee
(svn r2815) Store the currency information in one central place instead of scattering it in several unrelated files
tron
parents:
diff
changeset
|
19 |
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
|
20 |
char separator; |
4297
d0311b62255c
(svn r5934) -Cleanup: forgot some conversions to Year and to Date
rubidium
parents:
3596
diff
changeset
|
21 |
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
|
22 |
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
|
23 |
char suffix[16]; |
4377
f04bcf6f9a04
(svn r6108) -NewGRF Feature: Implement currencies replacment via grf file.
belugas
parents:
4311
diff
changeset
|
24 |
/** |
4602
43c44f7df615
(svn r6454) -Fix(r6108) : Allow custom currency to display both prefix and suffix
belugas
parents:
4601
diff
changeset
|
25 |
* 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
|
26 |
* 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
|
27 |
* 0 = prefix |
43c44f7df615
(svn r6454) -Fix(r6108) : Allow custom currency to display both prefix and suffix
belugas
parents:
4601
diff
changeset
|
28 |
* 1 = suffix |
43c44f7df615
(svn r6454) -Fix(r6108) : Allow custom currency to display both prefix and suffix
belugas
parents:
4601
diff
changeset
|
29 |
* 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
|
30 |
* 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
|
31 |
* 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
|
32 |
*/ |
f04bcf6f9a04
(svn r6108) -NewGRF Feature: Implement currencies replacment via grf file.
belugas
parents:
4311
diff
changeset
|
33 |
byte symbol_pos; |
f04bcf6f9a04
(svn r6108) -NewGRF Feature: Implement currencies replacment via grf file.
belugas
parents:
4311
diff
changeset
|
34 |
StringID name; |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
35 |
}; |
2291
c142846954ee
(svn r2815) Store the currency information in one central place instead of scattering it in several unrelated files
tron
parents:
diff
changeset
|
36 |
|
4377
f04bcf6f9a04
(svn r6108) -NewGRF Feature: Implement currencies replacment via grf file.
belugas
parents:
4311
diff
changeset
|
37 |
|
f04bcf6f9a04
(svn r6108) -NewGRF Feature: Implement currencies replacment via grf file.
belugas
parents:
4311
diff
changeset
|
38 |
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
|
39 |
|
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 |
// 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
|
41 |
#define _custom_currency (_currency_specs[CUSTOM_CURRENCY_ID]) |
9346 | 42 |
#define _currency ((const CurrencySpec*)&_currency_specs[(_game_mode == GM_MENU) ? _opt_newgame.currency : _opt.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
|
43 |
|
6247 | 44 |
uint GetMaskOfAllowedCurrencies(); |
45 |
void CheckSwitchToEuro(); |
|
6379
e3cb84b60342
(svn r9467) -Fix(FS#703,6108): When resetting the array of currencies, the custom currency was reset too, thus loosing the setting a user could have used for it.(glx)
belugas
parents:
6248
diff
changeset
|
46 |
void ResetCurrencies(bool preserve_custom = true); |
6247 | 47 |
StringID* BuildCurrencyDropdown(); |
4625
f365b341a330
(svn r6485) -NewGRF Feature: Match the order of TTDPatch's currencies with those used in OTTD.
belugas
parents:
4602
diff
changeset
|
48 |
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
|
49 |
|
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
|
50 |
#endif /* CURRENCY_H */ |