summaryrefslogtreecommitdiff
path: root/src/functions.h
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2007-01-02 19:19:48 +0000
committerrubidium <rubidium@openttd.org>2007-01-02 19:19:48 +0000
commit013df98f79866a75f367853c9e436f3c5c79f645 (patch)
treead4a63860df2626b22f77e7dac712e958bea54cb /src/functions.h
parent3d32fd3f4bfaceb8a48530fbc2f4bd5db2752596 (diff)
downloadopenttd-013df98f79866a75f367853c9e436f3c5c79f645.tar.xz
(svn r7759) -Merge: makefile rewrite. This merge features:
- A proper ./configure, so everything needs to be configured only once, not for every make. - Usage of makedepend when available. This greatly reduces the time needed for generating the dependencies. - A generator for all project files. There is a single file with sources, which is used to generate Makefiles and the project files for MSVC. - Proper support for OSX universal binaries. - Object files for non-MSVC compiles are also placed in separate directories, making is faster to switch between debug and release compiles and it does not touch the directory with the source files. - Functionality to make a bundle of all needed files for for example a nightly or distribution of a binary with all needed GRFs and language files. Note: as this merge moves almost all files, it is recommended to make a backup of your working copy before updating your working copy.
Diffstat (limited to 'src/functions.h')
-rw-r--r--src/functions.h227
1 files changed, 227 insertions, 0 deletions
diff --git a/src/functions.h b/src/functions.h
new file mode 100644
index 000000000..0529c1646
--- /dev/null
+++ b/src/functions.h
@@ -0,0 +1,227 @@
+/* $Id$ */
+
+#ifndef FUNCTIONS_H
+#define FUNCTIONS_H
+
+void DoClearSquare(TileIndex tile);
+void RunTileLoop(void);
+
+uint GetPartialZ(int x, int y, Slope corners);
+uint GetSlopeZ(int x, int y);
+uint32 GetTileTrackStatus(TileIndex tile, TransportType mode);
+void GetAcceptedCargo(TileIndex tile, AcceptedCargo ac);
+void ChangeTileOwner(TileIndex tile, byte old_player, byte new_player);
+void AnimateTile(TileIndex tile);
+void ClickTile(TileIndex tile);
+void GetTileDesc(TileIndex tile, TileDesc *td);
+void UpdateTownMaxPass(Town *t);
+
+bool IsValidTile(TileIndex tile);
+
+static inline Point RemapCoords(int x, int y, int z)
+{
+#if !defined(NEW_ROTATION)
+ Point pt;
+ pt.x = (y - x) * 2;
+ pt.y = y + x - z;
+#else
+ Point pt;
+ pt.x = (x + y) * 2;
+ pt.y = x - y - z;
+#endif
+ return pt;
+}
+
+static inline Point RemapCoords2(int x, int y)
+{
+ return RemapCoords(x, y, GetSlopeZ(x, y));
+}
+
+
+/* clear_land.c */
+void DrawHillyLandTile(const TileInfo *ti);
+void DrawClearLandTile(const TileInfo *ti, byte set);
+void DrawClearLandFence(const TileInfo *ti);
+void TileLoopClearHelper(TileIndex tile);
+
+/* water_land.c */
+void DrawShipDepotSprite(int x, int y, int image);
+void TileLoop_Water(TileIndex tile);
+
+/* players.c */
+bool CheckPlayerHasMoney(int32 cost);
+void SubtractMoneyFromPlayer(int32 cost);
+void SubtractMoneyFromPlayerFract(PlayerID player, int32 cost);
+bool CheckOwnership(Owner owner);
+bool CheckTileOwnership(TileIndex tile);
+StringID GetPlayerNameString(PlayerID player, uint index);
+
+/* standard */
+void ShowInfo(const char *str);
+void CDECL ShowInfoF(const char *str, ...);
+void NORETURN CDECL error(const char *str, ...);
+
+/* openttd.c */
+
+/**************
+ * Warning: DO NOT enable this unless you understand what it does
+ *
+ * If enabled, in a network game all randoms will be dumped to the
+ * stdout if the first client joins (or if you are a client). This
+ * is to help finding desync problems.
+ *
+ * Warning: DO NOT enable this unless you understand what it does
+ **************/
+
+//#define RANDOM_DEBUG
+
+
+// Enable this to produce higher quality random numbers.
+// Doesn't work with network yet.
+//#define MERSENNE_TWISTER
+
+// Mersenne twister functions
+void SeedMT(uint32 seed);
+uint32 RandomMT(void);
+
+
+#ifdef MERSENNE_TWISTER
+ static inline uint32 Random(void) { return RandomMT(); }
+ uint RandomRange(uint max);
+#else
+
+#ifdef RANDOM_DEBUG
+ #define Random() DoRandom(__LINE__, __FILE__)
+ uint32 DoRandom(int line, const char *file);
+ #define RandomRange(max) DoRandomRange(max, __LINE__, __FILE__)
+ uint DoRandomRange(uint max, int line, const char *file);
+#else
+ uint32 Random(void);
+ uint RandomRange(uint max);
+#endif
+#endif // MERSENNE_TWISTER
+
+static inline TileIndex RandomTileSeed(uint32 r) { return TILE_MASK(r); }
+static inline TileIndex RandomTile(void) { return TILE_MASK(Random()); }
+
+
+uint32 InteractiveRandom(void); /* Used for random sequences that are not the same on the other end of the multiplayer link */
+uint InteractiveRandomRange(uint max);
+
+/* facedraw.c */
+void DrawPlayerFace(uint32 face, int color, int x, int y);
+
+/* texteff.c */
+void MoveAllTextEffects(void);
+void AddTextEffect(StringID msg, int x, int y, uint16 duration);
+void InitTextEffects(void);
+void DrawTextEffects(DrawPixelInfo *dpi);
+
+void InitTextMessage(void);
+void DrawTextMessage(void);
+void CDECL AddTextMessage(uint16 color, uint8 duration, const char *message, ...);
+void UndrawTextMessage(void);
+
+bool AddAnimatedTile(TileIndex tile);
+void DeleteAnimatedTile(TileIndex tile);
+void AnimateAnimatedTiles(void);
+void InitializeAnimatedTiles(void);
+
+/* tunnelbridge_cmd.c */
+bool CheckBridge_Stuff(byte bridge_type, uint bridge_len);
+uint32 GetBridgeLength(TileIndex begin, TileIndex end);
+int CalcBridgeLenCostFactor(int x);
+
+/* misc_cmd.c */
+void PlaceTreesRandomly(void);
+
+void InitializeLandscapeVariables(bool only_constants);
+
+/* misc.c */
+bool IsCustomName(StringID id);
+void DeleteName(StringID id);
+char *GetName(char *buff, StringID id, const char* last);
+
+// AllocateNameUnique also tests if the name used is not used anywere else
+// and if it is used, it returns an error.
+#define AllocateNameUnique(name, skip) RealAllocateName(name, skip, true)
+#define AllocateName(name, skip) RealAllocateName(name, skip, false)
+StringID RealAllocateName(const char *name, byte skip, bool check_double);
+void ConvertNameArray(void);
+
+/* misc functions */
+void MarkTileDirty(int x, int y);
+void MarkTileDirtyByTile(TileIndex tile);
+void InvalidateWindow(WindowClass cls, WindowNumber number);
+void InvalidateWindowWidget(WindowClass cls, WindowNumber number, byte widget_index);
+void InvalidateWindowClasses(WindowClass cls);
+void InvalidateWindowClassesData(WindowClass cls);
+void DeleteWindowById(WindowClass cls, WindowNumber number);
+void DeleteWindowByClass(WindowClass cls);
+
+void SetObjectToPlaceWnd(CursorID icon, byte mode, Window *w);
+void SetObjectToPlace(CursorID icon, byte mode, WindowClass window_class, WindowNumber window_num);
+
+void ResetObjectToPlace(void);
+
+bool ScrollWindowTo(int x, int y, Window * w);
+
+bool ScrollMainWindowToTile(TileIndex tile);
+bool ScrollMainWindowTo(int x, int y);
+void DrawSprite(uint32 img, int x, int y);
+bool EnsureNoVehicle(TileIndex tile);
+bool EnsureNoVehicleOnGround(TileIndex tile);
+void MarkAllViewportsDirty(int left, int top, int right, int bottom);
+void ShowCostOrIncomeAnimation(int x, int y, int z, int32 cost);
+void ShowFeederIncomeAnimation(int x, int y, int z, int32 cost);
+
+void DrawFoundation(TileInfo *ti, uint f);
+
+bool CheckIfAuthorityAllows(TileIndex tile);
+Town *ClosestTownFromTile(TileIndex tile, uint threshold);
+void ChangeTownRating(Town *t, int add, int max);
+
+uint GetTownRadiusGroup(const Town* t, TileIndex tile);
+int FindFirstBit(uint32 x);
+void ShowHighscoreTable(int difficulty, int8 rank);
+TileIndex AdjustTileCoordRandomly(TileIndex a, byte rng);
+
+void AfterLoadTown(void);
+void UpdatePatches(void);
+void AskExitGame(void);
+void AskExitToGameMenu(void);
+
+void RedrawAutosave(void);
+
+StringID RemapOldStringID(StringID s);
+
+void UpdateViewportSignPos(ViewportSign *sign, int left, int top, StringID str);
+
+enum {
+ SLD_LOAD_GAME,
+ SLD_LOAD_SCENARIO,
+ SLD_SAVE_GAME,
+ SLD_SAVE_SCENARIO,
+ SLD_LOAD_HEIGHTMAP,
+ SLD_NEW_GAME,
+};
+void ShowSaveLoadDialog(int mode);
+
+// callback from drivers that is called if the game size changes dynamically
+void GameSizeChanged(void);
+bool FileExists(const char *filename);
+bool ReadLanguagePack(int index);
+void InitializeLanguagePacks(void);
+const char *GetCurrentLocale(const char *param);
+void *ReadFileToMem(const char *filename, size_t *lenp, size_t maxsize);
+
+void LoadFromConfig(void);
+void SaveToConfig(void);
+void CheckConfig(void);
+int ttd_main(int argc, char* argv[]);
+void HandleExitGameRequest(void);
+
+void DeterminePaths(void);
+
+void CSleep(int milliseconds);
+#endif /* FUNCTIONS_H */