1 | /* |
1 | /* |
2 | * static char *rcsid_time_c = |
2 | * static char *rcsid_time_c = |
3 | * "$Id: time.C,v 1.2 2006/08/26 23:36:34 root Exp $"; |
3 | * "$Id: time.C,v 1.3 2006/08/27 15:24:22 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 | |
… | |
… | |
864 | /* If nothing above us to move, nothing to do */ |
864 | /* If nothing above us to move, nothing to do */ |
865 | if (!tmp || QUERY_FLAG(tmp, FLAG_WIZPASS)) return; |
865 | if (!tmp || QUERY_FLAG(tmp, FLAG_WIZPASS)) return; |
866 | |
866 | |
867 | if(EXIT_PATH(head)) { |
867 | if(EXIT_PATH(head)) { |
868 | if(tmp->type==PLAYER) { |
868 | if(tmp->type==PLAYER) { |
869 | /* Lauwenmark: Handle for plugin TRIGGER event */ |
869 | if (INVOKE_OBJECT (TRIGGER, op, ARG_OBJECT (tmp))) |
870 | if (execute_event(op, EVENT_TRIGGER, tmp, NULL, NULL, SCRIPT_FIX_ALL) != 0) |
|
|
871 | return; |
870 | return; |
|
|
871 | |
872 | enter_exit(tmp, head); |
872 | enter_exit(tmp, head); |
873 | } |
873 | } |
874 | else |
874 | else |
875 | /* Currently only players can transfer maps */ |
875 | /* Currently only players can transfer maps */ |
876 | return; |
876 | return; |
… | |
… | |
880 | LOG(llevError, "Removed illegal teleporter.\n"); |
880 | LOG(llevError, "Removed illegal teleporter.\n"); |
881 | remove_ob(head); |
881 | remove_ob(head); |
882 | free_object(head); |
882 | free_object(head); |
883 | return; |
883 | return; |
884 | } |
884 | } |
885 | /* Lauwenmark: Handle for plugin TRIGGER event */ |
885 | if (INVOKE_OBJECT (TRIGGER, op, ARG_OBJECT (tmp))) |
886 | if (execute_event(op, EVENT_TRIGGER, tmp, NULL, NULL, SCRIPT_FIX_ALL) != 0) |
|
|
887 | return; |
886 | return; |
888 | transfer_ob(tmp,EXIT_X(head),EXIT_Y(head),0,head); |
887 | transfer_ob(tmp,EXIT_X(head),EXIT_Y(head),0,head); |
889 | } |
888 | } |
890 | else { |
889 | else { |
891 | /* Random teleporter */ |
890 | /* Random teleporter */ |
892 | /* Lauwenmark: Handle for plugin TRIGGER event */ |
891 | if (INVOKE_OBJECT (TRIGGER, op, ARG_OBJECT (tmp))) |
893 | if (execute_event(op, EVENT_TRIGGER, tmp, NULL, NULL, SCRIPT_FIX_ALL) != 0) |
|
|
894 | return; |
892 | return; |
895 | teleport(head, TELEPORTER, tmp); |
893 | teleport(head, TELEPORTER, tmp); |
896 | } |
894 | } |
897 | } |
895 | } |
898 | |
896 | |
… | |
… | |
912 | |
910 | |
913 | /* This isn't all that great - means that the player_mover |
911 | /* This isn't all that great - means that the player_mover |
914 | * needs to be on top. |
912 | * needs to be on top. |
915 | */ |
913 | */ |
916 | if(op->above->type==PLAYER) { |
914 | if(op->above->type==PLAYER) { |
917 | /* Lauwenmark: Handle for plugin TRIGGER event */ |
915 | if (INVOKE_OBJECT (TRIGGER, op, ARG_OBJECT (player))) |
918 | if (execute_event(op, EVENT_TRIGGER,op->above,NULL,NULL,SCRIPT_FIX_NOTHING)!=0) |
|
|
919 | return; |
916 | return; |
920 | player=op->above; |
917 | player=op->above; |
921 | for(walk=op->inv;walk!=NULL;walk=walk->below) |
918 | for(walk=op->inv;walk!=NULL;walk=walk->below) |
922 | apply_changes_to_player(player,walk); |
919 | apply_changes_to_player(player,walk); |
923 | |
920 | |