1 | /* |
1 | /* |
2 | * static char *rcsid_glue_c = |
2 | * This file is part of Deliantra, the Roguelike Realtime MMORPG. |
3 | * "$Id: glue.C,v 1.1 2006/08/13 17:16:00 elmex Exp $"; |
3 | * |
|
|
4 | * Copyright (©) 2005,2006,2007 Marc Alexander Lehmann / Robin Redeker / the Deliantra team |
|
|
5 | * Copyright (©) 2002,2007 Mark Wedel & Crossfire Development Team |
|
|
6 | * Copyright (©) 1992,2007 Frank Tore Johansen |
|
|
7 | * |
|
|
8 | * Deliantra 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 3 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, see <http://www.gnu.org/licenses/>. |
|
|
20 | * |
|
|
21 | * The authors can be reached via e-mail to <support@deliantra.net> |
4 | */ |
22 | */ |
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 | |
23 | |
29 | #include <global.h> |
24 | #include <global.h> |
30 | |
25 | |
31 | /* |
26 | /* |
32 | * All this glue is currently needed to connect the game with the |
27 | * All this glue is currently needed to connect the game with the |
… | |
… | |
36 | * |
31 | * |
37 | * Glue has been cleaned, so this file is almost empty now :) |
32 | * Glue has been cleaned, so this file is almost empty now :) |
38 | * Ryo 2005-07-15 |
33 | * Ryo 2005-07-15 |
39 | */ |
34 | */ |
40 | |
35 | |
41 | static const char* const fatalmsgs[80]={ |
36 | static const char *const fatalmsgs[80] = { |
42 | "Failed to allocate memory", |
37 | "Failed to allocate memory", |
43 | "Failed repeatedly to load maps", |
38 | "Failed repeatedly to load maps", |
44 | "Hashtable for archetypes is too small", |
39 | "Hashtable for archetypes is too small", |
45 | "Too many errors" |
40 | "Too many errors" |
46 | }; |
41 | }; |
47 | |
42 | |
48 | /* |
43 | /* |
49 | * fatal() is meant to be called whenever a fatal signal is intercepted. |
44 | * 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. |
45 | * It will call the emergency_save and the clean_tmp_files functions. |
51 | */ |
46 | */ |
|
|
47 | void |
52 | void fatal(int err) { |
48 | fatal (int err) |
|
|
49 | { |
53 | fprintf(logfile,"Fatal: %s\n",fatalmsgs[err]); |
50 | LOG (llevError, "Fatal: %s\n", fatalmsgs [err]); |
54 | emergency_save(0); |
51 | cleanup (fatalmsgs[err], 1); |
55 | clean_tmp_files(); |
|
|
56 | fprintf(logfile,"Exiting...\n"); |
|
|
57 | exit(err); |
|
|
58 | } |
52 | } |
|
|
53 | |