OpenTTD/os/macosx/macos.m
bjarni 6a6e145010 (svn r3281) -Feature: [OSX] added native cocoa sound and video drivers (egladil)
you can still use SDL drivers if you like and you have to run "make upgradeconf" to start using the cocoa drivers (or manually write WITH_COCOA:=1)
	since SDL breaks the cocoa drivers, you can't compile with both SDL and cocoa support
	Using cocoa drivers makes it easier to make universal binaries and it solves:
	-FS#18 [OSX] SDL is weird in universal binaries
	-FS#2  [OSX] lazy pointer crash on exit
	-FS#10 [OSX] linking error when linking statically to SDL 1.2.8 (needless to explain this, but it means it should be able to compile statically with the default settings now)
	-[ 1215073 ] Switching to large size out of fullscreen crashes
	Using SDL drivers will still have those issues though
2005-12-10 11:16:45 +00:00

27 lines
1.1 KiB
Objective-C

#include <AppKit/AppKit.h>
/*
* This file contains objective C
* Apple uses objective C instead of plain C to interact with OS specific/native functions
*
* Note: TrueLight's crosscompiler can handle this, but it likely needs a manual modification for each change in this file.
* To insure that the crosscompiler still works, let him try any changes before they are committed
*/
void ShowMacDialog ( const char *title, const char *message, const char *buttonLabel )
{
NSRunAlertPanel([NSString stringWithCString: title], [NSString stringWithCString: message], [NSString stringWithCString: buttonLabel], nil, nil);
}
void ShowMacAssertDialog ( const char *function, const char *file, const int line, const char *expression )
{
const char *buffer =
[[NSString stringWithFormat:@"An assertion has failed and OpenTTD must quit.\n%s in %s (line %d)\n\"%s\"\n\nYou should report this error the OpenTTD developers if you think you found a bug.",
function, file, line, expression] cStringUsingEncoding:NSASCIIStringEncoding];
NSLog(@"%s", buffer);
ShowMacDialog( "Assertion Failed", buffer, "Quit" );
// abort so that a debugger has a chance to notice
abort();
}