author | KUDr |
Fri, 20 Apr 2007 19:43:06 +0000 | |
changeset 6513 | 454347ca3dfb |
parent 6453 | 226bcddeba32 |
child 6622 | 918a98fc95fb |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
6179
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5668
diff
changeset
|
3 |
/** @file functions.h */ |
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5668
diff
changeset
|
4 |
|
0 | 5 |
#ifndef FUNCTIONS_H |
6 |
#define FUNCTIONS_H |
|
7 |
||
5636
3c19b56dc982
(svn r8095) -Codechange: stuff that is not related to HAL moved from hal.h to gfx.h
KUDr
parents:
5587
diff
changeset
|
8 |
#include "gfx.h" |
3c19b56dc982
(svn r8095) -Codechange: stuff that is not related to HAL moved from hal.h to gfx.h
KUDr
parents:
5587
diff
changeset
|
9 |
|
1377
7ab329d1fc28
(svn r1881) -Fix: [ 1119308 ] Max passengers / mail variables are now 32 bit
celestar
parents:
1335
diff
changeset
|
10 |
void UpdateTownMaxPass(Town *t); |
0 | 11 |
|
6179
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5668
diff
changeset
|
12 |
/* clear_land.cpp */ |
2436
7d5df545bd5d
(svn r2962) - const correctness for all Get* functions and most Draw* functions that don't change their pointer parameters
Darkvater
parents:
2380
diff
changeset
|
13 |
void DrawHillyLandTile(const TileInfo *ti); |
7d5df545bd5d
(svn r2962) - const correctness for all Get* functions and most Draw* functions that don't change their pointer parameters
Darkvater
parents:
2380
diff
changeset
|
14 |
void DrawClearLandTile(const TileInfo *ti, byte set); |
2220 | 15 |
void DrawClearLandFence(const TileInfo *ti); |
1420
83e74e76f600
(svn r1924) Use same type names in declaration and implementation
tron
parents:
1377
diff
changeset
|
16 |
void TileLoopClearHelper(TileIndex tile); |
0 | 17 |
|
6179
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5668
diff
changeset
|
18 |
/* water_land.cpp */ |
0 | 19 |
void DrawShipDepotSprite(int x, int y, int image); |
1977
37bbebf94434
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1935
diff
changeset
|
20 |
void TileLoop_Water(TileIndex tile); |
0 | 21 |
|
6179
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5668
diff
changeset
|
22 |
/* players.cpp */ |
0 | 23 |
bool CheckPlayerHasMoney(int32 cost); |
24 |
void SubtractMoneyFromPlayer(int32 cost); |
|
2436
7d5df545bd5d
(svn r2962) - const correctness for all Get* functions and most Draw* functions that don't change their pointer parameters
Darkvater
parents:
2380
diff
changeset
|
25 |
void SubtractMoneyFromPlayerFract(PlayerID player, int32 cost); |
4849
1c6f21eb97f2
(svn r6775) -Codechange: Use some more proper types, especially Owner and PlayerID as
Darkvater
parents:
4833
diff
changeset
|
26 |
bool CheckOwnership(Owner owner); |
1977
37bbebf94434
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1935
diff
changeset
|
27 |
bool CheckTileOwnership(TileIndex tile); |
2475 | 28 |
StringID GetPlayerNameString(PlayerID player, uint index); |
0 | 29 |
|
30 |
/* standard */ |
|
31 |
void ShowInfo(const char *str); |
|
32 |
void CDECL ShowInfoF(const char *str, ...); |
|
33 |
void NORETURN CDECL error(const char *str, ...); |
|
34 |
||
6179
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5668
diff
changeset
|
35 |
/* openttd.cpp */ |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
536
diff
changeset
|
36 |
|
4432
372316ca7924
(svn r6195) -Codechange: do not use '//' in '/* ... */' style comments and '/*' or '*/' in '//' style comments.
rubidium
parents:
4300
diff
changeset
|
37 |
/************** |
372316ca7924
(svn r6195) -Codechange: do not use '//' in '/* ... */' style comments and '/*' or '*/' in '//' style comments.
rubidium
parents:
4300
diff
changeset
|
38 |
* Warning: DO NOT enable this unless you understand what it does |
372316ca7924
(svn r6195) -Codechange: do not use '//' in '/* ... */' style comments and '/*' or '*/' in '//' style comments.
rubidium
parents:
4300
diff
changeset
|
39 |
* |
372316ca7924
(svn r6195) -Codechange: do not use '//' in '/* ... */' style comments and '/*' or '*/' in '//' style comments.
rubidium
parents:
4300
diff
changeset
|
40 |
* If enabled, in a network game all randoms will be dumped to the |
372316ca7924
(svn r6195) -Codechange: do not use '//' in '/* ... */' style comments and '/*' or '*/' in '//' style comments.
rubidium
parents:
4300
diff
changeset
|
41 |
* stdout if the first client joins (or if you are a client). This |
372316ca7924
(svn r6195) -Codechange: do not use '//' in '/* ... */' style comments and '/*' or '*/' in '//' style comments.
rubidium
parents:
4300
diff
changeset
|
42 |
* is to help finding desync problems. |
372316ca7924
(svn r6195) -Codechange: do not use '//' in '/* ... */' style comments and '/*' or '*/' in '//' style comments.
rubidium
parents:
4300
diff
changeset
|
43 |
* |
372316ca7924
(svn r6195) -Codechange: do not use '//' in '/* ... */' style comments and '/*' or '*/' in '//' style comments.
rubidium
parents:
4300
diff
changeset
|
44 |
* Warning: DO NOT enable this unless you understand what it does |
372316ca7924
(svn r6195) -Codechange: do not use '//' in '/* ... */' style comments and '/*' or '*/' in '//' style comments.
rubidium
parents:
4300
diff
changeset
|
45 |
**************/ |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
536
diff
changeset
|
46 |
|
1539
b3fce185178a
(svn r2043) -Fix: committed too many files in the last commit
truelight
parents:
1538
diff
changeset
|
47 |
//#define RANDOM_DEBUG |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
536
diff
changeset
|
48 |
|
2073 | 49 |
|
50 |
// Enable this to produce higher quality random numbers. |
|
51 |
// Doesn't work with network yet. |
|
52 |
//#define MERSENNE_TWISTER |
|
53 |
||
54 |
// Mersenne twister functions |
|
55 |
void SeedMT(uint32 seed); |
|
6247 | 56 |
uint32 RandomMT(); |
2073 | 57 |
|
58 |
||
59 |
#ifdef MERSENNE_TWISTER |
|
6247 | 60 |
static inline uint32 Random() { return RandomMT(); } |
2073 | 61 |
uint RandomRange(uint max); |
62 |
#else |
|
63 |
||
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
536
diff
changeset
|
64 |
#ifdef RANDOM_DEBUG |
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
536
diff
changeset
|
65 |
#define Random() DoRandom(__LINE__, __FILE__) |
1120
047e8b16a954
(svn r1621) -Fix: fixed some compiler warnings for the random-debug-switch
truelight
parents:
1115
diff
changeset
|
66 |
uint32 DoRandom(int line, const char *file); |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
536
diff
changeset
|
67 |
#define RandomRange(max) DoRandomRange(max, __LINE__, __FILE__) |
1120
047e8b16a954
(svn r1621) -Fix: fixed some compiler warnings for the random-debug-switch
truelight
parents:
1115
diff
changeset
|
68 |
uint DoRandomRange(uint max, int line, const char *file); |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
536
diff
changeset
|
69 |
#else |
6247 | 70 |
uint32 Random(); |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
536
diff
changeset
|
71 |
uint RandomRange(uint max); |
2073 | 72 |
#endif |
73 |
#endif // MERSENNE_TWISTER |
|
2051 | 74 |
|
2073 | 75 |
static inline TileIndex RandomTileSeed(uint32 r) { return TILE_MASK(r); } |
6247 | 76 |
static inline TileIndex RandomTile() { return TILE_MASK(Random()); } |
2073 | 77 |
|
78 |
||
6247 | 79 |
uint32 InteractiveRandom(); // Used for random sequences that are not the same on the other end of the multiplayer link |
239 | 80 |
uint InteractiveRandomRange(uint max); |
81 |
||
6179
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5668
diff
changeset
|
82 |
/* texteff.cpp */ |
6247 | 83 |
void MoveAllTextEffects(); |
0 | 84 |
void AddTextEffect(StringID msg, int x, int y, uint16 duration); |
6247 | 85 |
void InitTextEffects(); |
0 | 86 |
void DrawTextEffects(DrawPixelInfo *dpi); |
87 |
||
6247 | 88 |
void InitTextMessage(); |
89 |
void DrawTextMessage(); |
|
619
abab6c8f1af7
(svn r1045) -Fix: OpenTTD compiles again under VC6 (sign_de)
truelight
parents:
543
diff
changeset
|
90 |
void CDECL AddTextMessage(uint16 color, uint8 duration, const char *message, ...); |
6247 | 91 |
void UndrawTextMessage(); |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
536
diff
changeset
|
92 |
|
1977
37bbebf94434
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1935
diff
changeset
|
93 |
bool AddAnimatedTile(TileIndex tile); |
37bbebf94434
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1935
diff
changeset
|
94 |
void DeleteAnimatedTile(TileIndex tile); |
6247 | 95 |
void AnimateAnimatedTiles(); |
96 |
void InitializeAnimatedTiles(); |
|
0 | 97 |
|
6179
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5668
diff
changeset
|
98 |
/* tunnelbridge_cmd.cpp */ |
2639 | 99 |
bool CheckBridge_Stuff(byte bridge_type, uint bridge_len); |
0 | 100 |
uint32 GetBridgeLength(TileIndex begin, TileIndex end); |
101 |
int CalcBridgeLenCostFactor(int x); |
|
102 |
||
6179
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5668
diff
changeset
|
103 |
/* misc_cmd.cpp */ |
6247 | 104 |
void PlaceTreesRandomly(); |
0 | 105 |
|
106 |
void InitializeLandscapeVariables(bool only_constants); |
|
107 |
||
6179
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5668
diff
changeset
|
108 |
/* misc.cpp */ |
4862
ac034ec9ed2b
(svn r6788) - Codechange: Add and use a function to test if a string ID is a custom name.
peter1138
parents:
4849
diff
changeset
|
109 |
bool IsCustomName(StringID id); |
0 | 110 |
void DeleteName(StringID id); |
4912
0f51b47cb983
(svn r6884) -Codechange: Add strict bounds checking in string formatting system.
Darkvater
parents:
4862
diff
changeset
|
111 |
char *GetName(char *buff, StringID id, const char* last); |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
536
diff
changeset
|
112 |
|
6179
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5668
diff
changeset
|
113 |
/* AllocateNameUnique also tests if the name used is not used anywere else |
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5668
diff
changeset
|
114 |
* and if it is used, it returns an error. */ |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
536
diff
changeset
|
115 |
#define AllocateNameUnique(name, skip) RealAllocateName(name, skip, true) |
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
536
diff
changeset
|
116 |
#define AllocateName(name, skip) RealAllocateName(name, skip, false) |
1328
eacd8225ed42
(svn r1832) Next byte -> char iteration: custom names
tron
parents:
1317
diff
changeset
|
117 |
StringID RealAllocateName(const char *name, byte skip, bool check_double); |
6247 | 118 |
void ConvertNameArray(); |
0 | 119 |
|
120 |
/* misc functions */ |
|
121 |
void MarkTileDirty(int x, int y); |
|
122 |
void MarkTileDirtyByTile(TileIndex tile); |
|
2788
0187c588107e
(svn r3336) byte -> WindowClass, uint16 -> WindowNumber
tron
parents:
2639
diff
changeset
|
123 |
void InvalidateWindow(WindowClass cls, WindowNumber number); |
0187c588107e
(svn r3336) byte -> WindowClass, uint16 -> WindowNumber
tron
parents:
2639
diff
changeset
|
124 |
void InvalidateWindowWidget(WindowClass cls, WindowNumber number, byte widget_index); |
0187c588107e
(svn r3336) byte -> WindowClass, uint16 -> WindowNumber
tron
parents:
2639
diff
changeset
|
125 |
void InvalidateWindowClasses(WindowClass cls); |
4766
aa276d0ec2eb
(svn r6680) -Codechange r6679: [train build window] only generate the list when the window data is invalidated or the window is generated, not on each redraw
bjarni
parents:
4548
diff
changeset
|
126 |
void InvalidateWindowClassesData(WindowClass cls); |
0 | 127 |
void DeleteWindowById(WindowClass cls, WindowNumber number); |
999
647f65adeb9e
(svn r1497) -Fix: [1101179] Crash if generating land while industry window is open. This also happened for towns and the land information window
darkvater
parents:
998
diff
changeset
|
128 |
void DeleteWindowByClass(WindowClass cls); |
0 | 129 |
|
5668
36b39f4a9032
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138
parents:
5636
diff
changeset
|
130 |
void SetObjectToPlaceWnd(CursorID icon, SpriteID pal, byte mode, Window *w); |
36b39f4a9032
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138
parents:
5636
diff
changeset
|
131 |
void SetObjectToPlace(CursorID icon, SpriteID pal, byte mode, WindowClass window_class, WindowNumber window_num); |
0 | 132 |
|
6247 | 133 |
void ResetObjectToPlace(); |
152
c3964b43943e
(svn r153) -Feature: [1009710] Extra Viewport. In the minimap dropdown menu, open a new viewport to have a quick look at your favorite map-positions. Independent zoom and quick jump to/from viewport (Dribbel)
darkvater
parents:
131
diff
changeset
|
134 |
|
c3964b43943e
(svn r153) -Feature: [1009710] Extra Viewport. In the minimap dropdown menu, open a new viewport to have a quick look at your favorite map-positions. Independent zoom and quick jump to/from viewport (Dribbel)
darkvater
parents:
131
diff
changeset
|
135 |
bool ScrollWindowTo(int x, int y, Window * w); |
c3964b43943e
(svn r153) -Feature: [1009710] Extra Viewport. In the minimap dropdown menu, open a new viewport to have a quick look at your favorite map-positions. Independent zoom and quick jump to/from viewport (Dribbel)
darkvater
parents:
131
diff
changeset
|
136 |
|
0 | 137 |
bool ScrollMainWindowToTile(TileIndex tile); |
138 |
bool ScrollMainWindowTo(int x, int y); |
|
5668
36b39f4a9032
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138
parents:
5636
diff
changeset
|
139 |
void DrawSprite(SpriteID img, SpriteID pal, int x, int y); |
0 | 140 |
bool EnsureNoVehicle(TileIndex tile); |
3794
f72053a38797
(svn r4790) Remove slope magic from EnsureNoVehicleZ() and rename it to EnsureNoVehicleOnGround() to make more clear what it does
tron
parents:
3636
diff
changeset
|
141 |
bool EnsureNoVehicleOnGround(TileIndex tile); |
0 | 142 |
void MarkAllViewportsDirty(int left, int top, int right, int bottom); |
143 |
void ShowCostOrIncomeAnimation(int x, int y, int z, int32 cost); |
|
1935
164d58b9137c
(svn r2441) -Feature: You can now give transfer order to set up feeder systems
celestar
parents:
1914
diff
changeset
|
144 |
void ShowFeederIncomeAnimation(int x, int y, int z, int32 cost); |
0 | 145 |
|
1977
37bbebf94434
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1935
diff
changeset
|
146 |
bool CheckIfAuthorityAllows(TileIndex tile); |
37bbebf94434
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1935
diff
changeset
|
147 |
Town *ClosestTownFromTile(TileIndex tile, uint threshold); |
0 | 148 |
void ChangeTownRating(Town *t, int add, int max); |
149 |
||
4000
4009d092b306
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3794
diff
changeset
|
150 |
uint GetTownRadiusGroup(const Town* t, TileIndex tile); |
0 | 151 |
int FindFirstBit(uint32 x); |
998
c90459c24842
(svn r1496) -Fix: highscore no longer crashes in network games with a dedicated server. At the end of the game (can only be set by the server) the highscore is shown for the top5 companies of that game
darkvater
parents:
988
diff
changeset
|
152 |
void ShowHighscoreTable(int difficulty, int8 rank); |
0 | 153 |
|
6247 | 154 |
void AfterLoadTown(); |
155 |
void UpdatePatches(); |
|
156 |
void AskExitGame(); |
|
157 |
void AskExitToGameMenu(); |
|
0 | 158 |
|
6247 | 159 |
void RedrawAutosave(); |
0 | 160 |
|
161 |
StringID RemapOldStringID(StringID s); |
|
162 |
||
163 |
void UpdateViewportSignPos(ViewportSign *sign, int left, int top, StringID str); |
|
164 |
||
165 |
enum { |
|
4300
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4261
diff
changeset
|
166 |
SLD_LOAD_GAME, |
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4261
diff
changeset
|
167 |
SLD_LOAD_SCENARIO, |
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4261
diff
changeset
|
168 |
SLD_SAVE_GAME, |
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4261
diff
changeset
|
169 |
SLD_SAVE_SCENARIO, |
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4261
diff
changeset
|
170 |
SLD_LOAD_HEIGHTMAP, |
c7e43c47a2b9
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4261
diff
changeset
|
171 |
SLD_NEW_GAME, |
0 | 172 |
}; |
173 |
void ShowSaveLoadDialog(int mode); |
|
174 |
||
6179
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5668
diff
changeset
|
175 |
/* callback from drivers that is called if the game size changes dynamically */ |
6247 | 176 |
void GameSizeChanged(); |
0 | 177 |
bool FileExists(const char *filename); |
3329
9885789ecaf7
(svn r4105) - Feature: Add proper ISO-8859-15 <> LOCALCODE conversion. As the mess that is makefile can't properly support it at the moment, it is only available for MACOSX. Windows doesn't need FS conversion and I have no idea about OS/2 so it's disabled for them.
Darkvater
parents:
3297
diff
changeset
|
178 |
const char *GetCurrentLocale(const char *param); |
1310
99c921090356
(svn r1814) Let ReadFileToMem() return void* (instead of byte*) because we don't know what the caller wants to do with the data
tron
parents:
1309
diff
changeset
|
179 |
void *ReadFileToMem(const char *filename, size_t *lenp, size_t maxsize); |
0 | 180 |
|
6247 | 181 |
void LoadFromConfig(); |
182 |
void SaveToConfig(); |
|
183 |
void CheckConfig(); |
|
0 | 184 |
int ttd_main(int argc, char* argv[]); |
6247 | 185 |
void HandleExitGameRequest(); |
0 | 186 |
|
187 |
#endif /* FUNCTIONS_H */ |