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

Comparing deliantra/server/common/object.c (file contents):
Revision 1.5 by root, Mon May 29 15:28:24 2006 UTC vs.
Revision 1.6 by root, Sun Jun 4 19:46:55 2006 UTC

1/* 1/*
2 * static char *rcsid_object_c = 2 * static char *rcsid_object_c =
3 * "$Id: object.c,v 1.5 2006/05/29 15:28:24 root Exp $"; 3 * "$Id: object.c,v 1.6 2006/06/04 19:46:55 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
1544 CLEAR_FLAG(op,FLAG_REMOVED); 1544 CLEAR_FLAG(op,FLAG_REMOVED);
1545 1545
1546 /* Debugging information so you can see the last coordinates this object had */ 1546 /* Debugging information so you can see the last coordinates this object had */
1547 op->ox=op->x; 1547 op->ox=op->x;
1548 op->oy=op->y; 1548 op->oy=op->y;
1549
1550 /* Ideally, the caller figures this out. However, it complicates a lot
1551 * of areas of callers (eg, anything that uses find_free_spot would now
1552 * need extra work
1553 */
1554 op->map=get_map_from_coord(m, &op->x, &op->y);
1549 x = op->x; 1555 x = op->x;
1550 y = op->y; 1556 y = op->y;
1551 op->map=get_map_from_coord(m, &x, &y);
1552 1557
1553 /* this has to be done after we translate the coordinates. 1558 /* this has to be done after we translate the coordinates.
1554 */ 1559 */
1555 if(op->nrof && !(flag & INS_NO_MERGE)) { 1560 if(op->nrof && !(flag & INS_NO_MERGE)) {
1556 for(tmp=GET_MAP_OB(op->map,x,y);tmp!=NULL;tmp=tmp->above) 1561 for(tmp=GET_MAP_OB(op->map,x,y);tmp!=NULL;tmp=tmp->above)
1557 if (CAN_MERGE(op,tmp)) { 1562 if (CAN_MERGE(op,tmp)) {
1558 op->nrof+=tmp->nrof; 1563 op->nrof+=tmp->nrof;
1559 remove_ob(tmp); 1564 remove_ob(tmp);
1560 free_object(tmp); 1565 free_object(tmp);
1561 } 1566 }
1562 }
1563
1564 /* Ideally, the caller figures this out. However, it complicates a lot
1565 * of areas of callers (eg, anything that uses find_free_spot would now
1566 * need extra work
1567 */
1568 if (op->map != m) {
1569 /* coordinates should not change unless map also changes */
1570 op->x = x;
1571 op->y = y;
1572 } 1567 }
1573 1568
1574 CLEAR_FLAG(op,FLAG_APPLIED); /* hack for fixing F_APPLIED in items of dead people */ 1569 CLEAR_FLAG(op,FLAG_APPLIED); /* hack for fixing F_APPLIED in items of dead people */
1575 CLEAR_FLAG(op, FLAG_INV_LOCKED); 1570 CLEAR_FLAG(op, FLAG_INV_LOCKED);
1576 if (!QUERY_FLAG(op, FLAG_ALIVE)) 1571 if (!QUERY_FLAG(op, FLAG_ALIVE))

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines