--- deliantra/server/include/material.h 2007/02/06 13:21:29 1.10
+++ deliantra/server/include/material.h 2011/04/23 04:56:49 1.23
@@ -1,30 +1,30 @@
/*
- * CrossFire, A Multiplayer game for X-windows
+ * This file is part of Deliantra, the Roguelike Realtime MMORPG.
*
- * Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team
- * Copyright (C) 2002 Mark Wedel & Crossfire Development Team
- * Copyright (C) 1992 Frank Tore Johansen
+ * Copyright (©) 2005,2006,2007,2008,2009,2010,2011 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
+ * Copyright (©) 2002 Mark Wedel & Crossfire Development Team
+ * Copyright (©) 1992 Frank Tore Johansen
*
- * This program 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 2 of the License, or
- * (at your option) any later version.
+ * Deliantra is free software: you can redistribute it and/or modify it under
+ * the terms of the Affero GNU General Public License as published by the
+ * Free Software Foundation, either version 3 of the License, or (at your
+ * option) any later version.
*
* This program 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
+ * 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 this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * The authors can be reached via e-mail at crossfire@schmorp.de
+ * You should have received a copy of the Affero GNU General Public License
+ * and the GNU General Public License along with this program. If not, see
+ * .
+ *
+ * The authors can be reached via e-mail to
*/
/* #defines are needed by living.h, so they must be loaded early */
-#ifndef MATERIAL_H_1
-#define MATERIAL_H_1
+#ifndef MATERIAL_H_
+#define MATERIAL_H_
#define NROFMATERIALS 13
@@ -41,11 +41,11 @@
#define M_SOFT_METAL 1024
#define M_BONE 2048
#define M_ICE 4096
-#define M_SPECIAL 8192 /* when displaying names, don't show the
- materialname */
+#define M_SPECIAL 8192 /* when displaying names, don't show the materialname */
struct materialtype_t : zero_initialised
{
+ struct materialtype_t *next;
shstr name;
shstr description;
int material;
@@ -60,11 +60,21 @@
sint8 sp;
int weight;
int value;
- int density; // g/cm² * 1000 == kg/m³
- struct materialtype_t *next;
+ int density; // g/cm³ * 1000 == kg/m³
+
+ materialtype_t ();
+ void reset ();
};
extern materialtype_t *materialt;
+extern materialtype_t material_null; // defined in shstr.C
+
+#define MATERIAL_NULL &material_null
+
+void reload_materials ();
+// provide a material for the item if the material isn't set yet
+void select_material (object *op, int difficulty);
+materialtype_t *name_to_material (const shstr_tmp name);
-#endif /* MATERIAL_H_1 */
+#endif