blob: 555a75eb2fdce2225ab22ff931d6da70bcb3d859 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001// MorgenGrauen MUDlib
2/** \file /file.c
3* Kurzbeschreibung.
4* Langbeschreibung...
5* \author <Autor>
6* \date <date>
7* \version $Id$
8*/
9/* Changelog:
10*/
11#pragma strong_types, save_types, rtt_checks
12#pragma no_clone, no_shadow
13#pragma pedantic, range_check
14#pragma warn_deprecated
15
16private void check_all_player(mapping allplayer, closure check_cl,
17 closure finish_cl, int res,
18 varargs mixed extra)
19{
20 // offenbar fertig mit allen Spielern, Aufrufer informieren.
21 if (!sizeof(allplayer))
22 {
23 funcall(finish_cl, extra...);
24 return;
25 }
26
27 string dir=m_indices(allplayer)[0];
28 string *pls=allplayer[dir];
29 foreach(string pl: &pls)
30 {
31 if (get_eval_cost() < res)
32 break; // spaeter weitermachen
33 catch(funcall(check_cl, pl, extra...) ; publish);
34 pl = 0;
35 }
36 pls-=({0});
37 allplayer[dir] = pls;
38
39 if (!sizeof(allplayer[dir]))
40 m_delete(allplayer,dir);
41
42 call_out(#'check_all_player,2, allplayer, check_cl, finish_cl, res, extra...);
43}
44
45protected int start_player_check(closure check_cl, closure finish_cl, int res,
46 varargs mixed extra)
47{
48 res ||= 1250000;
49 mapping allplayer=(mapping)master()->get_all_players();
50 call_out(#'check_all_player,2, allplayer, check_cl, finish_cl, res, extra...);
51 return 1;
52}
53