Restructured code into src/<module>
[tpg/opendispense2.git] / server / src / dispense.c
index ee07bb9..5552277 100644 (file)
@@ -4,6 +4,11 @@
 #include <stdlib.h>
 
 // === CODE ===
+/**
+ * \brief Dispense an item for a user
+ * 
+ * The core of the dispense system, I kinda like it :)
+ */
 int DispenseItem(int User, int Item)
 {
         int    ret;
@@ -11,22 +16,28 @@ int DispenseItem(int User, int Item)
        tHandler        *handler;
        char    *username;
        
+       // Sanity check please?
        if(Item < 0 || Item >= giNumItems)
                return -1;
        
+       // Get item pointers
        item = &gaItems[Item];
        handler = &gaHandlers[ item->Type ];
        
-       username = GetUserName(User);
-       
+       // Check if the dispense is possible
        ret = handler->CanDispense( User, item->ID );
        if(!ret)        return ret;
        
+       // Subtract the balance
        ret = AlterBalance( User, -item->Price );
        // What value should I use for this error?
        // AlterBalance should return the final user balance
        if(ret == 0)    return 1;
        
+       // Get username for debugging
+       username = GetUserName(User);
+       
+       // Actually do the dispense
        ret = handler->DoDispense( User, item->ID );
        if(ret) {
                Log_Error("Dispense failed after deducting cost (%s dispensing %s - %ic)",
@@ -36,6 +47,7 @@ int DispenseItem(int User, int Item)
                return 1;
        }
        
+       // And log that it happened
        Log_Info("Dispensed %s (%i:%i) for %s [cost %i, balance %i cents]",
                item->Name, item->Type, item->ID,
                username, item->Price, GetBalance(User)

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