/*
* RGB2R-C128-Kassenprogramm
- * (c) 2007 phil_fry, sECuRE, sur5r
+ * (c) 2007-2008 phil_fry, sECuRE, sur5r
* See LICENSE for license information
*
*/
#include "config.h"
#include "general.h"
+#include "kasse.h"
static char *filter = NULL;
static BYTE filter_len;
clrscr();
cprintf("itemz (phil_fry, sECuRE, sur5r)\r\n\r\n");
- /* 16 entries per page */
- pages = (credits.num_items / 16);
+ pages = (credits.num_items / CREDITS_PER_PAGE);
if (current_credits_page > pages)
current_credits_page = pages;
cprintf("Datei: CREDITS (Seite %d von %d)\r\n\r\n", current_credits_page, pages);
- for (i = (current_credits_page * 16); i < credits.num_items && i < ((current_credits_page+1) * 16); i++) {
+ for (i = (current_credits_page * CREDITS_PER_PAGE); i < credits.num_items && i < ((current_credits_page+1) * CREDITS_PER_PAGE); i++) {
if (filter == NULL || strncmp(credits.credits[i].nickname, filter, filter_len) == 0) {
if (format_euro(buffer, 10, credits.credits[i].credit) != buffer) {
cprintf("Error: Could not format credit %d\r\n", credits.credits[i].credit);
cprintf("\r\nn) Neu d) Loeschen p) Einzahlen b) Seite hoch f) Seite runter\r\ng) Filtern e) Aendern s) Speichern z) Zurueck\r\n");
}
-static struct credits_t * find_credit(char * name){
+struct credits_t *find_credit(char *name){
int i;
- for (i=0;i<credits.num_items;i++)
- if (strncmp(name, credits.credits[i].nickname, 11) == 0) {
+ for (i = 0; i < credits.num_items; i++)
+ if (strncmp(name, credits.credits[i].nickname, NICKNAME_MAX_LEN + 1) == 0)
return &credits.credits[i];
- }
return NULL;
}
-/* this is currently broken and should not be used
- *
+/*
* when depositing money with this and returning to the main menu, the program
* will crash with a message like the following:
*
- * break
- * pc sr ac xr yr sp
- * e180b 31 27 0a 00 e8 ....
*/
static void deposit_credit() {
- char * input;
- struct credits_t * credit;
- int deposit;
+ char *input;
+ struct credits_t *credit;
+ unsigned int deposit;
cprintf("\r\nName:\r\n");
if ((input = get_input()) == NULL || *input == '\0')
return; // no name given
- if (!(credit = find_credit(input)))
+ if ((credit = find_credit(input)) == NULL)
return; // cannot find named credit
cprintf("\r\nEinzahlung in Cent:\r\n");
credit->credit += deposit;
toggle_videomode();
- cprintf("%d Cent eingezahlt fuer %s. Restguthaben: %d\r\n", deposit, credit->nickname, credit->credit);
- sleep(1);
+ cprintf("%d Cent eingezahlt fuer %s.\r\nRestguthaben: %d\r\n", deposit, credit->nickname);
+ sprintf(print_buffer, "%c%d Cent eingezahlt fuer %s. Restguthaben: %d Cent\r", 17, deposit, credit->nickname, credit->credit);
+ cprintf("%s", print_buffer);
+ toggle_videomode();
+ print_the_buffer();
+ cprintf("\r\nEinzahlung durchgefuehrt, druecke RETURN...\r\n");
+ input = get_input();
+ toggle_videomode();
clrscr();
toggle_videomode();
}
return;
}
+ clrscr();
cprintf("\rNickname:\r\n");
if ((input = get_input()) == NULL || *input == '\0')
return;
return;
strcpy(credits.credits[credits.num_items].nickname, name);
credits.credits[credits.num_items].credit = credit;
+
+ sprintf(print_buffer, "%cGuthaben mit %d Cent fuer %s angelegt\r", 17, credit, name);
+ print_the_buffer();
+
credits.num_items++;
free(name);
}
case 's':
save_credits(); break;
case 'f':
- if (current_credits_page < (credits.num_items / 16))
+ if (current_credits_page < (credits.num_items / CREDITS_PER_PAGE))
current_credits_page++;
break;
case 'b':