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

Comparing deliantra/server/common/loader.C (file contents):
Revision 1.109 by root, Sun Apr 20 00:44:12 2008 UTC vs.
Revision 1.113 by root, Fri May 2 21:01:53 2008 UTC

18 * You should have received a copy of the GNU General Public License 18 * You should have received a copy of the GNU General Public License
19 * along with this program. If not, see <http://www.gnu.org/licenses/>. 19 * along with this program. If not, see <http://www.gnu.org/licenses/>.
20 * 20 *
21 * The authors can be reached via e-mail to <support@deliantra.net> 21 * The authors can be reached via e-mail to <support@deliantra.net>
22 */ 22 */
23
24/* Eneq(@csd.uu.se): Added weight-modifiers in environment of objects.
25 sub/add_weight will transcend the environment updating the carrying
26 variable. */
27 23
28#include <global.h> 24#include <global.h>
29#include <loader.h> 25#include <loader.h>
30#include <sproto.h> 26#include <sproto.h>
31 27
1022 1018
1023 assert (arch); //D maybe use exception handling of sorts? 1019 assert (arch); //D maybe use exception handling of sorts?
1024 1020
1025 f.next (); 1021 f.next ();
1026 1022
1027 object *op = object::create (); 1023 object *op = arch->instance ();
1028
1029 op->map = map; 1024 op->map = map;
1030 arch->copy_to (op);
1031 // copy_to activates, this should be fixed properly 1025 // instance() activates, this should be fixed properly
1032 op->deactivate (); 1026 op->deactivate ();
1033 1027
1034 if (!op->parse_kv (f)) 1028 if (!op->parse_kv (f))
1035 { 1029 {
1036 op->destroy (true); 1030 op->destroy (true);
1278 CMP_OUT (name); 1272 CMP_OUT (name);
1279 CMP_OUT (name_pl); 1273 CMP_OUT (name_pl);
1280 CMP_OUT (custom_name); 1274 CMP_OUT (custom_name);
1281 CMP_OUT (title); 1275 CMP_OUT (title);
1282 CMP_OUT (race); 1276 CMP_OUT (race);
1277 CMP_OUT (skill);
1283 CMP_OUT (slaying); 1278 CMP_OUT (slaying);
1284 CMP_OUT (tag); 1279 CMP_OUT (tag);
1285 CMP_OUT (other_arch); 1280 CMP_OUT (other_arch);
1286 1281
1287 if (op->msg != tmp->msg ) f.put (KW_msg , KW_endmsg , op->msg ); 1282 if (op->msg != tmp->msg ) f.put (KW_msg , KW_endmsg , op->msg );
1408 * the only place this is not set is when saving the player. 1403 * the only place this is not set is when saving the player.
1409 */ 1404 */
1410bool 1405bool
1411object::write (object_freezer &f) 1406object::write (object_freezer &f)
1412{ 1407{
1413 archetype *at = arch ? (archetype *)arch : archetype::empty; 1408 archetype *at = arch ? arch : archetype::empty;
1414 1409
1415 f.put (KW_arch, at->archname); 1410 f.put (KW_arch, at->archname);
1416 write_diff (f, this, at); 1411 write_diff (f, this, at);
1417 1412
1418 for (object *tmp = inv; tmp; tmp = tmp->below) 1413 for (object *tmp = inv; tmp; tmp = tmp->below)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines