]> git.sur5r.net Git - c128-kasse/blob - config.c
save_state funktioniert jetzt
[c128-kasse] / config.c
1 #include <stdlib.h>
2 #include <stdio.h>
3 #include <string.h>
4 #include "general.h"
5 #include "config.h"
6
7 unsigned long int money = 0;
8 unsigned long int num_items = 0;
9 BYTE num_credit_items = 0;
10 unsigned long int items_sold = 0;
11 BYTE printer_port = 4;
12 struct status_t status[MAX_ITEMS+1];
13 struct credits_t credits[MAX_CREDIT_ITEMS+1];
14 #define REAL_DATA
15 #ifdef REAL_DATA
16 void load_config();
17
18
19 void load_items(){
20     FILE* f;
21     char line[80];
22     char * sep;
23     BYTE lfn = 219;
24 //  cbm_open(lfn, (BYTE)8, (BYTE)0, "items,r");
25     f = fopen("items","r");
26     for (num_items=0; num_items < MAX_ITEMS && !feof(f); num_items++) {
27         fgets(line, 79, f);
28         sep = strchr(line, '=');
29         strncpy(status[num_items].item_name, line, sep-line);
30         status[num_items].price = atoi(sep+1);
31         status[num_items].times_sold = 0; 
32     }
33     fclose(f);
34 }
35
36 /**
37  * must be called after load_items()
38  */
39 void load_state(){
40     FILE * f;
41     char line[80];
42     char * sep;
43     char i, j;
44     f = fopen("state", "r");
45     if (f==NULL){
46         cprintf("cannot open state\r\n");
47         return;
48     }
49     while (!feof(f)) {
50         fgets(line, 79, f);
51         sep = strchr(line, '=');
52         if (sep==NULL)
53                 continue;
54         *(line + (sep-line)) = 0;
55         for (i=0; i< MAX_ITEMS; i++) {
56                 if (strcmp(line, status[i].item_name)==0) {
57                         status[i].times_sold = atoi(sep+1);
58                         break;
59                 }
60         }
61     }
62     fclose(f);
63 }
64
65 void save_state(){
66         FILE * f;
67         int i;
68         
69         f = fopen("state", "w");
70     if (f==NULL){
71         c128_perror(23, "cannot open state file");
72         return;
73     }
74     for (i=0;i<num_items;i++)
75         fprintf(f, "%s=%d\n",status[i].item_name, status[i].times_sold);
76     fclose(f);
77 }
78 /*
79 void dump_state(){
80         FILE * f;
81         char buf[128];
82         int i, len;
83         memset(buf, 0, 128);
84         f = fopen("state", "r");
85         len = fread(buf, 1, 128, f);
86         printf("read %d bytes from state\n", len);
87         fclose(f);
88         for (i=0;i<len;i++)
89                 printf("%x ", buf[i]);
90         printf("\n");
91         
92 }
93 */
94 void load_config() {
95 }
96
97 #else
98
99 void load_config() {
100 }
101
102 void load_items() {
103         BYTE c;
104         num_items=2;
105         strcpy(status[0].item_name, "cola");
106         status[0].price = 230;
107         status[0].times_sold = 0;
108         strcpy(status[1].item_name, "mate");
109         status[1].price = 150;
110         status[1].times_sold = 0;
111         for (c = 2; c < MAX_ITEMS; ++c)
112                 status[c].item_name[0] = 0;
113 }
114
115 void load_state() {
116         status[0].times_sold=23;        
117         status[1].times_sold=42;        
118 }
119
120 void load_credits() {
121 }
122
123 void save_state() {
124 }
125
126 void save_credits() {}
127 #endif