diff --git a/src/server/common.h b/src/server/common.h index 004fbf877e116f4d08ab61d81cda36bcd81b2546..7ad01c5d5d786a27f41ba52c409ba6845db887bb 100644 --- a/src/server/common.h +++ b/src/server/common.h @@ -73,6 +73,7 @@ extern int giNumItems; extern tHandler *gaHandlers[]; extern int giNumHandlers; extern int giDebugLevel; +extern int gbNoCostMode; // === FUNCTIONS === extern void Items_UpdateFile(void); diff --git a/src/server/handler_coke.c b/src/server/handler_coke.c index a899ad588aa93c020db782c628116b5cdfefa946..61b26491237066b6ccd1b6755f8918d4a1a87657 100644 --- a/src/server/handler_coke.c +++ b/src/server/handler_coke.c @@ -223,6 +223,7 @@ int Coke_int_DropSlot(int Slot) if( res == 0 ) { // Oops!, no drink + printf("Drink dispense failed, bit lowered too quickly\n"); return 1; } diff --git a/src/server/itemdb.c b/src/server/itemdb.c index 8f2cfeccd0a1cad82cb33f153b85413ea30c048f..632eb504ec19fd8b579d4b1ff0f9ad01ba2f21dd 100644 --- a/src/server/itemdb.c +++ b/src/server/itemdb.c @@ -207,7 +207,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 ++; diff --git a/src/server/main.c b/src/server/main.c index c2ef55c01fd1c22bed665f3a4938910ccfde7deb..f2f66c38667256f827d17476818036e600ce2a31 100644 --- a/src/server/main.c +++ b/src/server/main.c @@ -36,6 +36,7 @@ void *Periodic_Thread(void *Unused); // === GLOBALS === int giDebugLevel = 0; + int gbNoCostMode = 0; const char *gsCokebankPath = "cokebank.db"; // - Functions called every 20s (or so) #define ciMaxPeriodics 10 @@ -121,7 +122,9 @@ int main(int argc, char *argv[]) gsCoke_ModbusAddress = Config_GetValue("coke_modbus_address", 0); giServer_Port = Config_GetValue_Int("server_port", 0); gsItemListFile = Config_GetValue("items_file", 0); - + + gbNoCostMode = Config_GetValue_Bool("test_mode", 0); + signal(SIGINT, sigint_handler); signal(SIGTERM, sigint_handler); diff --git a/src/server/server.c b/src/server/server.c index e392f738431aa51ef7ce8f23c2e81a8b3d462cfe..63b4aa79777b27a04480e65aa9cda9cb9adf7251 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -731,7 +731,7 @@ void Server_int_SendItem(tClient *Client, tItem *Item) } } - if( Item->Price == 0 ) + if( !gbNoCostMode && Item->Price == 0 ) status = "error"; // KNOWN HACK: Naming a slot 'dead' disables it if( strcmp(Item->Name, "dead") == 0 )