diff --git a/src/general/Macros.h b/src/general/Macros.h
new file mode 100644
index 0000000000000000000000000000000000000000..c0620a554d3b357daefd057e2183991d4f0dde6d
--- /dev/null
+++ b/src/general/Macros.h
@@ -0,0 +1,109 @@
+/**
+ * File:   Macros.h
+ *
+ * Created on 16. Juni 2010, 16:59
+ *
+ * @section LICENSE
+ * This file is part of JuPedSim.
+ *
+ * JuPedSim is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * any later version.
+ *
+ * JuPedSim is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with JuPedSim. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * @section DESCRIPTION
+ *
+ *
+ */
+
+#ifndef _MACROS_H
+#define _MACROS_H
+
+#include <cstdlib>
+#include <vector>
+#include <string.h>
+
+//#define _SIMULATOR 1
+
+#ifdef _NDEBUG
+//#undef _OPENMP
+#endif
+
+// precision error
+#define J_EPS 0.001
+#define J_EPS_DIST 0.05// [m]
+#define J_EPS_INFO_DIST 2.0 // [m] abstand für Informationsaustausch (GraphRouter)
+#define J_EPS_GOAL 0.005 // [m] Abstand zum Ziel, damit Fußgänger immer zu einem Raum gehört
+#define J_TOLERANZ 0.03  // [m] Toleranz beim erstellen der Linien
+#define J_EPS_V 0.1 // [m/s] wenn  v<EPS_V wird mit 0 gerechnet
+
+
+#define JPS_VERSION "0.5"
+#define JPS_VERSION_MINOR 5
+#define JPS_VERSION_MAJOR 0
+
+// Länge von char vectoren zur Ausgabe
+#define CLENGTH 1000
+
+
+// Faktor für TraVisTo (cm <-> m)
+#define FAKTOR 100
+
+
+// final destinations for the pedestrians
+#define FINAL_DEST_OUT -1 //default
+
+
+//routing
+#define J_EPS_HL_DIST 0.012
+#define J_EPS_AP_DIST J_EPS_GOAL+J_EPS_HL_DIST
+
+// Linked cells
+#define LIST_EMPTY 	-1
+
+
+enum RoomState {
+	ROOM_CLEAN=0,
+	ROOM_SMOKED=1,
+};
+
+enum FileFormat {
+	FORMAT_XML_PLAIN,
+	FORMAT_XML_BIN,
+	FORMAT_PLAIN,
+	FORMAT_VTK,
+	FORMAT_XML_PLAIN_WITH_MESH
+};
+
+enum RoutingStrategy {
+	ROUTING_LOCAL_SHORTEST,
+	ROUTING_GLOBAL_SHORTEST,
+	ROUTING_QUICKEST,
+	ROUTING_DYNAMIC,
+	ROUTING_FROM_FILE,
+	ROUTING_NAV_MESH,
+	ROUTING_DUMMY,
+	ROUTING_SAFEST,
+	ROUTING_UNDEFINED =-1
+};
+
+
+//global functions for convenience
+
+inline char    xmltob(const char * t,char    v=0){ if (t&&(*t)) return (char)atoi(t); return v; }
+inline int     xmltoi(const char * t,int     v=0){ if (t&&(*t)) return atoi(t); return v; }
+inline long    xmltol(const char * t,long    v=0){ if (t&&(*t)) return atol(t); return v; }
+inline double  xmltof(const char * t,double  v=0.0){ if (t&&(*t)) return atof(t); return v; }
+inline const char * xmltoa(const char * t,      const char * v=""){ if (t)       return  t; return v; }
+inline char xmltoc(const char * t,const char v='\0'){ if (t&&(*t)) return *t; return v; }
+
+#endif	/* _MACROS_H */
+