src/map_type.h
branchNewGRF_ports
changeset 6872 1c4a4a609f85
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/map_type.h	Tue Jan 22 21:00:30 2008 +0000
@@ -0,0 +1,65 @@
+/* $Id$ */
+
+/** @file map_type.h Types related to maps. */
+
+#ifndef MAP_TYPE_H
+#define MAP_TYPE_H
+
+/**
+ * Data that is stored per tile. Also used TileExtended for this.
+ * Look at docs/landscape.html for the exact meaning of the members.
+ */
+struct Tile {
+	byte   type_height; ///< The type (bits 4..7) and height of the northern corner
+	byte   m1;          ///< Primarily used for ownership information
+	uint16 m2;          ///< Primarily used for indices to towns, industries and stations
+	byte   m3;          ///< General purpose
+	byte   m4;          ///< General purpose
+	byte   m5;          ///< General purpose
+	byte   m6;          ///< Primarily used for bridges and rainforest/desert
+};
+
+/**
+ * Data that is stored per tile. Also used Tile for this.
+ * Look at docs/landscape.html for the exact meaning of the members.
+ */
+struct TileExtended {
+	byte m7; ///< Primarily used for newgrf support
+};
+
+/**
+ * An offset value between to tiles.
+ *
+ * This value is used fro the difference between
+ * to tiles. It can be added to a tileindex to get
+ * the resulting tileindex of the start tile applied
+ * with this saved difference.
+ *
+ * @see TileDiffXY(int, int)
+ */
+typedef int32 TileIndexDiff;
+
+/**
+ * A pair-construct of a TileIndexDiff.
+ *
+ * This can be used to save the difference between to
+ * tiles as a pair of x and y value.
+ */
+struct TileIndexDiffC {
+	int16 x;        ///< The x value of the coordinate
+	int16 y;        ///< The y value of the coordinate
+};
+
+/**
+ * Approximation of the length of a straight track, relative to a diagonal
+ * track (ie the size of a tile side).
+ *
+ * #defined instead of const so it can
+ * stay integer. (no runtime float operations) Is this needed?
+ * Watch out! There are _no_ brackets around here, to prevent intermediate
+ * rounding! Be careful when using this!
+ * This value should be sqrt(2)/2 ~ 0.7071
+ */
+#define STRAIGHT_TRACK_LENGTH 7071/10000
+
+#endif /* MAP_TYPE_H */