X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=src%2Fserver%2Fitemdb.c;h=5b2d828520abd6d1f1048e712b0d53c90761002a;hb=37e89ab2180f91b703461eb898edb9904ba6d74f;hp=49fb743dd609302cba0104ab4b3ca377b9aa4c2c;hpb=32b161c885d90286f7d4a72b9d05e947c96069e5;p=tpg%2Fopendispense2.git diff --git a/src/server/itemdb.c b/src/server/itemdb.c index 49fb743..5b2d828 100644 --- a/src/server/itemdb.c +++ b/src/server/itemdb.c @@ -16,6 +16,8 @@ #include #include +#define DUMP_ITEMS 0 + // === IMPORTS === extern tHandler gCoke_Handler; extern tHandler gSnack_Handler; @@ -32,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 @@ -43,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 @@ -169,7 +174,9 @@ void Items_ReadFromFile(void) price = atoi( line + matches[3].rm_so ); desc = line + matches[4].rm_so; + #if DUMP_ITEMS printf("Item '%s' - %i cents, %s:%i\n", desc, price, type, num); + #endif handler = NULL; for( i = 0; i < giNumHandlers; i ++ ) @@ -190,7 +197,9 @@ void Items_ReadFromFile(void) if( items[i].Handler != handler ) continue; if( items[i].ID != num ) continue; + #if DUMP_ITEMS printf("Redefinition of %s:%i, updated\n", handler->Name, num); + #endif items[i].Price = price; free(items[i].Name); items[i].Name = strdup(desc); @@ -201,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 ++; @@ -214,6 +226,7 @@ void Items_ReadFromFile(void) free(gaItems); gaItems = NULL; } + fclose(fp); // Replace with new giNumItems = numItems;