1 | /* |
1 | /* |
2 | * static char *rcsid_glue_c = |
2 | * CrossFire, A Multiplayer game |
3 | * "$Id: glue.C,v 1.1 2006/08/13 17:16:00 elmex Exp $"; |
3 | * |
|
|
4 | * Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team |
|
|
5 | * Copyright (C) 2002 Mark Wedel & Crossfire Development Team |
|
|
6 | * Copyright (C) 1992 Frank Tore Johansen |
|
|
7 | * |
|
|
8 | * This program is free software; you can redistribute it and/or modify |
|
|
9 | * it under the terms of the GNU General Public License as published by |
|
|
10 | * the Free Software Foundation; either version 2 of the License, or |
|
|
11 | * (at your option) any later version. |
|
|
12 | * |
|
|
13 | * This program is distributed in the hope that it will be useful, |
|
|
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
|
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
|
16 | * GNU General Public License for more details. |
|
|
17 | * |
|
|
18 | * You should have received a copy of the GNU General Public License |
|
|
19 | * along with this program; if not, write to the Free Software |
|
|
20 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
|
|
21 | * |
|
|
22 | * The authors can be reached via e-mail at <crossfire@schmorp.de> |
4 | */ |
23 | */ |
5 | |
|
|
6 | /* |
|
|
7 | CrossFire, A Multiplayer game for X-windows |
|
|
8 | |
|
|
9 | Copyright (C) 2002 Mark Wedel & Crossfire Development Team |
|
|
10 | Copyright (C) 1992 Frank Tore Johansen |
|
|
11 | |
|
|
12 | 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 |
|
|
14 | the Free Software Foundation; either version 2 of the License, or |
|
|
15 | (at your option) any later version. |
|
|
16 | |
|
|
17 | This program is distributed in the hope that it will be useful, |
|
|
18 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
|
19 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
|
20 | GNU General Public License for more details. |
|
|
21 | |
|
|
22 | You should have received a copy of the GNU General Public License |
|
|
23 | along with this program; if not, write to the Free Software |
|
|
24 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
|
|
25 | |
|
|
26 | The authors can be reached via e-mail at crossfire-devel@real-time.com |
|
|
27 | */ |
|
|
28 | |
24 | |
29 | #include <global.h> |
25 | #include <global.h> |
30 | |
26 | |
31 | /* |
27 | /* |
32 | * All this glue is currently needed to connect the game with the |
28 | * All this glue is currently needed to connect the game with the |
… | |
… | |
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 | |