Difference for server/shop.c from version 1.54 to 1.55


version 1.54 version 1.55
Line 1
 
Line 1
 /*  /*
  * static char *rcsid_shop_c =   * static char *rcsid_shop_c =
  *   "$Id: shop.c,v 1.54 2006/05/05 09:47:40 ryo_saeba Exp $";   *   "$Id: shop.c,v 1.55 2006/07/25 19:14:24 tchize Exp $";
  */   */
   
 /*  /*
Line 554
 
Line 554
     /* This hunk should remove all the money objects from the player/container */      /* This hunk should remove all the money objects from the player/container */
     for (tmp=pouch->inv; tmp; tmp=next) {      for (tmp=pouch->inv; tmp; tmp=next) {
  next = tmp->below;   next = tmp->below;
   
  if (tmp->type == MONEY) {   if (tmp->type == MONEY) {
      for (i=0; i<NUM_COINS; i++) {       for (i=0; i<NUM_COINS; i++) {
  if (!strcmp(coins[NUM_COINS-1-i], tmp->arch->name) &&   if (!strcmp(coins[NUM_COINS-1-i], tmp->arch->name) &&
      (tmp->value == tmp->arch->clone.value) ) {       (tmp->value == tmp->arch->clone.value) ) {
   
      /* This should not happen, but if it does, just *       /* This should not happen, but if it does, just *
       * merge the two. */                       * merge the two.
                        */
      if (coin_objs[i]!=NULL) {       if (coin_objs[i]!=NULL) {
  LOG(llevError,"%s has two money entries of (%s)\n",   LOG(llevError,"%s has two money entries of (%s)\n",
      pouch->name, coins[NUM_COINS-1-i]);       pouch->name, coins[NUM_COINS-1-i]);
Line 569
 
Line 569
  coin_objs[i]->nrof += tmp->nrof;   coin_objs[i]->nrof += tmp->nrof;
  esrv_del_item(pl->contr, tmp->count);   esrv_del_item(pl->contr, tmp->count);
  free_object(tmp);   free_object(tmp);
      }                      } else {
      else {  
  remove_ob(tmp);   remove_ob(tmp);
  if(pouch->type==PLAYER) esrv_del_item(pl->contr, tmp->count);   if(pouch->type==PLAYER) esrv_del_item(pl->contr, tmp->count);
  coin_objs[i] = tmp;   coin_objs[i] = tmp;
Line 596
 
Line 595
   
     for (i=0; i<NUM_COINS; i++) {      for (i=0; i<NUM_COINS; i++) {
  int num_coins;   int num_coins;
   
  if (coin_objs[i]->nrof*coin_objs[i]->value> remain) {   if (coin_objs[i]->nrof*coin_objs[i]->value> remain) {
      num_coins = remain / coin_objs[i]->value;       num_coins = remain / coin_objs[i]->value;
      if ((uint64)num_coins*(uint64)coin_objs[i]->value < remain) num_coins++;       if ((uint64)num_coins*(uint64)coin_objs[i]->value < remain) num_coins++;
Line 623
 
Line 621
   
      esrv_send_item(pl, tmp);       esrv_send_item(pl, tmp);
      esrv_send_item (pl, pouch);       esrv_send_item (pl, pouch);
      if (pl != pouch) esrv_update_item (UPD_WEIGHT, pl, pouch);              if (pl != pouch)
                   esrv_update_item (UPD_WEIGHT, pl, pouch);
      if (pl->type != PLAYER) {       if (pl->type != PLAYER) {
  esrv_send_item (pl, pl);   esrv_send_item (pl, pl);
      }       }
Line 634
 
Line 633
     return(remain);      return(remain);
 }  }
   
   
 /* Checks all unpaid items in op's inventory, adds up all the money they  /* Checks all unpaid items in op's inventory, adds up all the money they
  * have, and checks that they can actually afford what they want to buy.   * have, and checks that they can actually afford what they want to buy.
  * Returns 1 if they can, and 0 if they can't. also prints an appropriate message    * Returns 1 if they can, and 0 if they can't. also prints an appropriate message
Line 650
 
Line 650
  LOG(llevError, "can_pay(): called against something that isn't a player\n");   LOG(llevError, "can_pay(): called against something that isn't a player\n");
  return 0;   return 0;
     }      }
     for (i=0; i< NUM_COINS; i++) coincount[i] = 0;       for (i=0; i< NUM_COINS; i++)
           coincount[i] = 0;
     for (item = pl->inv;item;) {      for (item = pl->inv;item;) {
  if QUERY_FLAG(item, FLAG_UNPAID) {   if QUERY_FLAG(item, FLAG_UNPAID) {
      unpaid_count++;       unpaid_count++;
Line 662
 
Line 663
  for (i=0; i< NUM_COINS; i++)    for (i=0; i< NUM_COINS; i++)
      if (!strcmp(coins[i], item->arch->name))        if (!strcmp(coins[i], item->arch->name))
  coincount[i] += item->nrof;   coincount[i] += item->nrof;
  if (item->inv) item = item->inv;           if (item->inv)
  else if (item->below) item = item->below;              item = item->inv;
  else if (item->env && item->env != pl && item->env->below) item = item->env->below;          else if (item->below)
               item = item->below;
           else if (item->env && item->env != pl && item->env->below)
               item = item->env->below;
  else item = NULL;    else item = NULL;
     }      }
     if (unpaid_price > player_wealth) {      if (unpaid_price > player_wealth) {


Legend:
line(s) removed in v.1.54 
line(s) changed
 line(s) added in v.1.55

File made using version 1.98 of cvs2html by leaf at 2011-07-21 17:44