version 1.26 | | version 1.27 |
---|
| | |
/* | | /* |
* static char *rcsid_time_c = | | * static char *rcsid_time_c = |
* "$Id: time.c,v 1.26 2001/07/14 04:11:18 mwedel Exp $"; | | * "$Id: time.c,v 1.27 2001/08/05 05:07:20 mwedel Exp $"; |
*/ | | */ |
| | |
/* | | /* |
| | |
| | |
void move_teleporter(object *op) { | | void move_teleporter(object *op) { |
| | |
if(op->above!=NULL) { | | /* If nothing above us, nothing to do */ |
| | if (!op->above) return; |
| | |
| | /* Some things can't get moved */ |
| | if (QUERY_FLAG(op->above, FLAG_NO_PASS) || |
| | QUERY_FLAG(op->above, FLAG_IS_FLOOR)) return; |
| | |
if(EXIT_PATH(op)) { | | if(EXIT_PATH(op)) { |
if(op->above->type==PLAYER) | | if(op->above->type==PLAYER) |
enter_exit(op->above,op); | | enter_exit(op->above,op); |
else | | else |
| | /* Currently only players can transfer maps */ |
return; | | return; |
} | | } |
else if(EXIT_X(op)||EXIT_Y(op)) | | else if(EXIT_X(op)||EXIT_Y(op)) { |
{ | | if (out_of_map(op->map, EXIT_X(op), EXIT_Y(op))) { |
if (out_of_map(op->map, EXIT_X(op), EXIT_Y(op))) | | |
{ | | |
LOG(llevError, "Removed illegal teleporter.\n"); | | LOG(llevError, "Removed illegal teleporter.\n"); |
remove_ob(op); | | remove_ob(op); |
free_object(op); | | free_object(op); |
| | |
} | | } |
transfer_ob(op->above,EXIT_X(op),EXIT_Y(op),0,op); | | transfer_ob(op->above,EXIT_X(op),EXIT_Y(op),0,op); |
} else | | } else |
| | /* Random teleporter */ |
teleport(op,TELEPORTER,op); | | teleport(op,TELEPORTER,op); |
} | | } |
} | | |
| | |
/* This object will teleport someone to a different map | | /* This object will teleport someone to a different map |
and will also apply changes to the player from its inventory. | | and will also apply changes to the player from its inventory. |