]> git.sur5r.net Git - c128-kasse/blob - src/credit_manager.c
create src/images/include-folders to clean up the directory
[c128-kasse] / src / credit_manager.c
1 #include <conio.h>
2 #include <stdio.h>
3 #include <stdlib.h>
4 #include <string.h>
5
6 #include "config.h"
7 #include "general.h"
8
9 static char *filter = NULL;
10 static BYTE filter_len;
11
12 static void print_credit_screen() {
13         BYTE i = 0;
14         clrscr();
15         cprintf("C128-Kassenprogramm: Credit Manager\r\n\r\n");
16         for (; i < credits.num_items; ++i)
17                 if (filter == NULL || strncmp(credits.credits[i].nickname, filter, filter_len) == 0)
18                         cprintf("Guthaben %s: %d Cents\r\n", credits.credits[i].nickname, credits.credits[i].credit);
19         cprintf("\r\nBefehle: n) Neues Guthaben f) Filtern z) Zurueck\r\n");
20 }
21
22 /* Guthabenverwalter */
23 void credit_manager() {
24         int negative = 1;
25         char *c, *nickname, *credits_input;
26         /* credits_int is a stupid name, but overlaps with struct credits_t credits; else */
27         int credits_int;
28         while (1) {
29                 print_credit_screen();
30                 c = get_input();
31                 if (c == NULL || *c == '\0')
32                         continue;
33                 if (*c == 'n') {
34                         cprintf("\r\nGuthaben eingeben:\r\n");
35                         credits_input = get_input();
36
37                         if (credits_input == NULL || credits_input[0] == '\0')
38                                 continue;
39                         else if (credits_input[0] == '-') {
40                                 negative = -1;
41                                 ++credits_input;
42                         }
43                         credits_int = atoi(credits_input) * negative;
44                         if (credits_int > 0) {
45                                 cprintf("Nickname eingeben:\r\n");
46                                 nickname = get_input();
47                                 if (nickname == NULL || nickname[0] == '\0')
48                                         continue;
49                                 strncpy(credits.credits[credits.num_items].nickname, nickname, 9);
50                                 credits.credits[credits.num_items].credit = credits_int;
51                                 ++credits.num_items;
52                         }
53                 } else if (*c == 'f') {
54                         cprintf("Filter eingeben:\r\n");
55                         filter = get_input();
56                         if (filter == NULL || *filter == 32 || (filter_len = strlen(filter)) == 0)
57                                 filter = NULL;
58                 } else if (*c == 'z' || *c == 'q')
59                         break;
60         }
61 }