version 1.9 | | version 1.10 |
---|
| | |
/* | | /* |
* static char *rcsid_time_c = | | * static char *rcsid_time_c = |
* "$Id: time.c,v 1.9 2000/06/13 16:58:41 jec Exp $"; | | * "$Id: time.c,v 1.10 2000/07/28 07:10:21 cvs Exp $"; |
*/ | | */ |
| | |
/* | | /* |
CrossFire, A Multiplayer game for X-windows | | CrossFire, A Multiplayer game for X-windows |
| | |
Copyright (C) 1994 Mark Wedel | | Copyright (C) 2000 Mark Wedel |
Copyright (C) 1992 Frank Tore Johansen | | Copyright (C) 1992 Frank Tore Johansen |
| | |
This program is free software; you can redistribute it and/or modify | | This program is free software; you can redistribute it and/or modify |
| | |
along with this program; if not, write to the Free Software | | along with this program; if not, write to the Free Software |
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
| | |
The author can be reached via e-mail to master@rahul.net | | The author can be reached via e-mail to mwedel@scruz.net |
*/ | | */ |
| | |
/* | | /* |
| | |
* Modified this routine to allow held objects. b.t. */ | | * Modified this routine to allow held objects. b.t. */ |
| | |
void change_object(object *op) { /* Doesn`t handle linked objs yet */ | | void change_object(object *op) { /* Doesn`t handle linked objs yet */ |
object *tmp,*env; | | object *tmp,*env,*pl; |
int i,j; | | int i,j; |
| | |
if(op->other_arch==NULL) { | | if(op->other_arch==NULL) { |
| | |
tmp->stats.hp=op->stats.hp; /* The only variable it keeps. */ | | tmp->stats.hp=op->stats.hp; /* The only variable it keeps. */ |
if(env) { | | if(env) { |
tmp->x=env->x,tmp->y=env->y; | | tmp->x=env->x,tmp->y=env->y; |
insert_ob_in_ob(tmp,env); | | tmp=insert_ob_in_ob(tmp,env); |
| | /* If this object is the players inventory, we need to tell the |
| | * client of the change. Insert_ob_in_map takes care of the |
| | * updating the client, so we don't need to do that below. |
| | */ |
| | if ((pl=is_player_inv(env))!=NULL) { |
| | esrv_del_item(pl->contr, op->count); |
| | esrv_send_item(pl, tmp); |
| | } |
} else { | | } else { |
j=find_first_free_spot(tmp->arch,op->map,op->x,op->y); | | j=find_first_free_spot(tmp->arch,op->map,op->x,op->y); |
if (j==-1) /* No free spot */ | | if (j==-1) /* No free spot */ |