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

Comparing deliantra/server/server/plugins.C (file contents):
Revision 1.19 by pippijn, Mon Dec 11 19:46:47 2006 UTC vs.
Revision 1.23 by root, Wed Dec 13 03:28:42 2006 UTC

1637 rv = &op->stats.exp; 1637 rv = &op->stats.exp;
1638 *type = CFAPI_LONG; 1638 *type = CFAPI_LONG;
1639 break; 1639 break;
1640 1640
1641 case CFAPI_OBJECT_PROP_OWNER: 1641 case CFAPI_OBJECT_PROP_OWNER:
1642 rv = get_owner (op); 1642 rv = op->owner;
1643 *type = CFAPI_POBJECT; 1643 *type = CFAPI_POBJECT;
1644 break; 1644 break;
1645 1645
1646 case CFAPI_OBJECT_PROP_PRESENT: 1646 case CFAPI_OBJECT_PROP_PRESENT:
1647 { 1647 {
1689 case CFAPI_OBJECT_PROP_MERGEABLE: 1689 case CFAPI_OBJECT_PROP_MERGEABLE:
1690 { 1690 {
1691 object *op2; 1691 object *op2;
1692 op2 = va_arg (args, object *); 1692 op2 = va_arg (args, object *);
1693 1693
1694 ri = CAN_MERGE (op, op2); 1694 ri = object::can_merge_slow (op, op2);
1695 rv = &ri; 1695 rv = &ri;
1696 } 1696 }
1697 *type = CFAPI_INT; 1697 *type = CFAPI_INT;
1698 break; 1698 break;
1699 1699
2271 break; 2271 break;
2272 2272
2273 case CFAPI_OBJECT_PROP_OWNER: 2273 case CFAPI_OBJECT_PROP_OWNER:
2274 oparg = va_arg (args, object *); 2274 oparg = va_arg (args, object *);
2275 2275
2276 set_owner (op, oparg); 2276 op->set_owner (oparg);
2277 break; 2277 break;
2278 2278
2279 case CFAPI_OBJECT_PROP_CHEATER: 2279 case CFAPI_OBJECT_PROP_CHEATER:
2280 set_cheat (op); 2280 set_cheat (op);
2281 break; 2281 break;
2604 op = va_arg (args, object *); 2604 op = va_arg (args, object *);
2605 2605
2606 va_end (args); 2606 va_end (args);
2607 2607
2608 send_removed_object (op); 2608 send_removed_object (op);
2609 remove_ob (op); 2609 op->remove ();
2610 *type = CFAPI_NONE; 2610 *type = CFAPI_NONE;
2611 return NULL; 2611 return NULL;
2612} 2612}
2613 2613
2614void * 2614void *
2621 2621
2622 op = va_arg (args, object *); 2622 op = va_arg (args, object *);
2623 2623
2624 va_end (args); 2624 va_end (args);
2625 2625
2626 free_object (op); 2626 op->destroy ();
2627 2627
2628 *type = CFAPI_NONE; 2628 *type = CFAPI_NONE;
2629 return NULL; 2629 return NULL;
2630} 2630}
2631 2631
2648 *type = CFAPI_POBJECT; 2648 *type = CFAPI_POBJECT;
2649 return object_create_clone (op); 2649 return object_create_clone (op);
2650 } 2650 }
2651 else 2651 else
2652 { 2652 {
2653 object *tmp; 2653 object *tmp = op->clone ();
2654
2655 tmp = get_object ();
2656 copy_object (op, tmp);
2657 *type = CFAPI_POBJECT; 2654 *type = CFAPI_POBJECT;
2658 return tmp; 2655 return tmp;
2659 } 2656 }
2660} 2657}
2661void * 2658void *
2725 *type = CFAPI_POBJECT; 2722 *type = CFAPI_POBJECT;
2726 switch (ival) 2723 switch (ival)
2727 { 2724 {
2728 case 0: 2725 case 0:
2729 va_end (args); 2726 va_end (args);
2730 return get_object (); 2727 return object::create ();
2731 break; 2728 break;
2732 2729
2733 case 1: /* Named object. Nearly the old plugin behavior, but we don't add artifact suffixes */ 2730 case 1: /* Named object. Nearly the old plugin behavior, but we don't add artifact suffixes */
2734 { 2731 {
2735 char *sval; 2732 char *sval;
2738 2735
2739 op = get_archetype_by_object_name (sval); 2736 op = get_archetype_by_object_name (sval);
2740 2737
2741 if (strncmp (query_name (op), ARCH_SINGULARITY, ARCH_SINGULARITY_LEN) == 0) 2738 if (strncmp (query_name (op), ARCH_SINGULARITY, ARCH_SINGULARITY_LEN) == 0)
2742 { 2739 {
2743 free_object (op); 2740 op->destroy ();
2744 /* Try with archetype names... */ 2741 /* Try with archetype names... */
2745 op = get_archetype (sval); 2742 op = get_archetype (sval);
2746 if (strncmp (query_name (op), ARCH_SINGULARITY, ARCH_SINGULARITY_LEN) == 0) 2743 if (strncmp (query_name (op), ARCH_SINGULARITY, ARCH_SINGULARITY_LEN) == 0)
2747 { 2744 {
2748 free_object (op); 2745 op->destroy ();
2749 *type = CFAPI_NONE; 2746 *type = CFAPI_NONE;
2750 va_end (args); 2747 va_end (args);
2751 return NULL; 2748 return NULL;
2752 } 2749 }
2753 } 2750 }
2912 2909
2913 op = va_arg (args, object *); 2910 op = va_arg (args, object *);
2914 2911
2915 va_end (args); 2912 va_end (args);
2916 2913
2917 clear_object (op); 2914 op->clear ();
2918 *type = CFAPI_NONE; 2915 *type = CFAPI_NONE;
2919 return NULL; 2916 return NULL;
2920} 2917}
2921 2918
2922void * 2919void *
3222 x = map->enter_x; 3219 x = map->enter_x;
3223 y = map->enter_y; 3220 y = map->enter_y;
3224 } 3221 }
3225 3222
3226/* 3223/*
3227 originator = get_object(); 3224 originator = object::create();
3228 EXIT_PATH(originator) = add_string(map->path); 3225 EXIT_PATH(originator) = add_string(map->path);
3229 EXIT_X(originator) = x; 3226 EXIT_X(originator) = x;
3230 EXIT_Y(originator) = y; 3227 EXIT_Y(originator) = y;
3231 printf("B Transfer: X=%d, Y=%d, OP=%s\n", x, y, op->name);*/ 3228 printf("B Transfer: X=%d, Y=%d, OP=%s\n", x, y, op->name);*/
3232 /*enter_exit(op, originator); */ 3229 /*enter_exit(op, originator); */
3233 insert_ob_in_map_at (op, map, NULL, 0, x, y); 3230 insert_ob_in_map_at (op, map, NULL, 0, x, y);
3234 /*printf("A Transfer: X=%d, Y=%d, MAP=%s\n", x, y, op->map->name); 3231 /*printf("A Transfer: X=%d, Y=%d, MAP=%s\n", x, y, op->map->name);
3235 free_object(originator); 3232 originator->destroy ();
3236 */ 3233 */
3237 *type = CFAPI_INT; 3234 *type = CFAPI_INT;
3238 return &rv; 3235 return &rv;
3239 break; 3236 break;
3240 3237
3429 result = 1; 3426 result = 1;
3430 return &result; 3427 return &result;
3431 } 3428 }
3432 3429
3433 send_removed_object (who); 3430 send_removed_object (who);
3434 remove_ob (who); 3431 who->remove ();
3435 3432
3436 for (tmp = who; tmp != NULL; tmp = tmp->more) 3433 for (tmp = who; tmp != NULL; tmp = tmp->more)
3437 tmp->x = x + freearr_x[k] + (tmp->arch == NULL ? 0 : tmp->arch->clone.x), 3434 tmp->x = x + freearr_x[k] + (tmp->arch == NULL ? 0 : tmp->arch->clone.x),
3438 tmp->y = y + freearr_y[k] + (tmp->arch == NULL ? 0 : tmp->arch->clone.y); 3435 tmp->y = y + freearr_y[k] + (tmp->arch == NULL ? 0 : tmp->arch->clone.y);
3439 3436

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines