--- deliantra/server/include/material.h 2006/12/15 20:07:02 1.6
+++ deliantra/server/include/material.h 2012/11/04 01:01:13 1.26
@@ -1,29 +1,30 @@
/*
- CrossFire, A Multiplayer game for X-windows
-
- Copyright (C) 2002 Mark Wedel & Crossfire Development Team
- Copyright (C) 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.
-
- 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
- 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.de
-*/
+ * This file is part of Deliantra, the Roguelike Realtime MMORPG.
+ *
+ * Copyright (©) 2005,2006,2007,2008,2009,2010,2011,2012 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
+ * Copyright (©) 2002 Mark Wedel & Crossfire Development Team
+ * Copyright (©) 1992 Frank Tore Johansen
+ *
+ * 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
+ * GNU General Public License for more details.
+ *
+ * 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
@@ -40,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;
@@ -59,10 +60,21 @@
sint8 sp;
int weight;
int value;
- 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