author | maedhros |
Mon, 06 Aug 2007 12:54:03 +0000 | |
changeset 7417 | c0ddfb49c50b |
parent 6247 | 7d81e3a5d803 |
child 7435 | c5d1a7a3235c |
permissions | -rw-r--r-- |
5941
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
1 |
/* $Id$ */ |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
2 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
3 |
#include <AppKit/AppKit.h> |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
4 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
5 |
#include <mach/mach.h> |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
6 |
#include <mach/mach_host.h> |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
7 |
#include <mach/host_info.h> |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
8 |
#include <mach/machine.h> |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
9 |
#include <stdio.h> |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
10 |
#include "../../stdafx.h" |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
11 |
#include "../../macros.h" |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
12 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
13 |
#ifndef CPU_SUBTYPE_POWERPC_970 |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
14 |
#define CPU_SUBTYPE_POWERPC_970 ((cpu_subtype_t) 100) |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
15 |
#endif |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
16 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
17 |
/* |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
18 |
* This file contains objective C |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
19 |
* Apple uses objective C instead of plain C to interact with OS specific/native functions |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
20 |
* |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
21 |
* Note: TrueLight's crosscompiler can handle this, but it likely needs a manual modification for each change in this file. |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
22 |
* To insure that the crosscompiler still works, let him try any changes before they are committed |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
23 |
*/ |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
24 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
25 |
void ToggleFullScreen(bool fs); |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
26 |
|
6247 | 27 |
static char *GetOSString() |
5941
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
28 |
{ |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
29 |
static char buffer[175]; |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
30 |
const char* CPU; |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
31 |
char OS[20]; |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
32 |
char newgrf[125]; |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
33 |
long sysVersion; |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
34 |
extern const char _openttd_revision[]; |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
35 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
36 |
// get the hardware info |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
37 |
host_basic_info_data_t hostInfo; |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
38 |
mach_msg_type_number_t infoCount; |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
39 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
40 |
infoCount = HOST_BASIC_INFO_COUNT; |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
41 |
host_info( |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
42 |
mach_host_self(), HOST_BASIC_INFO, (host_info_t)&hostInfo, &infoCount |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
43 |
); |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
44 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
45 |
// replace the hardware info with strings, that tells a bit more than just an int |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
46 |
switch (hostInfo.cpu_subtype) { |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
47 |
#ifdef __POWERPC__ |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
48 |
case CPU_SUBTYPE_POWERPC_750: CPU = "G3"; break; |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
49 |
case CPU_SUBTYPE_POWERPC_7400: |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
50 |
case CPU_SUBTYPE_POWERPC_7450: CPU = "G4"; break; |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
51 |
case CPU_SUBTYPE_POWERPC_970: CPU = "G5"; break; |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
52 |
default: CPU = "Unknown PPC"; break; |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
53 |
#else |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
54 |
/* it looks odd to have a switch for two cases, but it leaves room for easy |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
55 |
* expansion. Odds are that Apple will some day use newer CPUs than i686 |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
56 |
*/ |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
57 |
case CPU_SUBTYPE_PENTPRO: CPU = "i686"; break; |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
58 |
default: CPU = "Unknown Intel"; break; |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
59 |
#endif |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
60 |
} |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
61 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
62 |
// get the version of OSX |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
63 |
if (Gestalt(gestaltSystemVersion, &sysVersion) != noErr) { |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
64 |
sprintf(OS, "Undetected"); |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
65 |
} else { |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
66 |
int majorHiNib = GB(sysVersion, 12, 4); |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
67 |
int majorLoNib = GB(sysVersion, 8, 4); |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
68 |
int minorNib = GB(sysVersion, 4, 4); |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
69 |
int bugNib = GB(sysVersion, 0, 4); |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
70 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
71 |
sprintf(OS, "%d%d.%d.%d", majorHiNib, majorLoNib, minorNib, bugNib); |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
72 |
} |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
73 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
74 |
// make a list of used newgrf files |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
75 |
/* if (_first_grffile != NULL) { |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
76 |
char* n = newgrf; |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
77 |
const GRFFile* file; |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
78 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
79 |
for (file = _first_grffile; file != NULL; file = file->next) { |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
80 |
n = strecpy(n, " ", lastof(newgrf)); |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
81 |
n = strecpy(n, file->filename, lastof(newgrf)); |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
82 |
} |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
83 |
} else {*/ |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
84 |
sprintf(newgrf, "none"); |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
85 |
// } |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
86 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
87 |
snprintf( |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
88 |
buffer, lengthof(buffer), |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
89 |
"Please add this info: (tip: copy-paste works)\n" |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
90 |
"CPU: %s, OSX: %s, OpenTTD version: %s\n" |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
91 |
"NewGRF files:%s", |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
92 |
CPU, OS, _openttd_revision, newgrf |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
93 |
); |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
94 |
return buffer; |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
95 |
} |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
96 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
97 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
98 |
#ifdef WITH_SDL |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
99 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
100 |
void ShowMacDialog(const char* title, const char* message, const char* buttonLabel) |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
101 |
{ |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
102 |
NSRunAlertPanel([NSString stringWithCString: title], [NSString stringWithCString: message], [NSString stringWithCString: buttonLabel], nil, nil); |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
103 |
} |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
104 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
105 |
#elif defined WITH_COCOA |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
106 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
107 |
void CocoaDialog(const char* title, const char* message, const char* buttonLabel); |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
108 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
109 |
void ShowMacDialog(const char* title, const char* message, const char* buttonLabel) |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
110 |
{ |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
111 |
CocoaDialog(title, message, buttonLabel); |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
112 |
} |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
113 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
114 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
115 |
#else |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
116 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
117 |
void ShowMacDialog(const char* title, const char* message, const char* buttonLabel) |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
118 |
{ |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
119 |
fprintf(stderr, "%s: %s\n", title, message); |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
120 |
} |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
121 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
122 |
#endif |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
123 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
124 |
void ShowMacAssertDialog(const char* function, const char* file, const int line, const char* expression) |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
125 |
{ |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
126 |
const char* buffer = |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
127 |
[[NSString stringWithFormat:@ |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
128 |
"An assertion has failed and OpenTTD must quit.\n" |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
129 |
"%s in %s (line %d)\n" |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
130 |
"\"%s\"\n" |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
131 |
"\n" |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
132 |
"You should report this error the OpenTTD developers if you think you found a bug.\n" |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
133 |
"\n" |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
134 |
"%s", |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
135 |
function, file, line, expression, GetOSString()] cString |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
136 |
]; |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
137 |
NSLog(@"%s", buffer); |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
138 |
ToggleFullScreen(0); |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
139 |
ShowMacDialog("Assertion Failed", buffer, "Quit"); |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
140 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
141 |
// abort so that a debugger has a chance to notice |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
142 |
abort(); |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
143 |
} |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
144 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
145 |
|
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
146 |
void ShowMacErrorDialog(const char *error) |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
147 |
{ |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
148 |
const char* buffer = |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
149 |
[[NSString stringWithFormat:@ |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
150 |
"Please update to the newest version of OpenTTD\n" |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
151 |
"If the problem presists, please report this to\n" |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
152 |
"http://bugs.openttd.org\n" |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
153 |
"\n" |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
154 |
"%s", |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
155 |
GetOSString()] cString |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
156 |
]; |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
157 |
ToggleFullScreen(0); |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
158 |
ShowMacDialog(error, buffer, "Quit"); |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
159 |
abort(); |
adaea39e84ab
(svn r8605) -Codechange: [OSX] changed all objective C to objective C++
bjarni
parents:
diff
changeset
|
160 |
} |