Merge branch 'master' into browser
[projects/chimara/chimara.git] / babel / modules.h
diff --git a/babel/modules.h b/babel/modules.h
new file mode 100644 (file)
index 0000000..cc799ee
--- /dev/null
@@ -0,0 +1,70 @@
+/* modules.h  Declaration of treaty modules for the babel program\r
+ * (c) 2006 By L. Ross Raszewski\r
+ *\r
+ * This code is freely usable for all purposes.\r
+ *\r
+ * This work is licensed under the Creative Commons Attribution2.5 License.\r
+ * To view a copy of this license, visit\r
+ * http://creativecommons.org/licenses/by/2.5/ or send a letter to\r
+ * Creative Commons,\r
+ * 543 Howard Street, 5th Floor,\r
+ * San Francisco, California, 94105, USA.\r
+ *\r
+ * This file depends upon treaty.h and all the references treaty modules\r
+ *\r
+ * Persons wishing to add support for a new module to babel need only\r
+ * add a line in the form below.  New modules should be positioned according\r
+ * to their popularity.  If this file is being used in tandem with register.c\r
+ * (as it is in babel), then being dishonest about the popularity of an added\r
+ * system will make the program non-compliant with the treaty of Babel\r
+ *\r
+ * REGISTER_NAME is used as a placeholder for formats which are specified\r
+ * as existing by the treaty but for which no handler yet exists.\r
+ * remove the REGISTER_NAME for any format which has a registered treaty.\r
+ */\r
+\r
+\r
+#include "treaty.h"\r
+#undef REGISTER_TREATY\r
+#undef REGISTER_CONTAINER\r
+#undef REGISTER_NAME\r
+#ifdef TREATY_REGISTER\r
+#ifdef CONTAINER_REGISTER\r
+#ifdef FORMAT_REGISTER\r
+#define REGISTER_TREATY(x)        #x,\r
+#define REGISTER_NAME(x)          #x,\r
+#define REGISTER_CONTAINER(x)\r
+#else\r
+#define REGISTER_TREATY(x)\r
+#define REGISTER_CONTAINER(x)     x##_treaty,\r
+#define REGISTER_NAME(x)\r
+#endif\r
+#else\r
+#define REGISTER_TREATY(x)        x##_treaty,\r
+#define REGISTER_CONTAINER(x)\r
+#define REGISTER_NAME(x)\r
+#endif\r
+#else\r
+#define REGISTER_TREATY(x)        int32 x##_treaty(int32, void *, int32, void *, int32);\r
+#define REGISTER_CONTAINER(x)        int32 x##_treaty(int32, void *, int32, void *, int32);\r
+#define REGISTER_NAME(x)\r
+#endif\r
+\r
+\r
+REGISTER_CONTAINER(blorb)\r
+REGISTER_TREATY(zcode)\r
+REGISTER_TREATY(glulx)\r
+REGISTER_TREATY(tads2)\r
+REGISTER_TREATY(tads3)\r
+REGISTER_TREATY(hugo)\r
+REGISTER_TREATY(alan)\r
+REGISTER_TREATY(adrift)\r
+REGISTER_TREATY(level9)\r
+REGISTER_TREATY(agt)\r
+REGISTER_TREATY(magscrolls)\r
+REGISTER_TREATY(advsys)\r
+REGISTER_TREATY(executable)\r
+\r
+\r
+\r
+\r