git repos / blockattack-game

blame: source/code/sago/SagoMiscSdl2.cpp

normal view · raw

4e257de2 sago007 2016-01-22 17:43 1
/*
47fef8e8 sago007 2016-11-24 21:37 2
Copyright (c) 2016 Poul Sander
4e257de2 sago007 2016-01-22 17:43 3
47fef8e8 sago007 2016-11-24 21:37 4
Permission is hereby granted, free of charge, to any person
47fef8e8 sago007 2016-11-24 21:37 5
obtaining a copy of this software and associated documentation files
47fef8e8 sago007 2016-11-24 21:37 6
(the "Software"), to deal in the Software without restriction,
47fef8e8 sago007 2016-11-24 21:37 7
including without limitation the rights to use, copy, modify, merge,
47fef8e8 sago007 2016-11-24 21:37 8
publish, distribute, sublicense, and/or sell copies of the Software,
47fef8e8 sago007 2016-11-24 21:37 9
and to permit persons to whom the Software is furnished to do so,
47fef8e8 sago007 2016-11-24 21:37 10
subject to the following conditions:
4e257de2 sago007 2016-01-22 17:43 11
47fef8e8 sago007 2016-11-24 21:37 12
The above copyright notice and this permission notice shall be
47fef8e8 sago007 2016-11-24 21:37 13
included in all copies or substantial portions of the Software.
4e257de2 sago007 2016-01-22 17:43 14
47fef8e8 sago007 2016-11-24 21:37 15
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
47fef8e8 sago007 2016-11-24 21:37 16
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
47fef8e8 sago007 2016-11-24 21:37 17
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
47fef8e8 sago007 2016-11-24 21:37 18
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
47fef8e8 sago007 2016-11-24 21:37 19
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
47fef8e8 sago007 2016-11-24 21:37 20
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
47fef8e8 sago007 2016-11-24 21:37 21
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
47fef8e8 sago007 2016-11-24 21:37 22
SOFTWARE.
4e257de2 sago007 2016-01-22 17:43 23
*/
4e257de2 sago007 2016-01-22 17:43 24
4e257de2 sago007 2016-01-22 17:43 25
#include "SagoMiscSdl2.hpp"
4e257de2 sago007 2016-01-22 17:43 26
#include "SDL.h"
4e257de2 sago007 2016-01-22 17:43 27
4e257de2 sago007 2016-01-22 17:43 28
void sago::SagoFatalError(const char* errorMsg) {
4e257de2 sago007 2016-01-22 17:43 29
	const SDL_MessageBoxButtonData buttons[] = {
47fef8e8 sago007 2016-11-24 21:37 30
		{ SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT, 0, "Ok" },
47fef8e8 sago007 2016-11-24 21:37 31
	};
4e257de2 sago007 2016-01-22 17:43 32
	const SDL_MessageBoxData messageboxdata = {
47fef8e8 sago007 2016-11-24 21:37 33
		SDL_MESSAGEBOX_INFORMATION, /* .flags */
47fef8e8 sago007 2016-11-24 21:37 34
		nullptr, /* .window */
47fef8e8 sago007 2016-11-24 21:37 35
		"Fatal error", /* .title */
47fef8e8 sago007 2016-11-24 21:37 36
		errorMsg, /* .message */
47fef8e8 sago007 2016-11-24 21:37 37
		SDL_arraysize(buttons), /* .numbuttons */
47fef8e8 sago007 2016-11-24 21:37 38
		buttons, /* .buttons */
47fef8e8 sago007 2016-11-24 21:37 39
		nullptr /* .colorScheme */
47fef8e8 sago007 2016-11-24 21:37 40
	};
4e257de2 sago007 2016-01-22 17:43 41
	int buttonid;
47fef8e8 sago007 2016-11-24 21:37 42
	SDL_ShowMessageBox(&messageboxdata, &buttonid);
4e257de2 sago007 2016-01-22 17:43 43
	abort();
4e257de2 sago007 2016-01-22 17:43 44
}
4e257de2 sago007 2016-01-22 17:43 45
c3fc09e9 sago007 2016-01-22 18:31 46
void sago::SagoFatalErrorF(const char* fmt, ...) {
c3fc09e9 sago007 2016-01-22 18:31 47
	char buffer[1024];
c3fc09e9 sago007 2016-01-22 18:31 48
	va_list args;
c3fc09e9 sago007 2016-01-22 18:31 49
	va_start(args, fmt);
c3fc09e9 sago007 2016-01-22 18:31 50
	vsnprintf(buffer, sizeof(buffer), fmt, args);
c3fc09e9 sago007 2016-01-22 18:31 51
	SagoFatalError(buffer);
c3fc09e9 sago007 2016-01-22 18:31 52
	va_end(args);
c3b697c6 sago007 2016-02-07 17:30 53
}
c3b697c6 sago007 2016-02-07 17:30 54
1970-01-01 00:00 55