gbasys

annotate src/error.c @ 11:2b31bd7e96b4

added panicf
author John Tsiombikas <nuclear@member.fsf.org>
date Mon, 01 Feb 2016 02:36:25 +0200
parents 72c6429ae953
children
rev   line source
nuclear@0 1 /*
nuclear@7 2 gbasys - a gameboy advance hardware abstraction library
nuclear@11 3 Copyright (C) 2004-2016 John Tsiombikas <nuclear@member.fsf.org>
nuclear@0 4
nuclear@7 5 This program is free software: you can redistribute it and/or modify
nuclear@0 6 it under the terms of the GNU General Public License as published by
nuclear@7 7 the Free Software Foundation, either version 3 of the License, or
nuclear@0 8 (at your option) any later version.
nuclear@0 9
nuclear@0 10 This program is distributed in the hope that it will be useful,
nuclear@0 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
nuclear@0 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
nuclear@0 13 GNU General Public License for more details.
nuclear@0 14
nuclear@0 15 You should have received a copy of the GNU General Public License
nuclear@7 16 along with this program. If not, see <http://www.gnu.org/licenses/>.
nuclear@0 17 */
nuclear@11 18 #include <stdio.h>
nuclear@11 19 #include <stdarg.h>
nuclear@0 20 #include "gfx.h"
nuclear@0 21
nuclear@0 22 void panic(const char *str) {
nuclear@0 23 set_video_mode(VMODE_LFB_240x160_16, 0);
nuclear@0 24 clear_buffer(front_buffer, RGB(140, 30, 20));
nuclear@2 25
nuclear@0 26 set_text_color(0xffff, RGB(140, 30, 20));
nuclear@0 27 draw_string(" Don't Panic! ", 0, 0, front_buffer);
nuclear@0 28 draw_string("_________________________", 0, 8, front_buffer);
nuclear@0 29 if(str) draw_string(str, 0, 32, front_buffer);
nuclear@0 30
nuclear@2 31 for(;;);
nuclear@0 32 }
nuclear@11 33
nuclear@11 34 void panicf(const char *fmt, ...)
nuclear@11 35 {
nuclear@11 36 static char buf[64];
nuclear@11 37 va_list ap;
nuclear@11 38
nuclear@11 39 va_start(ap, fmt);
nuclear@11 40 vsnprintf(buf, sizeof buf - 1, fmt, ap);
nuclear@11 41 va_end(ap);
nuclear@11 42
nuclear@11 43 panic(buf);
nuclear@11 44 }