Added entities. Rewrote stage, half 'working'.
[cantaveria.git] / console.c
blobe9f85bab8f1dd915958d6e423cba714def59427a
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 <util.h>
30 #include <graphics.h>
31 #include <console.h>
34 char console[25][80];
35 int console_time[25];
36 int console_ptr = 0;
37 int console_timer = 0;
39 void console_clear(){
40 console_ptr = 0;
43 void console_scroll(int n){
44 int i;
45 if(console_ptr - n < 0) n = console_ptr;
46 if(n == 0) return;
47 for(i=n; i<25; i++){
48 memcpy(console[i-n], console[i], 80);
50 console[25-n][0] = '\0';
51 console_ptr -= n;
54 void console_update(){
55 if(console_timer == 0) return;
56 console_timer -= 1;
57 if(console_timer == 0 && console_ptr > 0){
58 console_scroll(1);
59 console_timer = 10;
63 void console_printf(const char* format, ...){
64 if(console_ptr==25){
65 console_scroll(1);
67 va_list ap;
68 va_start(ap, format);
69 vsnprintf(console[console_ptr], 80, format, ap);
70 console[console_ptr][79] = '\0';
71 console_ptr++;
72 console_timer = 200;
73 va_end(ap);
76 void console_draw(){
77 int i;
78 for(i=0; i<console_ptr; i++){
79 printf_small(1,9*i+1,"%s",console[i]);