src/os/macosx/macos.mm
author maedhros
Mon, 06 Aug 2007 12:54:03 +0000
changeset 7417 c0ddfb49c50b
parent 6247 7d81e3a5d803
child 7435 c5d1a7a3235c
permissions -rw-r--r--
(svn r10810) -Fix (r10097): Add a comma between different cargo types if an articulated vehicle carries more than one cargo.
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
7d81e3a5d803 (svn r9050) -Codechange: Foo(void) -> Foo()
rubidium
parents: 5941
diff changeset
    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
}