Itemdb - Add 'membership' pseudo item type
[tpg/opendispense2.git] / src / server / itemdb.c
index 8f2cfec..5b2d828 100644 (file)
@@ -34,7 +34,11 @@ char *trim(char *__str);
 tItem  *gaItems = NULL;
 time_t gItems_LastUpdated;
 tHandler       gPseudo_Handler = {.Name="pseudo"};
-tHandler       *gaHandlers[] = {&gPseudo_Handler, &gCoke_Handler, &gSnack_Handler, &gDoor_Handler};
+tHandler       gMembership_Handler = {.Name="membership"};
+tHandler       *gaHandlers[] = {
+       &gPseudo_Handler, &gMembership_Handler,
+       &gCoke_Handler, &gSnack_Handler, &gDoor_Handler
+       };
  int   giNumHandlers = sizeof(gaHandlers)/sizeof(gaHandlers[0]);
 char   *gsItemListFile = DEFAULT_ITEM_FILE;
 #if USE_INOTIFY
@@ -45,8 +49,7 @@ regex_t       gItemFile_Regex;
 // === CODE ===
 void Init_Handlers()
 {
-        int    i;
-       for( i = 0; i < giNumHandlers; i ++ )
+       for( int i = 0; i < giNumHandlers; i ++ )
        {
                if( gaHandlers[i]->Init )
                        gaHandlers[i]->Init(0, NULL);   // TODO: Arguments
@@ -207,7 +210,10 @@ void Items_ReadFromFile(void)
                items = realloc( items, (numItems + 1)*sizeof(items[0]) );
                items[numItems].Handler = handler;
                items[numItems].ID = num;
-               items[numItems].Price = price;
+               if( gbNoCostMode )
+                       items[numItems].Price = 0;
+               else
+                       items[numItems].Price = price;
                items[numItems].Name = strdup(desc);
                items[numItems].bHidden = (line[0] == '-');
                numItems ++;
@@ -220,6 +226,7 @@ void Items_ReadFromFile(void)
                free(gaItems);
                gaItems = NULL;
        }
+       fclose(fp);
        
        // Replace with new
        giNumItems = numItems;

UCC git Repository :: git.ucc.asn.au