mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-16 00:12:51 +00:00
1931b8ea96
It also adds a new error window, which can be used just like assert, but it is also active when asserts are turned off This is useful for places where it's really important to check even if assert is turned off. It's not used in the code yet
31 lines
1.2 KiB
C
31 lines
1.2 KiB
C
/* $Id$ */
|
|
|
|
#ifndef MACOS_H
|
|
#define MACOS_H
|
|
|
|
/*
|
|
* Functions to show the popup window
|
|
* use ShowMacDialog when you want to control title, message and text on the button
|
|
* ShowMacAssertDialog is used by assert
|
|
* ShowMacErrorDialog should be used when an unrecoverable error shows up. It only contains the title, which will should tell what went wrong
|
|
* the function then adds text that tells the user to update and then report the bug if it's present in the newest version
|
|
* It also quits in a nice way since we call it when we know something happened that will crash OpenTTD (like a needed pointer turns out to be NULL or similar)
|
|
*/
|
|
void ShowMacDialog ( const char *title, const char *message, const char *buttonLabel );
|
|
void ShowMacAssertDialog ( const char *function, const char *file, const int line, const char *expression );
|
|
void ShowMacErrorDialog(const char *error);
|
|
|
|
// Since MacOS X users will never see an assert unless they started the game from a terminal
|
|
// we're using a custom assert(e) macro.
|
|
#undef assert
|
|
|
|
#ifdef NDEBUG
|
|
#define assert(e) ((void)0)
|
|
#else
|
|
|
|
#define assert(e) \
|
|
(__builtin_expect(!(e), 0) ? ShowMacAssertDialog ( __func__, __FILE__, __LINE__, #e ): (void)0 )
|
|
#endif
|
|
|
|
#endif /* MACOS_H */
|