2 * RGB2R-C128-Kassenprogramm
3 * (c) 2007 phil_fry, sECuRE, sur5r
4 * See LICENSE for license information
15 static char *filter = NULL;
16 static BYTE filter_len;
18 static BYTE current_credits_page = 0;
20 static void credit_print_screen() {
25 cprintf("itemz (phil_fry, sECuRE, sur5r)\r\n\r\n");
26 /* 16 entries per page */
27 pages = (credits.num_items / 16);
28 if (current_credits_page > pages)
29 current_credits_page = pages;
30 cprintf("Datei: CREDITS (Seite %d von %d)\r\n\r\n", current_credits_page, pages);
31 for (i = (current_credits_page * 16); i < credits.num_items && i < ((current_credits_page+1) * 16); i++) {
32 if (format_euro(buffer, 10, credits.credits[i].credit) != buffer) {
33 cprintf("Error: Could not format credit %d\r\n", credits.credits[i].credit);
37 cprintf("%d: %s: %s\r\n", i, credits.credits[i].nickname, buffer);
39 cprintf("\r\nn) Neu d) Loeschen b) Seite hoch f) Seite runter\r\ne) Aendern s) Speichern z) Zurueck\r\n");
43 static void new_credit() {
47 if (credits.num_items == 75) {
48 cprintf("\rEs ist bereits die maximale Anzahl an Eintraegen erreicht, druecke RETURN...\r\n");
53 cprintf("\rNickname:\r\n");
54 if ((input = get_input()) == NULL || *input == '\0')
57 cprintf("\r\nGuthaben in Cents:\r\n");
58 if ((input = get_input()) == NULL || *input == '\0' || (credit = atoi(input)) == 0)
60 strcpy(credits.credits[credits.num_items].nickname, name);
61 credits.credits[credits.num_items].credit = credit;
66 static void _delete_credit(BYTE num) {
67 memset(credits.credits[num].nickname, '\0', 11);
68 credits.credits[num].credit = 0;
71 static void delete_credit() {
75 cprintf("\r Welcher Eintrag soll geloescht werden?\r\n");
76 if ((input = get_input()) == NULL || *input == '\0')
79 if (credits.num_items > 1) {
80 /* Swap last item with this one and delete the last one to avoid holes */
81 last = (credits.num_items - 1);
82 strcpy(credits.credits[num].nickname, credits.credits[last].nickname);
83 credits.credits[num].credit = credits.credits[last].credit;
92 void credit_manager(){
95 credit_print_screen();
101 delete_credit(); break;
103 save_credits(); break;
105 if (current_credits_page < (credits.num_items / 16))
106 current_credits_page++;
109 if (current_credits_page > 0)
110 current_credits_page--;
115 cprintf("Unbekannter Befehl, druecke RETURN...\r\n");