author | rubidium |
Fri, 01 Jun 2007 20:54:09 +0000 | |
branch | noai |
changeset 9625 | 3301b1b3889c |
parent 9624 | b71483f2330f |
child 7375 | e8639f73a615 |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
6505
abcb0580d976
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5919
diff
changeset
|
3 |
/** @file functions.h */ |
abcb0580d976
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5919
diff
changeset
|
4 |
|
0 | 5 |
#ifndef FUNCTIONS_H |
6 |
#define FUNCTIONS_H |
|
7 |
||
5887
063ca43b682c
(svn r8095) -Codechange: stuff that is not related to HAL moved from hal.h to gfx.h
KUDr
parents:
5838
diff
changeset
|
8 |
#include "gfx.h" |
063ca43b682c
(svn r8095) -Codechange: stuff that is not related to HAL moved from hal.h to gfx.h
KUDr
parents:
5838
diff
changeset
|
9 |
|
1377
2a418162176e
(svn r1881) -Fix: [ 1119308 ] Max passengers / mail variables are now 32 bit
celestar
parents:
1335
diff
changeset
|
10 |
void UpdateTownMaxPass(Town *t); |
0 | 11 |
|
6505
abcb0580d976
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5919
diff
changeset
|
12 |
/* clear_land.cpp */ |
2436
177cb6a8339f
(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); |
177cb6a8339f
(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
5308b177b5b3
(svn r1924) Use same type names in declaration and implementation
tron
parents:
1377
diff
changeset
|
16 |
void TileLoopClearHelper(TileIndex tile); |
0 | 17 |
|
6505
abcb0580d976
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5919
diff
changeset
|
18 |
/* water_land.cpp */ |
0 | 19 |
void DrawShipDepotSprite(int x, int y, int image); |
1977
4392ae3d8e31
(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 |
|
6505
abcb0580d976
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5919
diff
changeset
|
22 |
/* players.cpp */ |
0 | 23 |
bool CheckPlayerHasMoney(int32 cost); |
24 |
void SubtractMoneyFromPlayer(int32 cost); |
|
2436
177cb6a8339f
(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
9a3c3ae7f62f
(svn r6775) -Codechange: Use some more proper types, especially Owner and PlayerID as
Darkvater
parents:
4833
diff
changeset
|
26 |
bool CheckOwnership(Owner owner); |
1977
4392ae3d8e31
(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 |
||
6505
abcb0580d976
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5919
diff
changeset
|
34 |
/* openttd.cpp */ |
543
e3b43338096b
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
536
diff
changeset
|
35 |
|
4432
33631ac88c40
(svn r6195) -Codechange: do not use '//' in '/* ... */' style comments and '/*' or '*/' in '//' style comments.
rubidium
parents:
4300
diff
changeset
|
36 |
/************** |
33631ac88c40
(svn r6195) -Codechange: do not use '//' in '/* ... */' style comments and '/*' or '*/' in '//' style comments.
rubidium
parents:
4300
diff
changeset
|
37 |
* Warning: DO NOT enable this unless you understand what it does |
33631ac88c40
(svn r6195) -Codechange: do not use '//' in '/* ... */' style comments and '/*' or '*/' in '//' style comments.
rubidium
parents:
4300
diff
changeset
|
38 |
* |
33631ac88c40
(svn r6195) -Codechange: do not use '//' in '/* ... */' style comments and '/*' or '*/' in '//' style comments.
rubidium
parents:
4300
diff
changeset
|
39 |
* If enabled, in a network game all randoms will be dumped to the |
33631ac88c40
(svn r6195) -Codechange: do not use '//' in '/* ... */' style comments and '/*' or '*/' in '//' style comments.
rubidium
parents:
4300
diff
changeset
|
40 |
* stdout if the first client joins (or if you are a client). This |
33631ac88c40
(svn r6195) -Codechange: do not use '//' in '/* ... */' style comments and '/*' or '*/' in '//' style comments.
rubidium
parents:
4300
diff
changeset
|
41 |
* is to help finding desync problems. |
33631ac88c40
(svn r6195) -Codechange: do not use '//' in '/* ... */' style comments and '/*' or '*/' in '//' style comments.
rubidium
parents:
4300
diff
changeset
|
42 |
* |
33631ac88c40
(svn r6195) -Codechange: do not use '//' in '/* ... */' style comments and '/*' or '*/' in '//' style comments.
rubidium
parents:
4300
diff
changeset
|
43 |
* Warning: DO NOT enable this unless you understand what it does |
33631ac88c40
(svn r6195) -Codechange: do not use '//' in '/* ... */' style comments and '/*' or '*/' in '//' style comments.
rubidium
parents:
4300
diff
changeset
|
44 |
**************/ |
543
e3b43338096b
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
536
diff
changeset
|
45 |
|
1539
3d5b40209884
(svn r2043) -Fix: committed too many files in the last commit
truelight
parents:
1538
diff
changeset
|
46 |
//#define RANDOM_DEBUG |
543
e3b43338096b
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
536
diff
changeset
|
47 |
|
2073 | 48 |
|
49 |
// Enable this to produce higher quality random numbers. |
|
50 |
// Doesn't work with network yet. |
|
51 |
//#define MERSENNE_TWISTER |
|
52 |
||
53 |
// Mersenne twister functions |
|
54 |
void SeedMT(uint32 seed); |
|
6573 | 55 |
uint32 RandomMT(); |
2073 | 56 |
|
57 |
||
58 |
#ifdef MERSENNE_TWISTER |
|
6573 | 59 |
static inline uint32 Random() { return RandomMT(); } |
2073 | 60 |
uint RandomRange(uint max); |
61 |
#else |
|
62 |
||
543
e3b43338096b
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
536
diff
changeset
|
63 |
#ifdef RANDOM_DEBUG |
e3b43338096b
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
536
diff
changeset
|
64 |
#define Random() DoRandom(__LINE__, __FILE__) |
1120
ea3bf8bc6678
(svn r1621) -Fix: fixed some compiler warnings for the random-debug-switch
truelight
parents:
1115
diff
changeset
|
65 |
uint32 DoRandom(int line, const char *file); |
543
e3b43338096b
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
536
diff
changeset
|
66 |
#define RandomRange(max) DoRandomRange(max, __LINE__, __FILE__) |
1120
ea3bf8bc6678
(svn r1621) -Fix: fixed some compiler warnings for the random-debug-switch
truelight
parents:
1115
diff
changeset
|
67 |
uint DoRandomRange(uint max, int line, const char *file); |
543
e3b43338096b
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
536
diff
changeset
|
68 |
#else |
6573 | 69 |
uint32 Random(); |
543
e3b43338096b
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
536
diff
changeset
|
70 |
uint RandomRange(uint max); |
2073 | 71 |
#endif |
72 |
#endif // MERSENNE_TWISTER |
|
2051 | 73 |
|
2073 | 74 |
static inline TileIndex RandomTileSeed(uint32 r) { return TILE_MASK(r); } |
6573 | 75 |
static inline TileIndex RandomTile() { return TILE_MASK(Random()); } |
2073 | 76 |
|
77 |
||
6573 | 78 |
uint32 InteractiveRandom(); // Used for random sequences that are not the same on the other end of the multiplayer link |
239 | 79 |
uint InteractiveRandomRange(uint max); |
80 |
||
6505
abcb0580d976
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5919
diff
changeset
|
81 |
/* texteff.cpp */ |
6573 | 82 |
void MoveAllTextEffects(); |
0 | 83 |
void AddTextEffect(StringID msg, int x, int y, uint16 duration); |
6573 | 84 |
void InitTextEffects(); |
0 | 85 |
void DrawTextEffects(DrawPixelInfo *dpi); |
86 |
||
6573 | 87 |
void InitTextMessage(); |
88 |
void DrawTextMessage(); |
|
619
2a8675eeeb3f
(svn r1045) -Fix: OpenTTD compiles again under VC6 (sign_de)
truelight
parents:
543
diff
changeset
|
89 |
void CDECL AddTextMessage(uint16 color, uint8 duration, const char *message, ...); |
6573 | 90 |
void UndrawTextMessage(); |
543
e3b43338096b
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
536
diff
changeset
|
91 |
|
1977
4392ae3d8e31
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1935
diff
changeset
|
92 |
bool AddAnimatedTile(TileIndex tile); |
4392ae3d8e31
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1935
diff
changeset
|
93 |
void DeleteAnimatedTile(TileIndex tile); |
6573 | 94 |
void AnimateAnimatedTiles(); |
95 |
void InitializeAnimatedTiles(); |
|
0 | 96 |
|
6505
abcb0580d976
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5919
diff
changeset
|
97 |
/* tunnelbridge_cmd.cpp */ |
2639 | 98 |
bool CheckBridge_Stuff(byte bridge_type, uint bridge_len); |
0 | 99 |
uint32 GetBridgeLength(TileIndex begin, TileIndex end); |
100 |
int CalcBridgeLenCostFactor(int x); |
|
101 |
||
6505
abcb0580d976
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5919
diff
changeset
|
102 |
/* misc_cmd.cpp */ |
6573 | 103 |
void PlaceTreesRandomly(); |
0 | 104 |
|
105 |
void InitializeLandscapeVariables(bool only_constants); |
|
106 |
||
6505
abcb0580d976
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5919
diff
changeset
|
107 |
/* misc.cpp */ |
4862
b45c1e638e7f
(svn r6788) - Codechange: Add and use a function to test if a string ID is a custom name.
peter1138
parents:
4849
diff
changeset
|
108 |
bool IsCustomName(StringID id); |
0 | 109 |
void DeleteName(StringID id); |
4912
d04b3f2bca70
(svn r6884) -Codechange: Add strict bounds checking in string formatting system.
Darkvater
parents:
4862
diff
changeset
|
110 |
char *GetName(char *buff, StringID id, const char* last); |
543
e3b43338096b
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
536
diff
changeset
|
111 |
|
6505
abcb0580d976
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5919
diff
changeset
|
112 |
/* AllocateNameUnique also tests if the name used is not used anywere else |
abcb0580d976
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5919
diff
changeset
|
113 |
* and if it is used, it returns an error. */ |
543
e3b43338096b
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
536
diff
changeset
|
114 |
#define AllocateNameUnique(name, skip) RealAllocateName(name, skip, true) |
e3b43338096b
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
536
diff
changeset
|
115 |
#define AllocateName(name, skip) RealAllocateName(name, skip, false) |
1328
e069d2db0e4c
(svn r1832) Next byte -> char iteration: custom names
tron
parents:
1317
diff
changeset
|
116 |
StringID RealAllocateName(const char *name, byte skip, bool check_double); |
6573 | 117 |
void ConvertNameArray(); |
0 | 118 |
|
119 |
/* misc functions */ |
|
120 |
void MarkTileDirty(int x, int y); |
|
121 |
void MarkTileDirtyByTile(TileIndex tile); |
|
2788
db2896482939
(svn r3336) byte -> WindowClass, uint16 -> WindowNumber
tron
parents:
2639
diff
changeset
|
122 |
void InvalidateWindow(WindowClass cls, WindowNumber number); |
db2896482939
(svn r3336) byte -> WindowClass, uint16 -> WindowNumber
tron
parents:
2639
diff
changeset
|
123 |
void InvalidateWindowWidget(WindowClass cls, WindowNumber number, byte widget_index); |
db2896482939
(svn r3336) byte -> WindowClass, uint16 -> WindowNumber
tron
parents:
2639
diff
changeset
|
124 |
void InvalidateWindowClasses(WindowClass cls); |
4766
a23183d868d1
(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
|
125 |
void InvalidateWindowClassesData(WindowClass cls); |
0 | 126 |
void DeleteWindowById(WindowClass cls, WindowNumber number); |
999
8b2a34061963
(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
|
127 |
void DeleteWindowByClass(WindowClass cls); |
0 | 128 |
|
5919
2b58160d667d
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138
parents:
5887
diff
changeset
|
129 |
void SetObjectToPlaceWnd(CursorID icon, SpriteID pal, byte mode, Window *w); |
2b58160d667d
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138
parents:
5887
diff
changeset
|
130 |
void SetObjectToPlace(CursorID icon, SpriteID pal, byte mode, WindowClass window_class, WindowNumber window_num); |
0 | 131 |
|
6573 | 132 |
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
|
133 |
|
9625
3301b1b3889c
(svn r10016) [NoAI] -Sync with trunk r9914:r10015.
rubidium
parents:
9624
diff
changeset
|
134 |
bool ScrollWindowTo(int x, int y, Window * w, bool instant = false); |
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
|
135 |
|
9625
3301b1b3889c
(svn r10016) [NoAI] -Sync with trunk r9914:r10015.
rubidium
parents:
9624
diff
changeset
|
136 |
bool ScrollMainWindowToTile(TileIndex tile, bool instant = false); |
3301b1b3889c
(svn r10016) [NoAI] -Sync with trunk r9914:r10015.
rubidium
parents:
9624
diff
changeset
|
137 |
bool ScrollMainWindowTo(int x, int y, bool instant = false); |
5919
2b58160d667d
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138
parents:
5887
diff
changeset
|
138 |
void DrawSprite(SpriteID img, SpriteID pal, int x, int y); |
0 | 139 |
bool EnsureNoVehicle(TileIndex tile); |
3794
ac26a7b4615d
(svn r4790) Remove slope magic from EnsureNoVehicleZ() and rename it to EnsureNoVehicleOnGround() to make more clear what it does
tron
parents:
3636
diff
changeset
|
140 |
bool EnsureNoVehicleOnGround(TileIndex tile); |
0 | 141 |
void MarkAllViewportsDirty(int left, int top, int right, int bottom); |
142 |
void ShowCostOrIncomeAnimation(int x, int y, int z, int32 cost); |
|
1935
f43f062c9498
(svn r2441) -Feature: You can now give transfer order to set up feeder systems
celestar
parents:
1914
diff
changeset
|
143 |
void ShowFeederIncomeAnimation(int x, int y, int z, int32 cost); |
0 | 144 |
|
1977
4392ae3d8e31
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1935
diff
changeset
|
145 |
bool CheckIfAuthorityAllows(TileIndex tile); |
4392ae3d8e31
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1935
diff
changeset
|
146 |
Town *ClosestTownFromTile(TileIndex tile, uint threshold); |
0 | 147 |
void ChangeTownRating(Town *t, int add, int max); |
148 |
||
4000
bab1ebc37da0
(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
|
149 |
uint GetTownRadiusGroup(const Town* t, TileIndex tile); |
0 | 150 |
int FindFirstBit(uint32 x); |
998
d9dc257b8949
(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
|
151 |
void ShowHighscoreTable(int difficulty, int8 rank); |
0 | 152 |
|
6573 | 153 |
void AfterLoadTown(); |
154 |
void UpdatePatches(); |
|
155 |
void AskExitGame(); |
|
156 |
void AskExitToGameMenu(); |
|
0 | 157 |
|
6573 | 158 |
void RedrawAutosave(); |
0 | 159 |
|
160 |
StringID RemapOldStringID(StringID s); |
|
161 |
||
162 |
void UpdateViewportSignPos(ViewportSign *sign, int left, int top, StringID str); |
|
163 |
||
164 |
enum { |
|
4300
687a17c9c557
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4261
diff
changeset
|
165 |
SLD_LOAD_GAME, |
687a17c9c557
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4261
diff
changeset
|
166 |
SLD_LOAD_SCENARIO, |
687a17c9c557
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4261
diff
changeset
|
167 |
SLD_SAVE_GAME, |
687a17c9c557
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4261
diff
changeset
|
168 |
SLD_SAVE_SCENARIO, |
687a17c9c557
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4261
diff
changeset
|
169 |
SLD_LOAD_HEIGHTMAP, |
687a17c9c557
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4261
diff
changeset
|
170 |
SLD_NEW_GAME, |
0 | 171 |
}; |
172 |
void ShowSaveLoadDialog(int mode); |
|
173 |
||
6505
abcb0580d976
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
5919
diff
changeset
|
174 |
/* callback from drivers that is called if the game size changes dynamically */ |
6573 | 175 |
void GameSizeChanged(); |
0 | 176 |
bool FileExists(const char *filename); |
3329
992d1f7cb747
(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
|
177 |
const char *GetCurrentLocale(const char *param); |
1310
85cde2193afc
(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
|
178 |
void *ReadFileToMem(const char *filename, size_t *lenp, size_t maxsize); |
0 | 179 |
|
6573 | 180 |
void LoadFromConfig(); |
181 |
void SaveToConfig(); |
|
182 |
void CheckConfig(); |
|
0 | 183 |
int ttd_main(int argc, char* argv[]); |
6573 | 184 |
void HandleExitGameRequest(); |
0 | 185 |
|
186 |
#endif /* FUNCTIONS_H */ |