Difference for server/skill_util.c from version 1.14 to 1.15


version 1.14 version 1.15
Line 1
 
Line 1
 /*  /*
  * static char *rcsid_skill_util_c =   * static char *rcsid_skill_util_c =
  *   "$Id: skill_util.c,v 1.14 2001/04/09 00:56:59 michtoen Exp $";   *   "$Id: skill_util.c,v 1.15 2001/04/09 06:59:46 mwedel Exp $";
  */   */
 /*  /*
     CrossFire, A Multiplayer game for X-windows      CrossFire, A Multiplayer game for X-windows
Line 65
 
Line 65
  1.2, 1.3, 1.4, 1.5, 1.7, 2.0   1.2, 1.3, 1.4, 1.5, 1.7, 2.0
 };  };
   
 #ifdef ALLOW_SKILLS          /* last_skill_ob links direct to exp. objects */  
   
 typedef struct _skill_name_table {  
  char *name;  
  int id;  
 }_skill_name_table;  
   
 static _skill_name_table skill_name_table[] = {  
  {"agility", CS_STAT_SKILLEXP_AGILITY},  
  {"personality", CS_STAT_SKILLEXP_PERSONAL},  
  {"mental", CS_STAT_SKILLEXP_MENTAL},  
  {"physique", CS_STAT_SKILLEXP_PHYSIQUE},  
  {"magic", CS_STAT_SKILLEXP_MAGIC},  
  {"wisdom", CS_STAT_SKILLEXP_WISDOM},  
  {"",-1}  
 };  
   
 /* find and assign the skill exp stuff */  
   
 void find_skill_exp_name(object *pl, object *exp, int index)  
 {  
   
  register int s;  
    
  for(s=0;skill_name_table[s].id != -1;s++)  
  {  
  if(!strcmp(skill_name_table[s].name, exp->name) )  
         {  
  pl->contr->last_skill_ob[index] = exp;  
  pl->contr->last_skill_id[index] = skill_name_table[s].id;  
  pl->contr->last_skill_index++;  
  return;  
         }  
    
  }  
 }  
   
 /* LOG(llevInfo,"** SKILL NAMES:: <%s> <%s>\n", exp->name, skill_name_table[s].name); */  
 #endif  
   
 /* do_skill() - Main skills use function-similar in scope to cast_spell().   /* do_skill() - Main skills use function-similar in scope to cast_spell().
  * We handle all requests for skill use outside of some combat here.    * We handle all requests for skill use outside of some combat here.
Line 746
 
Line 707
         LOG(llevError, "init_player_exp(): called non-player %s.\n",pl->name);          LOG(llevError, "init_player_exp(): called non-player %s.\n",pl->name);
  return 0;   return 0;
    }     }
    
 #ifdef ALLOW_SKILLS            
    pl->contr->last_skill_index = 0;  
 #endif   
      
   /* first-pass find all current exp objects */    /* first-pass find all current exp objects */
    for(tmp=pl->inv;tmp;tmp=tmp->below)     for(tmp=pl->inv;tmp;tmp=tmp->below)
       if(tmp->type==EXPERIENCE) {        if(tmp->type==EXPERIENCE) {
            exp_ob[exp_index] = tmp;             exp_ob[exp_index] = tmp;
 #ifdef ALLOW_SKILLS            
     find_skill_exp_name(pl, tmp, pl->contr->last_skill_index);  
 #endif  
         exp_index++;          exp_index++;
       } else if (exp_index == MAX_EXP_CAT)        } else if (exp_index == MAX_EXP_CAT)
        return 0;          return 0;
Line 901
 
Line 854
    pl->chosen_skill = NULL;     pl->chosen_skill = NULL;
    CLEAR_FLAG (pl, FLAG_READY_SKILL);     CLEAR_FLAG (pl, FLAG_READY_SKILL);
   
 #ifdef ALLOW_SKILLS            
    pl->contr->last_skill_index = 0;  
 #endif   
     /* first find all exp and skill objects */      /* first find all exp and skill objects */
    for(tmp=pl->inv;tmp&&sk_index<100;tmp=tmp->below)     for(tmp=pl->inv;tmp&&sk_index<100;tmp=tmp->below)
       if(tmp->type==EXPERIENCE) {        if(tmp->type==EXPERIENCE) {
            exp_ob[exp_index] = tmp;             exp_ob[exp_index] = tmp;
 #ifdef ALLOW_SKILLS            
     find_skill_exp_name(pl, tmp, pl->contr->last_skill_index);  
 #endif  
            tmp->nrof=1; /* to handle multiple instances */             tmp->nrof=1; /* to handle multiple instances */
            exp_index++;             exp_index++;
       } else if (tmp->type==SKILL) {        } else if (tmp->type==SKILL) {


Legend:
line(s) removed in v.1.14 
line(s) changed
 line(s) added in v.1.15

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