]> git.sur5r.net Git - c128-kasse/commitdiff
fix
authorsECuRE <sECuRE@af93e077-1a23-4f1e-9cbe-9382a9d578f5>
Sat, 28 Jul 2007 17:13:13 +0000 (17:13 +0000)
committersECuRE <sECuRE@af93e077-1a23-4f1e-9cbe-9382a9d578f5>
Sat, 28 Jul 2007 17:13:13 +0000 (17:13 +0000)
git-svn-id: https://shell.noname-ev.de/svn/kasse/c128@9 af93e077-1a23-4f1e-9cbe-9382a9d578f5

config.h
kasse.c

index a90230e7763b105953e747a3df06a584bd963ee2..6838e83a283193d3a75760021f4c89c91e54affa 100644 (file)
--- a/config.h
+++ b/config.h
@@ -17,8 +17,8 @@ struct status_t {
        unsigned int times_sold;
 };
 
-#define MAX_ITEMS 16
-static struct status_t status[MAX_ITEMS];
+#define MAX_ITEMS 15
+static struct status_t status[MAX_ITEMS+1];
 
 // unklar bis jetzt was das tun wird
 void load_config();
diff --git a/kasse.c b/kasse.c
index e423bd9abe6554ef2bb8db9a5e26801b98a4575b..8112a5a71c71b5d38f9e3832d27fbcf2a4da8edb 100644 (file)
--- a/kasse.c
+++ b/kasse.c
@@ -6,7 +6,7 @@
 #include "kasse.h"
 // conf
 // drucker 4 oder 5
-// preise+getraenke
+// pricee+getraenke
 //
 // graphic 4,0,10
 
@@ -17,7 +17,7 @@ void print_screen() {
        uc i = 0;
        clrscr();
        printf("C128-Kassenprogramm\n\n");
-       printf("Eingenommen: 1337 Euro, Verkauft: 42 Flaschen\n\n");
+       printf("Eingenommen: %d Euro, Verkauft: %d Flaschen\n\n", money * 100, items_sold);
        for (; i < num_items; ++i)
                printf("Item %x: %s (%d Cents, %d mal verkauft)\n", i, status[i].item_name, status[i].price, status[i].times_sold);
        printf("\nBefehle: s) Save Data\n");
@@ -28,20 +28,25 @@ void save_data() {
 }
 
 void buy(uc n) {
-       static uc einheiten = 1;
-       static uc c;
+       int negative = 1;
+       char entered[5] = {49, 0, 0, 0, 0};
+       uc i = 0;
+       uc c;
+       int einheiten;
        if (status[n].item_name == NULL)
                printf("ERROR: No such item\n");
        else {
                printf("Wieviel Einheiten \"%s\"?\n", status[n].item_name);
                while (1) {
                        c = getchar();
-                       printf("das war %x\n", c);
-                       if (c == 32)
+                       if (c == 13)
                                break;
-                       else if (c > 47 && c < 60)
-                               einheiten += (c - 48);
+                       else if (c == 45 && i == 0)
+                               negative = -1;
+                       else if (c > 47 && c < 58)
+                               entered[i++] = c;
                }
+               einheiten = atoi(entered) * negative;
                status[n].times_sold += einheiten;
                money += status[n].price * einheiten;
                items_sold += einheiten;
@@ -57,7 +62,7 @@ int main() {
        status[1].item_name = "mate";
        status[1].price = 150;
        status[0].times_sold = 0;
-       for (c = 2; c < 15; ++c)
+       for (c = 2; c < MAX_ITEMS; ++c)
                status[c].item_name = NULL;
        while (1) {
                /* Bildschirm anzeigen */
@@ -65,7 +70,7 @@ int main() {
                /* Tastatureingaben abfragen */
                c = getchar();
                /* und eventuell weitere Dialoge anzeigen */
-               if (c > 47 && c < 60)
+               if (c > 47 && c < 58)
                        buy(c - 48);
                else if (c == 115)
                        save_data();