2 * RGB2R-C128-Kassenprogramm
3 * (c) 2007 phil_fry, sECuRE, sur5r
5 * itemz.c: Verwaltet die ITEMS- und CREDITS-datei
17 enum itemz_mode { MODE_ITEMS, MODE_CREDITS };
19 static enum itemz_mode mode = MODE_ITEMS;
21 static void print_screen() {
26 cprintf("itemz (phil_fry, sECuRE, sur5r)\r\n\r\n");
27 if (mode == MODE_ITEMS) {
28 cprintf("Datei: ITEMS\r\n\r\n");
29 for (i = 0; i < status.num_items; i++) {
30 if (format_euro(buffer, 10, status.status[i].price) != buffer) {
31 cprintf("Error: Could not format price %d\r\n", status.status[i].price);
34 cprintf("Eintrag %x: %s (%s, %d mal verkauft)\r\n",
35 i, status.status[i].item_name, buffer, status.status[i].times_sold);
37 cprintf("\r\nn) Neuer Eintrag d) Eintrag loeschen s) Datei speichern\r\n");
39 cprintf("Datei: CREDITS\r\n\r\n");
40 /* TODO: display credits */
44 static void new_item() {
48 cprintf("\rName des Eintrags:\r\n");
49 if ((input = get_input()) == NULL || *input == '\0')
52 cprintf("\r\nPreis in Cents:\r\n");
53 if ((input = get_input()) == NULL || *input == '\0' || (price = atoi(input)) == 0)
55 cprintf("\r\nWie oft schon verkauft? [0] \r\n");
56 if ((input = get_input()) == NULL || *input == '\0')
58 strcpy(status.status[status.num_items].item_name, name);
59 status.status[status.num_items].price = price;
60 status.status[status.num_items].times_sold = atoi(input);
64 static void _delete_item(BYTE num) {
65 memset(status.status[num].item_name, '\0', 10);
66 status.status[num].price = 0;
67 status.status[num].times_sold = 0;
70 static void delete_item() {
74 cprintf("\r Welcher Eintrag soll geloescht werden?\r\n");
75 if ((input = get_input()) == NULL || *input == '\0')
78 if (status.num_items > 1) {
79 /* Swap last item with this one and delete the last one to avoid holes */
80 last = (status.num_items - 1);
81 strcpy(status.status[num].item_name, status.status[last].item_name);
82 status.status[num].price = status.status[last].price;
83 status.status[num].times_sold = status.status[last].times_sold;
95 credits.num_items = 0;
97 cprintf("itemz loading...\n");
99 cprintf("itemz: loading ITEMS...\n");
101 cprintf("itemz: loading CREDITS...\n");
106 if (mode == MODE_ITEMS) {
114 cprintf("Unbekannter Befehl, druecke RETURN...\r\n");