summaryrefslogtreecommitdiff
path: root/src/console.h
blob: 88eb8a4a9cafa9c5edf4239b0565cad30c3005dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#ifndef CONSOLE
#define CONSOLE
#define BLK "\033[0;30m"
#define RED "\033[0:31m"
#define GRN "\033[0:32m"
#define WHT "\033[0:37m"
#define BLKB "\033[40m"
#define REDB "\033[41m"
#define GRNB "\033[42m"
#define WHTB "\033[47m"
#define RESET "\033[0m"
typedef enum ConsoleColors {
	CBLACK,
	CRED,
	CGREEN,
	CWHITE
} consoleColor_t;
typedef struct ConsoleLine {
	consoleColor_t color;
	char* content;
	/* set to NULL to use oninteract */
	char* expansionContent;
	void (*onInteract)(void);
	char isExpanded;
} consoleLine_t;
consoleLine_t init_simple_consoleline(consoleColor_t color, char* content);
consoleLine_t init_expandable_consoleline(consoleColor_t color, char* content, char* expansionContent);
consoleLine_t init_interactable_consoleline(consoleColor_t color, char* content, void (*onInteract)(void));
typedef struct ConsoleLineSet {
	consoleLine_t* lines;
	int count;
} consoleLineSet_t;
consoleLineSet_t init_consolelineset(consoleLine_t* lines, int count);
void set_lines(consoleLineSet_t lines);
void clear_screen(void);
void draw_screen(void);
void move_selection(int amount);
void interact_selected(void);
#endif