1 | /* |
1 | /* |
2 | * static char *rcsid_main_c = |
2 | * static char *rcsid_main_c = |
3 | * "$Id: main.C,v 1.7 2006/08/26 08:44:06 root Exp $"; |
3 | * "$Id: main.C,v 1.8 2006/08/27 16:15:13 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 | |
… | |
… | |
288 | */ |
288 | */ |
289 | if(!QUERY_FLAG(op, FLAG_REMOVED)) |
289 | if(!QUERY_FLAG(op, FLAG_REMOVED)) |
290 | remove_ob(op); |
290 | remove_ob(op); |
291 | |
291 | |
292 | if (op->map!=NULL) |
292 | if (op->map!=NULL) |
|
|
293 | { |
293 | INVOKE_PLAYER (LEAVE, op->contr); |
294 | INVOKE_PLAYER (LEAVE, op->contr, ARG_MAP (op->map)); |
|
|
295 | INVOKE_MAP (LEAVE, op->map, ARG_PLAYER (op->contr)); |
|
|
296 | } |
294 | |
297 | |
295 | /* remove_ob clears these so they must be reset after the remove_ob call */ |
298 | /* remove_ob clears these so they must be reset after the remove_ob call */ |
296 | op->x = x; |
299 | op->x = x; |
297 | op->y = y; |
300 | op->y = y; |
298 | op->map = newmap; |
301 | op->map = newmap; |
299 | insert_ob_in_map(op,op->map,NULL,INS_NO_WALK_ON); |
302 | insert_ob_in_map(op,op->map,NULL,INS_NO_WALK_ON); |
300 | |
303 | |
301 | INVOKE_PLAYER (ENTER, op->contr); |
304 | INVOKE_PLAYER (ENTER, op->contr, ARG_MAP (op->map)); |
|
|
305 | INVOKE_MAP (ENTER, op->map, ARG_PLAYER (op->contr)); |
302 | |
306 | |
303 | if (!op->contr->hidden) |
307 | if (!op->contr->hidden) |
304 | newmap->players++; |
308 | newmap->players++; |
305 | |
309 | |
306 | newmap->timeout=0; |
310 | newmap->timeout=0; |