X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=src%2Fserver%2Fdispense.c;h=181181f94c9e4ee60e7d3da6acbe09116c30c695;hb=008596161453e64354973268125058b49aee60d3;hp=8375ab672345876808046895c5286b2680ecfe1d;hpb=399c1a3a2a1eb9c81ec0f7bdfb1512bdd2e41c6a;p=tpg%2Fopendispense2.git diff --git a/src/server/dispense.c b/src/server/dispense.c index 8375ab6..181181f 100644 --- a/src/server/dispense.c +++ b/src/server/dispense.c @@ -50,7 +50,7 @@ int DispenseItem(int ActualUser, int User, tItem *Item) ret = handler->DoDispense( User, Item->ID ); if(ret) { Log_Error("Dispense failed (%s dispensing %s:%i '%s')", - username, Item->Name, Item->Handler->Name, Item->ID); + username, Item->Handler->Name, Item->ID, Item->Name); free( username ); return -1; // 1: Unknown Error again } @@ -68,10 +68,21 @@ int DispenseItem(int ActualUser, int User, tItem *Item) actualUsername = Bank_GetAcctName(ActualUser); // And log that it happened - Log_Info("dispense '%s' (%s:%i) for %s by %s [cost %i, balance %i]", - Item->Name, handler->Name, Item->ID, - username, actualUsername, Item->Price, Bank_GetBalance(User) - ); + if( gbNoCostMode ) + { + // Special format for zero cost dispenses + Log_Info("test dispense '%s' (%s:%i) for %s by %s [no change]", + Item->Name, handler->Name, Item->ID, + username, actualUsername + ); + } + else + { + Log_Info("dispense '%s' (%s:%i) for %s by %s [cost %i, balance %i]", + Item->Name, handler->Name, Item->ID, + username, actualUsername, Item->Price, Bank_GetBalance(User) + ); + } free( username ); free( actualUsername ); @@ -120,6 +131,10 @@ int DispenseGive(int ActualUser, int SrcUser, int DestUser, int Ammount, const c char *actualUsername; char *srcName, *dstName; + // HACK: Naming a slot "dead" disables it (catch for snack) + if( strcmp(ReasonGiven, "dead") == 0 ) + return 1; + if( Ammount < 0 ) return 1; // Um... negative give? Not on my watch! ret = _Transfer( SrcUser, DestUser, Ammount, ReasonGiven ); @@ -315,9 +330,12 @@ int _GetMinBalance(int Account) /** * \brief Check if a transfer is possible + * \return Boolean success */ int _CanTransfer(int Source, int Destination, int Ammount) { +// if( Bank_GetFlags(Source) & USER_FLAG_DISABLED ) +// return 0; if( Ammount > 0 ) { if( Bank_GetBalance(Source) - Ammount < _GetMinBalance(Source) )