1 | /* |
|
|
2 | * static char *rcsid_glue_c = |
|
|
3 | * "$Id: glue.C,v 1.1 2006/08/13 17:16:00 elmex Exp $"; |
|
|
4 | */ |
|
|
5 | |
|
|
6 | /* |
1 | /* |
7 | CrossFire, A Multiplayer game for X-windows |
2 | CrossFire, A Multiplayer game for X-windows |
8 | |
3 | |
|
|
4 | Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team |
9 | Copyright (C) 2002 Mark Wedel & Crossfire Development Team |
5 | Copyright (C) 2002 Mark Wedel & Crossfire Development Team |
10 | Copyright (C) 1992 Frank Tore Johansen |
6 | Copyright (C) 1992 Frank Tore Johansen |
11 | |
7 | |
12 | This program is free software; you can redistribute it and/or modify |
8 | This program is free software; you can redistribute it and/or modify |
13 | it under the terms of the GNU General Public License as published by |
9 | it under the terms of the GNU General Public License as published by |
… | |
… | |
21 | |
17 | |
22 | You should have received a copy of the GNU General Public License |
18 | You should have received a copy of the GNU General Public License |
23 | along with this program; if not, write to the Free Software |
19 | along with this program; if not, write to the Free Software |
24 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
20 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
25 | |
21 | |
26 | The authors can be reached via e-mail at crossfire-devel@real-time.com |
22 | The authors can be reached via e-mail at <crossfire@schmorp.de> |
27 | */ |
23 | */ |
28 | |
24 | |
29 | #include <global.h> |
25 | #include <global.h> |
30 | |
26 | |
31 | /* |
27 | /* |
… | |
… | |
36 | * |
32 | * |
37 | * Glue has been cleaned, so this file is almost empty now :) |
33 | * Glue has been cleaned, so this file is almost empty now :) |
38 | * Ryo 2005-07-15 |
34 | * Ryo 2005-07-15 |
39 | */ |
35 | */ |
40 | |
36 | |
41 | static const char* const fatalmsgs[80]={ |
37 | static const char *const fatalmsgs[80] = { |
42 | "Failed to allocate memory", |
38 | "Failed to allocate memory", |
43 | "Failed repeatedly to load maps", |
39 | "Failed repeatedly to load maps", |
44 | "Hashtable for archetypes is too small", |
40 | "Hashtable for archetypes is too small", |
45 | "Too many errors" |
41 | "Too many errors" |
46 | }; |
42 | }; |
47 | |
43 | |
48 | /* |
44 | /* |
49 | * fatal() is meant to be called whenever a fatal signal is intercepted. |
45 | * fatal() is meant to be called whenever a fatal signal is intercepted. |
50 | * It will call the emergency_save and the clean_tmp_files functions. |
46 | * It will call the emergency_save and the clean_tmp_files functions. |
51 | */ |
47 | */ |
|
|
48 | void |
52 | void fatal(int err) { |
49 | fatal (int err) |
|
|
50 | { |
53 | fprintf(logfile,"Fatal: %s\n",fatalmsgs[err]); |
51 | fprintf (logfile, "Fatal: %s\n", fatalmsgs[err]); |
54 | emergency_save(0); |
52 | cleanup (fatalmsgs[err], 1); |
55 | clean_tmp_files(); |
|
|
56 | fprintf(logfile,"Exiting...\n"); |
|
|
57 | exit(err); |
|
|
58 | } |
53 | } |
|
|
54 | |