Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Possible bug with cap for Survival skill  (Read 1078 times)

Liberal Elitist

  • Bay Watcher
  • I'm more liberal than you are!
    • View Profile
    • The Liberal Crime Squad wiki
Possible bug with cap for Survival skill
« on: September 12, 2008, 07:16:04 am »

Look at this code from commonactions.cpp in version 3.15.1:

Code: [Select]
/* common - returns the creature's maximum level in the given skill */
int maxskill(int skill,creaturest& cr)
{
   switch(skill)
   {
   case SKILL_HANDTOHAND:
   case SKILL_SWORD:
   case SKILL_IMPROVISED:
      return (cr.attval(ATTRIBUTE_STRENGTH)+cr.attval(ATTRIBUTE_AGILITY))/2;
   case SKILL_CLUB:
      return cr.attval(ATTRIBUTE_STRENGTH);
   case SKILL_KNIFE:
   case SKILL_PISTOL:
   case SKILL_RIFLE:
   case SKILL_SMG:
   case SKILL_SHOTGUN:
   case SKILL_DRIVING:
   case SKILL_SLEIGHTOFHAND:
   case SKILL_STEALTH:
      return cr.attval(ATTRIBUTE_AGILITY);
   case SKILL_PERSUASION:
   case SKILL_DISGUISE:
   case SKILL_SEDUCTION:
      return cr.attval(ATTRIBUTE_CHARISMA);
   case SKILL_ART:
   case SKILL_MUSIC:
   case SKILL_COOKING:
      return (2*cr.attval(ATTRIBUTE_HEART)+cr.attval(ATTRIBUTE_AGILITY))/3;
   case SKILL_WRITING:
      return (cr.attval(ATTRIBUTE_INTELLIGENCE)+cr.attval(ATTRIBUTE_HEART))/2;
   case SKILL_RELIGION:
      return (2*cr.attval(ATTRIBUTE_WISDOM)+cr.attval(ATTRIBUTE_HEART))/3;
   case SKILL_BUSINESS:
      return (cr.attval(ATTRIBUTE_CHARISMA)+cr.attval(ATTRIBUTE_WISDOM)+cr.attval(ATTRIBUTE_INTELLIGENCE))/3;
   case SKILL_MEDICAL:
   case SKILL_SECURITY:
   case SKILL_GARMENTMAKING:
      return (cr.attval(ATTRIBUTE_INTELLIGENCE)+cr.attval(ATTRIBUTE_AGILITY))/2;
   case SKILL_INTERROGATION:
   case SKILL_TEACHING:
      return (cr.attval(ATTRIBUTE_INTELLIGENCE)+cr.attval(ATTRIBUTE_CHARISMA))/2;
   case SKILL_SCIENCE:
   case SKILL_LAW:
   case SKILL_COMPUTERS:
   case SKILL_STREETSENSE:
   case SKILL_TACTICS:
      return cr.attval(ATTRIBUTE_INTELLIGENCE);
   case SKILL_LEADERSHIP:
      if(cr.juice<10)return 0;
      if(cr.juice<50)return 1;
      if(cr.juice<100)return 2;
      if(cr.juice<200)return 3;
      if(cr.juice<500)return 4;
      return 5;
   default:
      return -1;
   }
}

There is a problem. SKILL_SURVIVAL is not mentioned at all. This means that the skill cap for the Survival skill is -1, so nobody can ever increase their Survival skill, ever, if I am understanding the code correctly. I looked at the latest SVN and while more skills have been added into this function, SKILL_SURVIVAL is still missing. Is it missing from there on purpose or is this an actual bug? Is it by design that the Survival skill cannot be learned? In earlier versions I think Survival might have been dependent on Intelligence, like Science, Law, Computers, Street Sense, and Tactics, but I am not exactly sure. Anyway the wiki now says what stats each skill is based on, and it is completely accurate since I based it on the source code from commonactions.cpp in version 3.15.1. The previous version said Survival was based on Intelligence but now it says the cap is -1 because that is the truth. I wonder whether there is some secret mechanism for increasing the Survival skill in some other file of the source code, though. I did a text search on all the files for SKILL_SURVIVAL and while it does come up a lot, I do not see anywhere where it looks like it is being modified, except during character creation. Is this a skill you are planning on deleting from the game or something? I am just rather confused about this.
Logged
The Liberal Crime Squad wiki is your friend.

Quote from: Lielac
Edit: Figured it out via a little bit of trial and error and oH MY GOD WHAT IS THIS MUSIC WHAT IS THIS MUSIC WHAT THE HECK IS IT SPACEBALLS MUSIC? WHATEVER IT IS IT IS MAGICAL