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.19 by root, Thu Sep 21 00:05:24 2006 UTC vs.
Revision 1.23 by root, Fri Dec 15 19:59:19 2006 UTC

26 variable. */ 26 variable. */
27 27
28 28
29#include <global.h> 29#include <global.h>
30#include <loader.h> 30#include <loader.h>
31#include <newserver.h>
32#include <sproto.h> 31#include <sproto.h>
33 32
34/* Maps the MOVE_* values to names */ 33/* Maps the MOVE_* values to names */
35static const char *const move_name[] = { "walk", "fly_low", "fly_high", "swim", "boat", NULL }; 34static const char *const move_name[] = { "walk", "fly_low", "fly_high", "swim", "boat", NULL };
36 35
556 555
557 if (arch != NULL) 556 if (arch != NULL)
558 tmp = arch_to_object (arch); 557 tmp = arch_to_object (arch);
559 else 558 else
560 { 559 {
561 tmp = get_object (); 560 tmp = object::create ();
562 /* record the name of the broken object */ 561 /* record the name of the broken object */
563 tmp->name = str; 562 tmp->name = str;
564 } 563 }
565 564
566 parse_object (tmp, thawer, map_flags); 565 parse_object (tmp, thawer, map_flags);
593 op_inv = tmp; 592 op_inv = tmp;
594 } 593 }
595 else 594 else
596 { 595 {
597 LOG (llevDebug, "Discarding object without arch: %s\n", tmp->name ? (const char *) tmp->name : "(null)"); 596 LOG (llevDebug, "Discarding object without arch: %s\n", tmp->name ? (const char *) tmp->name : "(null)");
598 free_object (tmp); 597 tmp->destroy ();
599 } 598 }
600 } 599 }
601 else 600 else
602 { 601 {
603 /* This is the actual archetype definition then */ 602 /* This is the actual archetype definition then */
604 op->arch = archetype::find (str); 603 op->arch = archetype::find (str);
605 604
606 if (op->arch != NULL) 605 if (op->arch)
607 copy_object (&op->arch->clone, op); 606 op->arch->clone.copy_to (op);
608 else if (!arch_init) 607 else if (!arch_init)
609 /* record the name of the broken object */ 608 /* record the name of the broken object */
610 op->name = str; 609 op->name = str;
611 } 610 }
612 } 611 }
1081 * override values and in c_wiz to mutate values. 1080 * override values and in c_wiz to mutate values.
1082 */ 1081 */
1083int 1082int
1084set_variable (object *op, char *buf) 1083set_variable (object *op, char *buf)
1085{ 1084{
1086 return 0;
1087#if 0
1088 int retval;
1089 object_thawer thawer (0); 1085 object_thawer thawer (buf, (AV *)0);
1090 1086
1091 strcpy (msgbuf, "");
1092 strcpy (lorebuf, "");
1093 retval = parse_object (op, thawer, 0); 1087 return parse_object (op, thawer, 0);
1094 yy_switch_to_buffer (yycurbuf);
1095 yy_delete_buffer (yybufstate);
1096 yy_pop_state ();
1097 return retval;
1098#endif
1099} 1088}
1100 1089
1101/* 1090/*
1102 * Initialises the array of variable-names. Needed before any 1091 * Initialises the array of variable-names. Needed before any
1103 * objects can be loaded. Called by init_library(). 1092 * objects can be loaded. Called by init_library().
1313 if (!arch_field || my_field->value != arch_field->value) 1302 if (!arch_field || my_field->value != arch_field->value)
1314 f.put (my_field->key, my_field->value); 1303 f.put (my_field->key, my_field->value);
1315 } 1304 }
1316 1305
1317 /* We don't need to worry about the arch's extra fields - they 1306 /* We don't need to worry about the arch's extra fields - they
1318 * will get taken care of the copy_object function. 1307 * will get taken care of the copy_to method.
1319 */ 1308 */
1320 1309
1321 { 1310 {
1322 char uids[64]; 1311 char uids[64];
1323 snprintf (uids, sizeof (uids), "<1.%llx>", (unsigned long long)op->uuid.seq); 1312 snprintf (uids, sizeof (uids), "<1.%llx>", (unsigned long long)op->uuid.seq);
1508 save_object (fp, tmp, flag); 1497 save_object (fp, tmp, flag);
1509 old = tmp; 1498 old = tmp;
1510 } 1499 }
1511 1500
1512 if (!(flag & 2)) 1501 if (!(flag & 2))
1513 { 1502 op->destroy ();
1514 remove_ob (op);
1515 free_object (op);
1516 }
1517 1503
1518 fp.put (op); 1504 fp.put (op);
1519 fprintf (fp, "end\n"); 1505 fprintf (fp, "end\n");
1520} 1506}
1521 1507

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines