… | |
… | |
35 | * keep the game running. Thus, we don't want to free any information. |
35 | * keep the game running. Thus, we don't want to free any information. |
36 | */ |
36 | */ |
37 | void |
37 | void |
38 | emergency_save (int flag) |
38 | emergency_save (int flag) |
39 | { |
39 | { |
40 | player *pl; |
|
|
41 | |
|
|
42 | trying_emergency_save = 1; |
40 | trying_emergency_save = 1; |
43 | |
41 | |
44 | LOG (llevError, "Emergency save: "); |
42 | LOG (llevError, "Emergency save: "); |
45 | for (pl = first_player; pl; pl = pl->next) |
43 | for_all_players (pl) |
46 | { |
44 | { |
47 | if (!pl->ob) |
45 | if (!pl->ob) |
48 | { |
46 | { |
49 | LOG (llevError, "No name, ignoring this.\n"); |
47 | LOG (llevError, "No name, ignoring this.\n"); |
50 | continue; |
48 | continue; |
… | |
… | |
194 | |
192 | |
195 | fprintf (freezer, "endplst\n"); |
193 | fprintf (freezer, "endplst\n"); |
196 | |
194 | |
197 | SET_FLAG (ob, FLAG_NO_FIX_PLAYER); |
195 | SET_FLAG (ob, FLAG_NO_FIX_PLAYER); |
198 | CLEAR_FLAG (ob, FLAG_WIZ); |
196 | CLEAR_FLAG (ob, FLAG_WIZ); |
199 | save_object (freezer, ob, 3); /* don't check and don't remove */ |
197 | save_object (freezer, ob, 1); /* don't check and don't remove */ |
200 | |
198 | |
201 | char filename[MAX_BUF]; |
199 | char filename[MAX_BUF]; |
202 | |
200 | |
203 | sprintf (filename, "%s/%s/%s/%s.pl", settings.localdir, settings.playerdir, &ob->name, &ob->name); |
201 | sprintf (filename, "%s/%s/%s/%s.pl", settings.localdir, settings.playerdir, &ob->name, &ob->name); |
204 | make_path_to_file (filename); |
202 | make_path_to_file (filename); |