ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/common/material.C
(Generate patch)

Comparing deliantra/server/common/material.C (file contents):
Revision 1.6 by root, Tue Nov 10 16:02:06 2009 UTC vs.
Revision 1.13 by root, Wed Apr 28 19:49:50 2010 UTC

1/* 1/*
2 * This file is part of Deliantra, the Roguelike Realtime MMORPG. 2 * This file is part of Deliantra, the Roguelike Realtime MMORPG.
3 * 3 *
4 * Copyright (©) 2005,2006,2007,2008,2009 Marc Alexander Lehmann / Robin Redeker / the Deliantra team 4 * Copyright (©) 2005,2006,2007,2008,2009,2010 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
5 * Copyright (©) 2002,2007 Mark Wedel & Crossfire Development Team 5 * Copyright (©) 2002 Mark Wedel & Crossfire Development Team
6 * Copyright (©) 1992,2007 Frank Tore Johansen 6 * Copyright (©) 1992 Frank Tore Johansen
7 * 7 *
8 * Deliantra is free software: you can redistribute it and/or modify it under 8 * Deliantra is free software: you can redistribute it and/or modify it under
9 * the terms of the Affero GNU General Public License as published by the 9 * the terms of the Affero GNU General Public License as published by the
10 * Free Software Foundation, either version 3 of the License, or (at your 10 * Free Software Foundation, either version 3 of the License, or (at your
11 * option) any later version. 11 * option) any later version.
110transmute_materialname (object *op, const object *change) 110transmute_materialname (object *op, const object *change)
111{ 111{
112 if (!op->is_armor ()) 112 if (!op->is_armor ())
113 return; 113 return;
114 114
115 if (op->material == &material_null) 115 if (op->material == MATERIAL_NULL)
116 return; 116 return;
117 117
118 if (op->material != change->material) 118 if (op->material != change->material)
119 return; 119 return;
120 120
132 132
133/* set the materialname and type for an item */ 133/* set the materialname and type for an item */
134void 134void
135select_material (object *op, int difficulty) 135select_material (object *op, int difficulty)
136{ 136{
137 if (op->material != &material_null || !op->materials) 137 if (op->material != MATERIAL_NULL || !op->materials)
138 return; 138 return;
139 139
140 materialtype_t *lmt = 0; 140 materialtype_t *lmt = 0;
141 141
142 //TODL: dead code? 142 //TODL: dead code?
190} 190}
191 191
192//-GPL 192//-GPL
193 193
194void 194void
195load_materials (void) 195load_materials ()
196{ 196{
197 char filename[MAX_BUF];
198
199 sprintf (filename, "%s/materials", settings.datadir);
200 LOG (llevDebug, "Reading material type data from %s...\n", filename);
201
202 //TODO: somehow free old materials, or update them in-place 197 //TODO: somehow free old materials, or update them in-place
198 // currently we effectively leak them.
203 material_null.next = 0; materialt = &material_null; 199 material_null.next = 0; materialt = &material_null;
204 200
205 object_thawer thawer (filename); 201 object_thawer thawer (settings.datadir, "materials");
206 202
207 if (!thawer) 203 if (!thawer)
208 { 204 {
209 LOG (llevError, "Cannot open %s for reading\n", filename); 205 LOG (llevError, "Cannot open %s for reading\n", thawer.name);
210 goto done; 206 goto done;
211 } 207 }
212 208
213 while (thawer.kw != KW_name) 209 while (thawer.kw != KW_name)
214 { 210 {
297 293
298 case KW_EOF: 294 case KW_EOF:
299 goto done; 295 goto done;
300 296
301 default: 297 default:
302 if (!thawer.parse_error ("materials file", "materials")) 298 if (!thawer.parse_error ("materials file"))
303 goto done; 299 goto done;
304 break; 300 break;
305 } 301 }
306 302
307 thawer.next (); 303 thawer.next ();

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines