Changes to many headers. midi.c has fewer deps. Prepare for merge.
[cantaveria.git] / console.c
blob6f35048b90a3eb784b352755f368d7cb20a0ac9d
1 /*
2 Cantaveria - action adventure platform game
3 Copyright (C) 2009 2010 Evan Rinehart
5 This program is free software; you can redistribute it and/or
6 modify it under the terms of the GNU General Public License
7 as published by the Free Software Foundation; either version 2
8 of the License, or (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to
18 The Free Software Foundation, Inc.
19 51 Franklin Street, Fifth Floor
20 Boston, MA 02110-1301, USA
22 evanrinehart@gmail.com
25 #include <stdio.h>
26 #include <string.h>
27 #include <stdarg.h>
29 #include <graphics.h>
30 #include <console.h>
33 char console[25][80];
34 int console_time[25];
35 int console_ptr = 0;
36 int console_timer = 0;
38 void console_clear(){
39 console_ptr = 0;
42 void console_scroll(int n){
43 int i;
44 if(console_ptr - n < 0) n = console_ptr;
45 if(n == 0) return;
46 for(i=n; i<25; i++){
47 memcpy(console[i-n], console[i], 80);
49 console[25-n][0] = '\0';
50 console_ptr -= n;
53 void console_update(){
54 if(console_timer == 0) return;
55 console_timer -= 1;
56 if(console_timer == 0 && console_ptr > 0){
57 console_scroll(1);
58 console_timer = 10;
62 void console_printf(char* format, ...){
63 if(console_ptr==25){
64 console_scroll(1);
66 va_list ap;
67 va_start(ap, format);
68 vsnprintf(console[console_ptr], 80, format, ap);
69 console[console_ptr][79] = '\0';
70 console_ptr++;
71 console_timer = 200;
72 va_end(ap);
75 void console_draw(){
76 int i;
77 for(i=0; i<console_ptr; i++){
78 printf_small(1,9*i+1,"%s",console[i]);