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.7 by root, Tue Mar 7 13:44:43 2006 UTC vs.
Revision 1.9 by root, Fri Mar 17 02:35:08 2006 UTC

1/* 1/*
2 * static char *rcsid_plugins_c = 2 * static char *rcsid_plugins_c =
3 * "$Id: plugins.c,v 1.7 2006/03/07 13:44:43 root Exp $"; 3 * "$Id: plugins.c,v 1.9 2006/03/17 02:35:08 root Exp $";
4 */ 4 */
5 5
6/*****************************************************************************/ 6/*****************************************************************************/
7/* CrossFire, A Multiplayer game for X-windows */ 7/* CrossFire, A Multiplayer game for X-windows */
8/* */ 8/* */
308 if (cp->gevent[eventcode] != NULL) 308 if (cp->gevent[eventcode] != NULL)
309 cp->gevent[eventcode](&rt, eventcode); 309 cp->gevent[eventcode](&rt, eventcode);
310 } 310 }
311 break; 311 break;
312 312
313 case EVENT_PLAYER_LOAD:
314 case EVENT_PLAYER_SAVE:
315 /* object, filename */
316 op = va_arg(args, object*);
317 buf = va_arg(args, char*);
318 for (cp = plugins_list; cp != NULL; cp = cp->next) {
319 if (cp->gevent[eventcode] != NULL)
320 cp->gevent[eventcode](&rt, eventcode, op, buf);
321 }
322 break;
323
313 case EVENT_MAPLOAD: 324 case EVENT_MAPLOAD:
314 case EVENT_MAPOUT: 325 case EVENT_MAPOUT:
315 case EVENT_MAPIN: 326 case EVENT_MAPIN:
316 case EVENT_MAPCLEAN: 327 case EVENT_MAPCLEAN:
317 /* map argument */ 328 /* map argument */
1395 rv = op->map; 1406 rv = op->map;
1396 *type = CFAPI_PMAP; 1407 *type = CFAPI_PMAP;
1397 break; 1408 break;
1398 1409
1399 case CFAPI_OBJECT_PROP_COUNT: 1410 case CFAPI_OBJECT_PROP_COUNT:
1400 rv = &op->count; 1411 ri = op->count; rv = &ri;
1401 *type = CFAPI_INT; 1412 *type = CFAPI_INT;
1402 break; 1413 break;
1403 1414
1404 case CFAPI_OBJECT_PROP_REFCOUNT: 1415 case CFAPI_OBJECT_PROP_REFCOUNT:
1405 rv = &op->refcount; 1416 ri = op->refcount; rv = &ri;
1406 *type = CFAPI_INT; 1417 *type = CFAPI_INT;
1407 break; 1418 break;
1408 1419
1409 case CFAPI_OBJECT_PROP_NAME: 1420 case CFAPI_OBJECT_PROP_NAME:
1410 rv = query_name(op); 1421 rv = query_name(op);
1469 rv = &op->speed_left; 1480 rv = &op->speed_left;
1470 *type = CFAPI_DOUBLE; 1481 *type = CFAPI_DOUBLE;
1471 break; 1482 break;
1472 1483
1473 case CFAPI_OBJECT_PROP_NROF: 1484 case CFAPI_OBJECT_PROP_NROF:
1474 rv = &op->nrof; 1485 ri = op->nrof; rv = &ri;
1475 *type = CFAPI_INT; 1486 *type = CFAPI_INT;
1476 break; 1487 break;
1477 1488
1478 case CFAPI_OBJECT_PROP_DIRECTION: 1489 case CFAPI_OBJECT_PROP_DIRECTION:
1479 rv = &op->direction; 1490 ri = op->direction; rv = &ri;
1480 *type = CFAPI_INT; 1491 *type = CFAPI_INT;
1481 break; 1492 break;
1482 1493
1483 case CFAPI_OBJECT_PROP_FACING: 1494 case CFAPI_OBJECT_PROP_FACING:
1484 rv = &op->facing; 1495 ri = op->facing; rv = &ri;
1485 *type = CFAPI_INT; 1496 *type = CFAPI_INT;
1486 break; 1497 break;
1487 1498
1488 case CFAPI_OBJECT_PROP_TYPE: 1499 case CFAPI_OBJECT_PROP_TYPE:
1489 rv = &op->type; 1500 ri = op->type; rv = &ri;
1490 *type = CFAPI_INT; 1501 *type = CFAPI_INT;
1491 break; 1502 break;
1492 1503
1493 case CFAPI_OBJECT_PROP_SUBTYPE: 1504 case CFAPI_OBJECT_PROP_SUBTYPE:
1494 rv = &op->subtype; 1505 ri = op->subtype; rv = &ri;
1495 *type = CFAPI_INT; 1506 *type = CFAPI_INT;
1496 break; 1507 break;
1497 1508
1498 case CFAPI_OBJECT_PROP_CLIENT_TYPE: 1509 case CFAPI_OBJECT_PROP_CLIENT_TYPE:
1499 rv = &op->client_type; 1510 ri = op->client_type; rv = &ri;
1500 *type = CFAPI_INT; 1511 *type = CFAPI_INT;
1501 break; 1512 break;
1502 1513
1503 case CFAPI_OBJECT_PROP_RESIST: 1514 case CFAPI_OBJECT_PROP_RESIST:
1504 { 1515 {
1505 int idx; 1516 int idx;
1506 idx = va_arg(args, int); 1517 idx = va_arg(args, int);
1507 rv = &op->resist[idx]; 1518 ri = op->resist[idx]; rv = &ri;
1508 } 1519 }
1509 *type = CFAPI_INT16; 1520 *type = CFAPI_INT;
1510 break; 1521 break;
1511 1522
1512 case CFAPI_OBJECT_PROP_ATTACK_TYPE: 1523 case CFAPI_OBJECT_PROP_ATTACK_TYPE:
1513 rv = &op->attacktype; 1524 ri = op->attacktype; rv = &ri;
1514 *type = CFAPI_INT; 1525 *type = CFAPI_INT;
1515 break; 1526 break;
1516 1527
1517 case CFAPI_OBJECT_PROP_PATH_ATTUNED: 1528 case CFAPI_OBJECT_PROP_PATH_ATTUNED:
1518 rv = &op->path_attuned; 1529 ri = op->path_attuned; rv = &ri;
1519 *type = CFAPI_INT; 1530 *type = CFAPI_INT;
1520 break; 1531 break;
1521 1532
1522 case CFAPI_OBJECT_PROP_PATH_REPELLED: 1533 case CFAPI_OBJECT_PROP_PATH_REPELLED:
1523 rv = &op->path_repelled; 1534 ri = op->path_repelled; rv = &ri;
1524 *type = CFAPI_INT; 1535 *type = CFAPI_INT;
1525 break; 1536 break;
1526 1537
1527 case CFAPI_OBJECT_PROP_PATH_DENIED: 1538 case CFAPI_OBJECT_PROP_PATH_DENIED:
1528 rv = &op->path_denied; 1539 ri = op->path_denied; rv = &ri;
1529 *type = CFAPI_INT; 1540 *type = CFAPI_INT;
1530 break; 1541 break;
1531 1542
1532 case CFAPI_OBJECT_PROP_MATERIAL: 1543 case CFAPI_OBJECT_PROP_MATERIAL:
1533 rv = &op->material; 1544 ri = op->material; rv = &ri;
1534 *type = CFAPI_INT; 1545 *type = CFAPI_INT;
1535 break; 1546 break;
1536 1547
1537 case CFAPI_OBJECT_PROP_MATERIAL_NAME: 1548 case CFAPI_OBJECT_PROP_MATERIAL_NAME:
1538 rv = (char*)op->materialname; 1549 rv = (char*)op->materialname;
1539 *type = CFAPI_STRING; 1550 *type = CFAPI_STRING;
1540 break; 1551 break;
1541 1552
1542 case CFAPI_OBJECT_PROP_MAGIC: 1553 case CFAPI_OBJECT_PROP_MAGIC:
1543 rv = &op->magic; 1554 ri = op->magic; rv = &ri;
1544 *type = CFAPI_INT; 1555 *type = CFAPI_INT;
1545 break; 1556 break;
1546 1557
1547 case CFAPI_OBJECT_PROP_VALUE: 1558 case CFAPI_OBJECT_PROP_VALUE:
1548 rv = &op->value; 1559 ri = op->value; rv = &ri;
1549 *type = CFAPI_INT; 1560 *type = CFAPI_INT;
1550 break; 1561 break;
1551 1562
1552 case CFAPI_OBJECT_PROP_LEVEL: 1563 case CFAPI_OBJECT_PROP_LEVEL:
1553 rv = &op->level; 1564 ri = op->level; rv = &ri;
1554 *type = CFAPI_INT; 1565 *type = CFAPI_INT;
1555 break; 1566 break;
1556 1567
1557 case CFAPI_OBJECT_PROP_LAST_HEAL: 1568 case CFAPI_OBJECT_PROP_LAST_HEAL:
1558 rv = &op->last_heal; 1569 ri = op->last_heal; rv = &ri;
1559 *type = CFAPI_INT; 1570 *type = CFAPI_INT;
1560 break; 1571 break;
1561 1572
1562 case CFAPI_OBJECT_PROP_LAST_SP: 1573 case CFAPI_OBJECT_PROP_LAST_SP:
1563 rv = &op->last_sp; 1574 ri = op->last_sp; rv = &ri;
1564 *type = CFAPI_INT; 1575 *type = CFAPI_INT;
1565 break; 1576 break;
1566 1577
1567 case CFAPI_OBJECT_PROP_LAST_GRACE: 1578 case CFAPI_OBJECT_PROP_LAST_GRACE:
1568 rv = &op->last_grace; 1579 ri = op->last_grace; rv = &ri;
1569 *type = CFAPI_INT; 1580 *type = CFAPI_INT;
1570 break; 1581 break;
1571 1582
1572 case CFAPI_OBJECT_PROP_LAST_EAT: 1583 case CFAPI_OBJECT_PROP_LAST_EAT:
1573 rv = &op->last_eat; 1584 ri = op->last_eat; rv = &ri;
1574 *type = CFAPI_INT; 1585 *type = CFAPI_INT;
1575 break; 1586 break;
1576 1587
1577 case CFAPI_OBJECT_PROP_INVISIBLE_TIME: 1588 case CFAPI_OBJECT_PROP_INVISIBLE_TIME:
1578 rv = &op->invisible; 1589 ri = op->invisible; rv = &ri;
1579 *type = CFAPI_INT; 1590 *type = CFAPI_INT;
1580 break; 1591 break;
1581 1592
1582 case CFAPI_OBJECT_PROP_PICK_UP: 1593 case CFAPI_OBJECT_PROP_PICK_UP:
1583 rv = &op->pick_up; 1594 ri = op->pick_up; rv = &ri;
1584 *type = CFAPI_INT; 1595 *type = CFAPI_INT;
1585 break; 1596 break;
1586 1597
1587 case CFAPI_OBJECT_PROP_ITEM_POWER: 1598 case CFAPI_OBJECT_PROP_ITEM_POWER:
1588 rv = &op->item_power; 1599 ri = op->item_power; rv = &ri;
1589 *type = CFAPI_INT; 1600 *type = CFAPI_INT;
1590 break; 1601 break;
1591 1602
1592 case CFAPI_OBJECT_PROP_GEN_SP_ARMOUR: 1603 case CFAPI_OBJECT_PROP_GEN_SP_ARMOUR:
1593 rv = &op->gen_sp_armour; 1604 ri = op->gen_sp_armour; rv = &ri;
1594 *type = CFAPI_INT; 1605 *type = CFAPI_INT;
1595 break; 1606 break;
1596 1607
1597 case CFAPI_OBJECT_PROP_WEIGHT: 1608 case CFAPI_OBJECT_PROP_WEIGHT:
1598 rv = &op->weight; 1609 ri = op->weight; rv = &ri;
1599 *type = CFAPI_INT; 1610 *type = CFAPI_INT;
1600 break; 1611 break;
1601 1612
1602 case CFAPI_OBJECT_PROP_WEIGHT_LIMIT: 1613 case CFAPI_OBJECT_PROP_WEIGHT_LIMIT:
1603 rv = &op->weight_limit; 1614 ri = op->weight_limit; rv = &ri;
1604 *type = CFAPI_INT; 1615 *type = CFAPI_INT;
1605 break; 1616 break;
1606 1617
1607 case CFAPI_OBJECT_PROP_CARRYING: 1618 case CFAPI_OBJECT_PROP_CARRYING:
1608 rv = &op->carrying; 1619 ri = op->carrying; rv = &ri;
1609 *type = CFAPI_INT; 1620 *type = CFAPI_INT;
1610 break; 1621 break;
1611 1622
1612 case CFAPI_OBJECT_PROP_GLOW_RADIUS: 1623 case CFAPI_OBJECT_PROP_GLOW_RADIUS:
1613 rv = &op->glow_radius; 1624 ri = op->glow_radius; rv = &ri;
1614 *type = CFAPI_INT; 1625 *type = CFAPI_INT;
1615 break; 1626 break;
1616 1627
1617 case CFAPI_OBJECT_PROP_PERM_EXP: 1628 case CFAPI_OBJECT_PROP_PERM_EXP:
1618 rv = &op->perm_exp; 1629 rv = &op->perm_exp;
1633 rv = op->attacked_by; 1644 rv = op->attacked_by;
1634 *type = CFAPI_POBJECT; 1645 *type = CFAPI_POBJECT;
1635 break; 1646 break;
1636 1647
1637 case CFAPI_OBJECT_PROP_RUN_AWAY: 1648 case CFAPI_OBJECT_PROP_RUN_AWAY:
1638 rv = &op->run_away; 1649 ri = op->run_away; rv = &ri;
1639 *type = CFAPI_INT; 1650 *type = CFAPI_INT;
1640 break; 1651 break;
1641 1652
1642 case CFAPI_OBJECT_PROP_CHOSEN_SKILL: 1653 case CFAPI_OBJECT_PROP_CHOSEN_SKILL:
1643 rv = op->chosen_skill; 1654 rv = op->chosen_skill;
1644 *type = CFAPI_POBJECT; 1655 *type = CFAPI_POBJECT;
1645 break; 1656 break;
1646 1657
1647 case CFAPI_OBJECT_PROP_HIDDEN: 1658 case CFAPI_OBJECT_PROP_HIDDEN:
1648 rv = &op->hide; 1659 ri = op->hide; rv = &ri;
1649 *type = CFAPI_INT; 1660 *type = CFAPI_INT;
1650 break; 1661 break;
1651 1662
1652 case CFAPI_OBJECT_PROP_MOVE_STATUS: 1663 case CFAPI_OBJECT_PROP_MOVE_STATUS:
1653 rv = &op->move_status; 1664 ri = op->move_status; rv = &ri;
1654 *type = CFAPI_INT; 1665 *type = CFAPI_INT;
1655 break; 1666 break;
1656 1667
1657 case CFAPI_OBJECT_PROP_MOVE_TYPE: 1668 case CFAPI_OBJECT_PROP_MOVE_TYPE:
1658 rv = &op->attack_movement; 1669 ri = op->attack_movement; rv = &ri;
1659 *type = CFAPI_INT; 1670 *type = CFAPI_INT;
1660 break; 1671 break;
1661 1672
1662 case CFAPI_OBJECT_PROP_SPELL_ITEM: 1673 case CFAPI_OBJECT_PROP_SPELL_ITEM:
1663 rv = op->spellitem; 1674 rv = op->spellitem;
1683 rv = (char*)op->custom_name; 1694 rv = (char*)op->custom_name;
1684 *type = CFAPI_STRING; 1695 *type = CFAPI_STRING;
1685 break; 1696 break;
1686 1697
1687 case CFAPI_OBJECT_PROP_ANIM_SPEED: 1698 case CFAPI_OBJECT_PROP_ANIM_SPEED:
1688 rv = &op->anim_speed; 1699 ri = op->anim_speed; rv = &ri;
1689 *type = CFAPI_INT; 1700 *type = CFAPI_INT;
1690 break; 1701 break;
1691 1702
1692 case CFAPI_OBJECT_PROP_FRIENDLY: 1703 case CFAPI_OBJECT_PROP_FRIENDLY:
1693 ri = is_friendly(op); 1704 ri = is_friendly(op);
1714 rv = &ri; 1725 rv = &ri;
1715 *type = CFAPI_INT; 1726 *type = CFAPI_INT;
1716 break; 1727 break;
1717 1728
1718 case CFAPI_OBJECT_PROP_LUCK: 1729 case CFAPI_OBJECT_PROP_LUCK:
1719 rv = &op->stats.luck; 1730 ri = op->stats.luck; rv = &ri;
1720 *type = CFAPI_INT; 1731 *type = CFAPI_INT;
1721 break; 1732 break;
1722 1733
1723 case CFAPI_OBJECT_PROP_EXP: 1734 case CFAPI_OBJECT_PROP_EXP:
1724 rv = &op->stats.exp; 1735 rv = &op->stats.exp;
1761 *type = CFAPI_POBJECT; 1772 *type = CFAPI_POBJECT;
1762 break; 1773 break;
1763 1774
1764 case CFAPI_OBJECT_PROP_CHEATER: 1775 case CFAPI_OBJECT_PROP_CHEATER:
1765 ri = (QUERY_FLAG(op, FLAG_WAS_WIZ)); 1776 ri = (QUERY_FLAG(op, FLAG_WAS_WIZ));
1777 rv = &ri;
1766 *type = CFAPI_INT; 1778 *type = CFAPI_INT;
1767 break; 1779 break;
1768 1780
1769 case CFAPI_OBJECT_PROP_MERGEABLE: 1781 case CFAPI_OBJECT_PROP_MERGEABLE:
1770 { 1782 {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines