/*
* RGB2R-C128-Kassenprogramm
- * (c) 2007 phil_fry, sECuRE, sur5r
+ * © 2007-2009 phil_fry, sECuRE, sur5r
* See LICENSE for license information
*
* itemz.c: Verwaltet die ITEMS- und CREDITS-datei
#include "general.h"
#include "config.h"
#include "credit_manager.h"
-
-/* NOTE: dummy entry to fix linking */
-int log_num = 0;
+#include "version.h"
static void itemz_print_screen() {
BYTE i;
char buffer[10];
clrscr();
- cprintf("itemz (phil_fry, sECuRE, sur5r)\r\n\r\n");
+ cprintf("itemz (phil_fry, sECuRE, sur5r) v:" GV "\r\n\r\n");
cprintf("Datei: ITEMS\r\n\r\n");
- for (i = 0; i < status.num_items; i++) {
+ for (i = 0; i < max(status.num_items, 15); i++) {
if (format_euro(buffer, 10, status.status[i].price) != buffer) {
cprintf("Error: Could not format price %d\r\n", status.status[i].price);
exit(1);
}
- cprintf("Eintrag %x: %s (%s, %d mal verkauft)\r\n",
+ cprintf("Eintrag %2d: %s (%s, %d mal verkauft)\r\n",
i, status.status[i].item_name, buffer, status.status[i].times_sold);
}
cprintf("\r\nn) Neu d) Loeschen s) Speichern m) Credit Modus q) Beenden\r\n");
char *input, *name;
int price;
- if (status.num_items == 16) {
+ if (status.num_items == MAX_ITEMS) {
cprintf("\rEs ist bereits die maximale Anzahl an Eintraegen erreicht, druecke RETURN...\r\n");
input = get_input();
return;
if ((input = get_input()) == NULL || *input == '\0' || (price = atoi(input)) == 0)
return;
cprintf("\r\nWie oft schon verkauft? [0] \r\n");
- if ((input = get_input()) == NULL || *input == '\0')
+ if ((input = get_input()) == NULL)
return;
- strcpy(status.status[status.num_items].item_name, name);
+ memset(status.status[status.num_items].item_name, '\0', MAX_ITEM_NAME_LENGTH+1);
+ strncpy(status.status[status.num_items].item_name, name, MAX_ITEM_NAME_LENGTH);
status.status[status.num_items].price = price;
status.status[status.num_items].times_sold = atoi(input);
status.num_items++;
}
static void _delete_item(BYTE num) {
- memset(status.status[num].item_name, '\0', 10);
+ memset(status.status[num].item_name, '\0', MAX_ITEM_NAME_LENGTH);
status.status[num].price = 0;
status.status[num].times_sold = 0;
}