… | |
… | |
1024 | void |
1024 | void |
1025 | move_player_changer (object *op) |
1025 | move_player_changer (object *op) |
1026 | { |
1026 | { |
1027 | object *player; |
1027 | object *player; |
1028 | object *walk; |
1028 | object *walk; |
1029 | char c; |
|
|
1030 | |
1029 | |
1031 | if (!op->above || !EXIT_PATH (op)) |
1030 | if (!op->above || !EXIT_PATH (op)) |
1032 | return; |
1031 | return; |
1033 | |
1032 | |
1034 | /* This isn't all that great - means that the player_mover |
1033 | /* This isn't all that great - means that the player_mover |
… | |
… | |
1039 | if (INVOKE_OBJECT (TRIGGER, op, ARG_OBJECT (player))) |
1038 | if (INVOKE_OBJECT (TRIGGER, op, ARG_OBJECT (player))) |
1040 | return; |
1039 | return; |
1041 | |
1040 | |
1042 | player = op->above; |
1041 | player = op->above; |
1043 | |
1042 | |
1044 | for (walk = op->inv; walk != NULL; walk = walk->below) |
1043 | for (walk = op->inv; walk; walk = walk->below) |
1045 | apply_changes_to_player (player, walk); |
1044 | apply_changes_to_player (player, walk); |
1046 | |
1045 | |
1047 | player->update_stats (); |
1046 | player->update_stats (); |
1048 | |
1047 | |
1049 | esrv_send_inventory (op->above, op->above); |
1048 | esrv_send_inventory (op->above, op->above); |
1050 | esrv_update_item (UPD_FACE, op->above, op->above); |
1049 | esrv_update_item (UPD_FACE, op->above, op->above); |
1051 | |
1050 | |
1052 | /* update players death & WoR home-position */ |
1051 | /* update players death & WoR home-position */ |
1053 | sscanf (EXIT_PATH (op), "%c", &c); |
1052 | if (*EXIT_PATH (op) == '/') |
1054 | if (c == '/') |
|
|
1055 | { |
1053 | { |
1056 | player->contr->savebed_map = EXIT_PATH (op); |
1054 | player->contr->savebed_map = EXIT_PATH (op); |
1057 | player->contr->bed_x = EXIT_X (op); |
1055 | player->contr->bed_x = EXIT_X (op); |
1058 | player->contr->bed_y = EXIT_Y (op); |
1056 | player->contr->bed_y = EXIT_Y (op); |
1059 | } |
1057 | } |