dbt/cnf/
dbt/lib/
dbt/lib/house/
dbt/lib/text/help/
dbt/lib/world/
dbt/lib/world/qst/
dbt/src/
dbt/src/copyover/
/* 
************************************************************************
*   File: class.c                                       Part of CircleMUD *
*  Usage: Source file for class-specific code                             *
*                                                                         *
*  All rights reserved.  See license.doc for complete information.        *
*                                                                         *
*  Copyright (C) 1993, 94 by the Trustees of the Johns Hopkins University *
*  CircleMUD is based on DikuMUD, Copyright (C) 1990, 1991.               *
************************************************************************ */

/*
 * This file attempts to concentrate most of the code which must be changed
 * in order for new classes to be added.  If you're adding a new class,
 * you should go through this entire file from beginning to end and add
 * the appropriate new special cases for your new class.
 */



#include "conf.h"
#include "sysdep.h"

#include "structs.h"
#include "db.h"
#include "utils.h"
#include "spells.h"
#include "interpreter.h"

extern struct wis_app_type wis_app[];
extern struct con_app_type con_app[];
extern struct int_app_type int_app[];
extern int siteok_everyone;

/* local functions */
int parse_class(char arg);
long find_class_bitvector(char arg);
byte saving_throws(int class_num, int type, int level);
int thaco(int class_num, int level);
void roll_real_abils(struct char_data * ch);
void do_start(struct char_data * ch);
int backstab_mult(int level);
int invalid_class(struct char_data *ch, struct obj_data *obj);
long long level_exp(int chclass, long long level);
const char *title_male(int chclass, int level);
const char *title_female(int chclass, int level);

/* Names first */

const char *class_abbrevs[] = {
  "&14H&00&06u&14m&00&06a&14n&00      ",
  "&10N&00&02a&10m&00&02e&10k&00      ",
  "&14I&00&06c&15e&00&07r&00       ",
  "&11S&00&03a&11i&00&03y&11a&00&03n&00     ",
  "&13M&00&05a&13j&00&05i&13n&00      ",
  "&16A&15n&00&07dro&15i&16d&00    ",
  "&12K&14a&00&06i&00        ",
  "&14H&00&06a&14l&00&06f&12B&00&04r&12e&00&04e&12d  &00",
  "&10B&00&02i&10o&00&06-&16A&15n&00&07dro&15i&16d&00",
  "&00&07K&15on&16a&15ts&00&07u&00    ",
  "&13Changeling&00 ",
  "&09D&00&01e&09m&00&01o&09n&00      ",
  "&12T&14r&00&06u&00&04f&00&06f&14l&12e&00    ",
  "&09M&00&01u&00&05ta&00&01n&09t&00      ",
  "&12K&00&04a&00&06n&14as&00&06s&00&04a&12n&00      ",
  "\n"
};

const char *class_abbrevs2[] = {
  "&14H&00&06u&14m&00&06a&14n&00        ",
  "&10N&00&02a&10m&00&02e&10k&00        ",
  "&14I&00&06c&15e&00&07r&00         ",
  "&11S&00&03a&11i&00&03y&11a&00&03n&00       ",
  "&13M&00&05a&13j&00&05i&13n&00        ",
  "&16A&15n&00&07dro&15i&16d&00      ",
  "&12K&14a&00&06i&00          ",
  "&14H&00&06a&14l&00&06f&12B&00&04r&12e&00&04e&12d    &00",
  "&10B&00&02i&10o&00&06-&16A&15n&00&07dro&15i&16d&00  ",
  "&00&07K&15on&16a&15ts&00&07u&00      ",
  "&13Changeling&00   ",
  "&09D&00&01e&09m&00&01o&09n&00        ",
  "&12T&14r&00&06u&00&04f&00&06f&14l&12e&00      ",
  "&09M&00&01u&00&05ta&00&01n&09t&00       ",
  "&12K&00&04a&00&06n&14as&00&06s&00&04a&12n&00     ",
  "\n"
};


const char *pc_class_types[] = {
  "Human",
  "Namek",
  "Icer",
  "Saiyan",
  "Majin",
  "Android",
  "Kai",
  "Half-Breed",
  "Bio-Android",
  "Konatsu",
  "Changeling",
  "Demon",
  "Truffle",
  "Mutant",
  "Kanassan",
  "\n"
};


/* The menu for choosing a class in interpreter.c: */
const char *class_menu =
"\r\nSaiyans are restricted, read help request to find how to request one.\r\n"
"\x1B[1;37mo\x1b[1;34m-----------------------------------------------------\x1B[1;37mo\x1B[0;0m\r\n"
"\x1b[1;34m|  \x1b[1;34m(\x1b[0;32m1\x1b[1;34m)\x1B[0;0m Human       \x1b[1;34m(\x1b[0;32m6\x1b[1;34m)\x1B[0;0m Android       \x1b[1;34m(\x1b[0;32mA\x1b[1;34m)\x1B[0;0m Mutant        \x1B[1;31m\r\n"
"\x1b[1;34m|  \x1b[1;34m(\x1b[0;32m2\x1b[1;34m)\x1B[0;0m Namek       \x1b[1;34m(\x1b[0;32m7\x1b[1;34m)\x1B[0;0m Kai           \x1b[1;34m(\x1b[0;32mB\x1b[1;34m)\x1B[0;0m Demon         \x1B[1;31m\r\n"
"\x1b[1;34m|  \x1b[1;34m(\x1b[0;32m*\x1b[1;34m)\x1B[0;0m Saiyan      \x1b[1;34m(\x1b[0;32m8\x1b[1;34m)\x1B[0;0m Half-Breed    \x1b[1;34m(\x1b[0;32mC\x1b[1;34m)\x1B[0;0m Kanassan             \x1B[1;31m\r\n"
"\x1b[1;34m|  \x1b[1;34m(\x1b[0;32m4\x1b[1;34m)\x1B[0;0m Icer        \x1b[1;34m(\x1b[0;32m9\x1b[1;34m)\x1B[0;0m Bio-Android   \x1b[1;34m(\x1b[0;32mE\x1b[1;34m)\x1B[0;0m Truffle           \x1B[1;31m\r\n"  
"\x1b[1;34m|  \x1b[1;34m(\x1b[0;32m5\x1b[1;34m)\x1B[0;0m Majin       \x1b[1;34m(\x1b[0;32m0\x1b[1;34m)\x1B[0;0m Konatsu       \x1B[1;31m\r\n "
"\x1B[1;37mo\x1b[1;34m-----------------------------------------------------\x1B[1;37mo\x1B[0;0m\r\n";


/*
 * The code to interpret a class letter -- used in interpreter.c when a
 * new character is selecting a class and by 'set class' in act.wizard.c.
 */

int parse_class(char arg)
{
  arg = LOWER(arg);

  switch (arg) {
  case '1': return CLASS_Human;
  case '2': return CLASS_Namek;
  case '^': return CLASS_saiyan;
  case '4': return CLASS_icer;
  case '5': return CLASS_MAJIN;
  case '6': return CLASS_ANDROID;
  case '7': return CLASS_KAI;
  case '8': return CLASS_HALF_BREED;
  case '9': return CLASS_BIODROID;
  case '0': return CLASS_KONATSU;
  case 'A': return CLASS_MUTANT;
  case 'a': return CLASS_MUTANT;
  case 'B': return CLASS_demon;
  case 'b': return CLASS_demon;
  case 'C': return CLASS_KANASSAN;
  case 'c': return CLASS_KANASSAN;
  case 'E': return CLASS_TRUFFLE;
  case 'e': return CLASS_TRUFFLE;
  default:  return CLASS_UNDEFINED;
  }
}

/*
 * bitvectors (i.e., powers of two) for each class, mainly for use in
 * do_who and do_users.  Add new classes at the end so that all classes
 * use sequential powers of two (1 << 0, 1 << 1, 1 << 2, 1 << 3, 1 << 4,
 * 1 << 5, etc.
 */

long find_class_bitvector(char arg)
{
  arg = LOWER(arg);

  switch (arg) {
    case '1': return (1 << CLASS_Human);
    case '2': return (1 << CLASS_Namek);
    case '3': return (1 << CLASS_icer);
    case '4': return (1 << CLASS_saiyan);
    case '5': return (1 << CLASS_MAJIN);
    case '6': return (1 << CLASS_ANDROID);
    case '7': return (1 << CLASS_KAI);
    case '8': return (1 << CLASS_HALF_BREED);
    case '9': return (1 << CLASS_BIODROID);
    case '0': return (1 << CLASS_KONATSU);
    case 'A': return (1 << CLASS_MUTANT);
    case 'a': return (1 << CLASS_MUTANT);
    case 'B': return (1 << CLASS_demon);
    case 'b': return (1 << CLASS_demon);
    case 'C': return (1 << CLASS_KANASSAN);
    case 'c': return (1 << CLASS_KANASSAN);
    case 'E': return (1 << CLASS_TRUFFLE);
    case 'e': return (1 << CLASS_TRUFFLE);
            
    default:  return 0;
  }
}


/*
 * These are definitions which control the guildmasters for each class.
 *
 * The first field (top line) controls the highest percentage skill level
 * a character of the class is allowed to attain in any skill.  (After
 * this level, attempts to practice will say "You are already learned in
 * this area."
 * 
 * The second line controls the maximum percent gain in learnedness a
 * character is allowed per practice -- in other words, if the random
 * die throw comes out higher than this number, the gain will only be
 * this number instead.
 *
 * The third line controls the minimu percent gain in learnedness a
 * character is allowed per practice -- in other words, if the random
 * die throw comes out below this number, the gain will be set up to
 * this number.
 * 
 * The fourth line simply sets whether the character knows 'spells'
 * or 'skills'.  This does not affect anything except the message given
 * to the character when trying to practice (i.e. "You know of the
 * following spells" vs. "You know of the following skills"
 */

#define SPELL	0
#define SKILL	1

/* #define LEARNED_LEVEL	0  % known which is considered "learned" */
/* #define MAX_PER_PRAC		1  max percent gain in skill per practice */
/* #define MIN_PER_PRAC		2  min percent gain in skill per practice */
/* #define PRAC_TYPE		3  should it say 'spell' or 'skill'?	*/

int prac_params[4][NUM_CLASSES] = {
/* MAG	CLE  THE  WAR */
  {100,	100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100},		/* learned level */
  {100,	100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100},		/* max per prac */
  {25,	25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,},		/* min per pac */
  {SPELL, SPELL, SPELL, SPELL, SPELL, SPELL, SPELL, SPELL, SPELL, SPELL, SPELL, SPELL, SPELL, SPELL, SPELL}	/* prac name */
};


/*
 * ...And the appropriate rooms for each guildmaster/guildguard; controls
 * which types of people the various guildguards let through.  i.e., the
 * first line shows that from room 3017, only HumanS are allowed
 * to go south.
 */
int guild_info[][3] = {

/* Midgaard */

/* this must go last -- add new guards above! */
{-1, -1, -1}};



/*
 * Saving throws for:
 * MCTW
 *   PARA, ROD, PETRI, BREATH, SPELL
 *     Levels 0-40
 *
 * Do not forget to change extern declaration in magic.c if you add to this.
 */
byte saving_throws(int class_num, int type, int level) {
  switch (class_num) {
  case CLASS_Human:
    switch (type) {
    case SAVING_PARA:	/* Paralyzation */
      switch (level) {
      case  0: return 90;
      case  1: return 70;
      case  2: return 69;
      case  3: return 68;
      case  4: return 67;
      case  5: return 66;
      case  6: return 65;
      case  7: return 63;
      case  8: return 61;
      case  9: return 60;
      case 10: return 59;
      case 11: return 57;
      case 12: return 55;
      case 13: return 54;
      case 14: return 53;
      case 15: return 53;
      case 16: return 52;
      case 17: return 51;
      case 18: return 50;
      case 19: return 48;
      case 20: return 46;
      case 21: return 45;
      case 22: return 44;
      case 23: return 42;
      case 24: return 40;
      case 25: return 38;
      case 26: return 36;
      case 27: return 34;
      case 28: return 32;
      case 29: return 30;
      case 30: return 28;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_ROD:	/* Rods */
      switch (level) {
      case  0: return 90;
      case  1: return 55;
      case  2: return 53;
      case  3: return 51;
      case  4: return 49;
      case  5: return 47;
      case  6: return 45;
      case  7: return 43;
      case  8: return 41;
      case  9: return 40;
      case 10: return 39;
      case 11: return 37;
      case 12: return 35;
      case 13: return 33;
      case 14: return 31;
      case 15: return 30;
      case 16: return 29;
      case 17: return 27;
      case 18: return 25;
      case 19: return 23;
      case 20: return 21;
      case 21: return 20;
      case 22: return 19;
      case 23: return 17;
      case 24: return 15;
      case 25: return 14;
      case 26: return 13;
      case 27: return 12;
      case 28: return 11;
      case 29: return 10;
      case 30: return  9;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_PETRI:	/* Petrification */
      switch (level) {
      case  0: return 90;
      case  1: return 65;
      case  2: return 63;
      case  3: return 61;
      case  4: return 59;
      case  5: return 57;
      case  6: return 55;
      case  7: return 53;
      case  8: return 51;
      case  9: return 50;
      case 10: return 49;
      case 11: return 47;
      case 12: return 45;
      case 13: return 43;
      case 14: return 41;
      case 15: return 40;
      case 16: return 39;
      case 17: return 37;
      case 18: return 35;
      case 19: return 33;
      case 20: return 31;
      case 21: return 30;
      case 22: return 29;
      case 23: return 27;
      case 24: return 25;
      case 25: return 23;
      case 26: return 21;
      case 27: return 19;
      case 28: return 17;
      case 29: return 15;
      case 30: return 13;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_BREATH:	/* Breath weapons */
      switch (level) {
      case  0: return 90;
      case  1: return 75;
      case  2: return 73;
      case  3: return 71;
      case  4: return 69;
      case  5: return 67;
      case  6: return 65;
      case  7: return 63;
      case  8: return 61;
      case  9: return 60;
      case 10: return 59;
      case 11: return 57;
      case 12: return 55;
      case 13: return 53;
      case 14: return 51;
      case 15: return 50;
      case 16: return 49;
      case 17: return 47;
      case 18: return 45;
      case 19: return 43;
      case 20: return 41;
      case 21: return 40;
      case 22: return 39;
      case 23: return 37;
      case 24: return 35;
      case 25: return 33;
      case 26: return 31;
      case 27: return 29;
      case 28: return 27;
      case 29: return 25;
      case 30: return 23;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_SPELL:	/* Generic spells */
      switch (level) {
      case  0: return 90;
      case  1: return 60;
      case  2: return 58;
      case  3: return 56;
      case  4: return 54;
      case  5: return 52;
      case  6: return 50;
      case  7: return 48;
      case  8: return 46;
      case  9: return 45;
      case 10: return 44;
      case 11: return 42;
      case 12: return 40;
      case 13: return 38;
      case 14: return 36;
      case 15: return 35;
      case 16: return 34;
      case 17: return 32;
      case 18: return 30;
      case 19: return 28;
      case 20: return 26;
      case 21: return 25;
      case 22: return 24;
      case 23: return 22;
      case 24: return 20;
      case 25: return 18;
      case 26: return 16;
      case 27: return 14;
      case 28: return 12;
      case 29: return 10;
      case 30: return  8;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    default:
     break;
    }
    break;
  case CLASS_Namek:
    switch (type) {
    case SAVING_PARA:	/* Paralyzation */
      switch (level) {
      case  0: return 90;
      case  1: return 60;
      case  2: return 59;
      case  3: return 48;
      case  4: return 46;
      case  5: return 45;
      case  6: return 43;
      case  7: return 40;
      case  8: return 37;
      case  9: return 35;
      case 10: return 34;
      case 11: return 33;
      case 12: return 31;
      case 13: return 30;
      case 14: return 29;
      case 15: return 27;
      case 16: return 26;
      case 17: return 25;
      case 18: return 24;
      case 19: return 23;
      case 20: return 22;
      case 21: return 21;
      case 22: return 20;
      case 23: return 18;
      case 24: return 15;
      case 25: return 14;
      case 26: return 12;
      case 27: return 10;
      case 28: return  9;
      case 29: return  8;
      case 30: return  7;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_ROD:	/* Rods */
      switch (level) {
      case  0: return 90;
      case  1: return 70;
      case  2: return 69;
      case  3: return 68;
      case  4: return 66;
      case  5: return 65;
      case  6: return 63;
      case  7: return 60;
      case  8: return 57;
      case  9: return 55;
      case 10: return 54;
      case 11: return 53;
      case 12: return 51;
      case 13: return 50;
      case 14: return 49;
      case 15: return 47;
      case 16: return 46;
      case 17: return 45;
      case 18: return 44;
      case 19: return 43;
      case 20: return 42;
      case 21: return 41;
      case 22: return 40;
      case 23: return 38;
      case 24: return 35;
      case 25: return 34;
      case 26: return 32;
      case 27: return 30;
      case 28: return 29;
      case 29: return 28;
      case 30: return 27;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_PETRI:	/* Petrification */
      switch (level) {
      case  0: return 90;
      case  1: return 65;
      case  2: return 64;
      case  3: return 63;
      case  4: return 61;
      case  5: return 60;
      case  6: return 58;
      case  7: return 55;
      case  8: return 53;
      case  9: return 50;
      case 10: return 49;
      case 11: return 48;
      case 12: return 46;
      case 13: return 45;
      case 14: return 44;
      case 15: return 43;
      case 16: return 41;
      case 17: return 40;
      case 18: return 39;
      case 19: return 38;
      case 20: return 37;
      case 21: return 36;
      case 22: return 35;
      case 23: return 33;
      case 24: return 31;
      case 25: return 29;
      case 26: return 27;
      case 27: return 25;
      case 28: return 24;
      case 29: return 23;
      case 30: return 22;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_BREATH:	/* Breath weapons */
      switch (level) {
      case  0: return 90;
      case  1: return 80;
      case  2: return 79;
      case  3: return 78;
      case  4: return 76;
      case  5: return 75;
      case  6: return 73;
      case  7: return 70;
      case  8: return 67;
      case  9: return 65;
      case 10: return 64;
      case 11: return 63;
      case 12: return 61;
      case 13: return 60;
      case 14: return 59;
      case 15: return 57;
      case 16: return 56;
      case 17: return 55;
      case 18: return 54;
      case 19: return 53;
      case 20: return 52;
      case 21: return 51;
      case 22: return 50;
      case 23: return 48;
      case 24: return 45;
      case 25: return 44;
      case 26: return 42;
      case 27: return 40;
      case 28: return 39;
      case 29: return 38;
      case 30: return 37;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_SPELL:	/* Generic spells */
      switch (level) {
      case  0: return 90;
      case  1: return 75;
      case  2: return 74;
      case  3: return 73;
      case  4: return 71;
      case  5: return 70;
      case  6: return 68;
      case  7: return 65;
      case  8: return 63;
      case  9: return 60;
      case 10: return 59;
      case 11: return 58;
      case 12: return 56;
      case 13: return 55;
      case 14: return 54;
      case 15: return 53;
      case 16: return 51;
      case 17: return 50;
      case 18: return 49;
      case 19: return 48;
      case 20: return 47;
      case 21: return 46;
      case 22: return 45;
      case 23: return 43;
      case 24: return 41;
      case 25: return 39;
      case 26: return 37;
      case 27: return 35;
      case 28: return 34;
      case 29: return 33;
      case 30: return 32;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    default:
     break;
    }
    break;
    
    case CLASS_BIODROID:
    switch (type) {
    case SAVING_PARA:	/* Paralyzation */
      switch (level) {
      case  0: return 90;
      case  1: return 60;
      case  2: return 59;
      case  3: return 48;
      case  4: return 46;
      case  5: return 45;
      case  6: return 43;
      case  7: return 40;
      case  8: return 37;
      case  9: return 35;
      case 10: return 34;
      case 11: return 33;
      case 12: return 31;
      case 13: return 30;
      case 14: return 29;
      case 15: return 27;
      case 16: return 26;
      case 17: return 25;
      case 18: return 24;
      case 19: return 23;
      case 20: return 22;
      case 21: return 21;
      case 22: return 20;
      case 23: return 18;
      case 24: return 15;
      case 25: return 14;
      case 26: return 12;
      case 27: return 10;
      case 28: return  9;
      case 29: return  8;
      case 30: return  7;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_ROD:	/* Rods */
      switch (level) {
      case  0: return 90;
      case  1: return 70;
      case  2: return 69;
      case  3: return 68;
      case  4: return 66;
      case  5: return 65;
      case  6: return 63;
      case  7: return 60;
      case  8: return 57;
      case  9: return 55;
      case 10: return 54;
      case 11: return 53;
      case 12: return 51;
      case 13: return 50;
      case 14: return 49;
      case 15: return 47;
      case 16: return 46;
      case 17: return 45;
      case 18: return 44;
      case 19: return 43;
      case 20: return 42;
      case 21: return 41;
      case 22: return 40;
      case 23: return 38;
      case 24: return 35;
      case 25: return 34;
      case 26: return 32;
      case 27: return 30;
      case 28: return 29;
      case 29: return 28;
      case 30: return 27;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_PETRI:	/* Petrification */
      switch (level) {
      case  0: return 90;
      case  1: return 65;
      case  2: return 64;
      case  3: return 63;
      case  4: return 61;
      case  5: return 60;
      case  6: return 58;
      case  7: return 55;
      case  8: return 53;
      case  9: return 50;
      case 10: return 49;
      case 11: return 48;
      case 12: return 46;
      case 13: return 45;
      case 14: return 44;
      case 15: return 43;
      case 16: return 41;
      case 17: return 40;
      case 18: return 39;
      case 19: return 38;
      case 20: return 37;
      case 21: return 36;
      case 22: return 35;
      case 23: return 33;
      case 24: return 31;
      case 25: return 29;
      case 26: return 27;
      case 27: return 25;
      case 28: return 24;
      case 29: return 23;
      case 30: return 22;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_BREATH:	/* Breath weapons */
      switch (level) {
      case  0: return 90;
      case  1: return 80;
      case  2: return 79;
      case  3: return 78;
      case  4: return 76;
      case  5: return 75;
      case  6: return 73;
      case  7: return 70;
      case  8: return 67;
      case  9: return 65;
      case 10: return 64;
      case 11: return 63;
      case 12: return 61;
      case 13: return 60;
      case 14: return 59;
      case 15: return 57;
      case 16: return 56;
      case 17: return 55;
      case 18: return 54;
      case 19: return 53;
      case 20: return 52;
      case 21: return 51;
      case 22: return 50;
      case 23: return 48;
      case 24: return 45;
      case 25: return 44;
      case 26: return 42;
      case 27: return 40;
      case 28: return 39;
      case 29: return 38;
      case 30: return 37;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_SPELL:	/* Generic spells */
      switch (level) {
      case  0: return 90;
      case  1: return 75;
      case  2: return 74;
      case  3: return 73;
      case  4: return 71;
      case  5: return 70;
      case  6: return 68;
      case  7: return 65;
      case  8: return 63;
      case  9: return 60;
      case 10: return 59;
      case 11: return 58;
      case 12: return 56;
      case 13: return 55;
      case 14: return 54;
      case 15: return 53;
      case 16: return 51;
      case 17: return 50;
      case 18: return 49;
      case 19: return 48;
      case 20: return 47;
      case 21: return 46;
      case 22: return 45;
      case 23: return 43;
      case 24: return 41;
      case 25: return 39;
      case 26: return 37;
      case 27: return 35;
      case 28: return 34;
      case 29: return 33;
      case 30: return 32;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    default:
     break;
    }
    break;
    
    case CLASS_KONATSU:
    switch (type) {
    case SAVING_PARA:	/* Paralyzation */
      switch (level) {
      case  0: return 90;
      case  1: return 60;
      case  2: return 59;
      case  3: return 48;
      case  4: return 46;
      case  5: return 45;
      case  6: return 43;
      case  7: return 40;
      case  8: return 37;
      case  9: return 35;
      case 10: return 34;
      case 11: return 33;
      case 12: return 31;
      case 13: return 30;
      case 14: return 29;
      case 15: return 27;
      case 16: return 26;
      case 17: return 25;
      case 18: return 24;
      case 19: return 23;
      case 20: return 22;
      case 21: return 21;
      case 22: return 20;
      case 23: return 18;
      case 24: return 15;
      case 25: return 14;
      case 26: return 12;
      case 27: return 10;
      case 28: return  9;
      case 29: return  8;
      case 30: return  7;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_ROD:	/* Rods */
      switch (level) {
      case  0: return 90;
      case  1: return 70;
      case  2: return 69;
      case  3: return 68;
      case  4: return 66;
      case  5: return 65;
      case  6: return 63;
      case  7: return 60;
      case  8: return 57;
      case  9: return 55;
      case 10: return 54;
      case 11: return 53;
      case 12: return 51;
      case 13: return 50;
      case 14: return 49;
      case 15: return 47;
      case 16: return 46;
      case 17: return 45;
      case 18: return 44;
      case 19: return 43;
      case 20: return 42;
      case 21: return 41;
      case 22: return 40;
      case 23: return 38;
      case 24: return 35;
      case 25: return 34;
      case 26: return 32;
      case 27: return 30;
      case 28: return 29;
      case 29: return 28;
      case 30: return 27;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_PETRI:	/* Petrification */
      switch (level) {
      case  0: return 90;
      case  1: return 65;
      case  2: return 64;
      case  3: return 63;
      case  4: return 61;
      case  5: return 60;
      case  6: return 58;
      case  7: return 55;
      case  8: return 53;
      case  9: return 50;
      case 10: return 49;
      case 11: return 48;
      case 12: return 46;
      case 13: return 45;
      case 14: return 44;
      case 15: return 43;
      case 16: return 41;
      case 17: return 40;
      case 18: return 39;
      case 19: return 38;
      case 20: return 37;
      case 21: return 36;
      case 22: return 35;
      case 23: return 33;
      case 24: return 31;
      case 25: return 29;
      case 26: return 27;
      case 27: return 25;
      case 28: return 24;
      case 29: return 23;
      case 30: return 22;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_BREATH:	/* Breath weapons */
      switch (level) {
      case  0: return 90;
      case  1: return 80;
      case  2: return 79;
      case  3: return 78;
      case  4: return 76;
      case  5: return 75;
      case  6: return 73;
      case  7: return 70;
      case  8: return 67;
      case  9: return 65;
      case 10: return 64;
      case 11: return 63;
      case 12: return 61;
      case 13: return 60;
      case 14: return 59;
      case 15: return 57;
      case 16: return 56;
      case 17: return 55;
      case 18: return 54;
      case 19: return 53;
      case 20: return 52;
      case 21: return 51;
      case 22: return 50;
      case 23: return 48;
      case 24: return 45;
      case 25: return 44;
      case 26: return 42;
      case 27: return 40;
      case 28: return 39;
      case 29: return 38;
      case 30: return 37;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_SPELL:	/* Generic spells */
      switch (level) {
      case  0: return 90;
      case  1: return 75;
      case  2: return 74;
      case  3: return 73;
      case  4: return 71;
      case  5: return 70;
      case  6: return 68;
      case  7: return 65;
      case  8: return 63;
      case  9: return 60;
      case 10: return 59;
      case 11: return 58;
      case 12: return 56;
      case 13: return 55;
      case 14: return 54;
      case 15: return 53;
      case 16: return 51;
      case 17: return 50;
      case 18: return 49;
      case 19: return 48;
      case 20: return 47;
      case 21: return 46;
      case 22: return 45;
      case 23: return 43;
      case 24: return 41;
      case 25: return 39;
      case 26: return 37;
      case 27: return 35;
      case 28: return 34;
      case 29: return 33;
      case 30: return 32;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    default:
     break;
    }
    break;
    
    case CLASS_CHANGELING:
    switch (type) {
    case SAVING_PARA:	/* Paralyzation */
      switch (level) {
      case  0: return 90;
      case  1: return 60;
      case  2: return 59;
      case  3: return 48;
      case  4: return 46;
      case  5: return 45;
      case  6: return 43;
      case  7: return 40;
      case  8: return 37;
      case  9: return 35;
      case 10: return 34;
      case 11: return 33;
      case 12: return 31;
      case 13: return 30;
      case 14: return 29;
      case 15: return 27;
      case 16: return 26;
      case 17: return 25;
      case 18: return 24;
      case 19: return 23;
      case 20: return 22;
      case 21: return 21;
      case 22: return 20;
      case 23: return 18;
      case 24: return 15;
      case 25: return 14;
      case 26: return 12;
      case 27: return 10;
      case 28: return  9;
      case 29: return  8;
      case 30: return  7;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_ROD:	/* Rods */
      switch (level) {
      case  0: return 90;
      case  1: return 70;
      case  2: return 69;
      case  3: return 68;
      case  4: return 66;
      case  5: return 65;
      case  6: return 63;
      case  7: return 60;
      case  8: return 57;
      case  9: return 55;
      case 10: return 54;
      case 11: return 53;
      case 12: return 51;
      case 13: return 50;
      case 14: return 49;
      case 15: return 47;
      case 16: return 46;
      case 17: return 45;
      case 18: return 44;
      case 19: return 43;
      case 20: return 42;
      case 21: return 41;
      case 22: return 40;
      case 23: return 38;
      case 24: return 35;
      case 25: return 34;
      case 26: return 32;
      case 27: return 30;
      case 28: return 29;
      case 29: return 28;
      case 30: return 27;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_PETRI:	/* Petrification */
      switch (level) {
      case  0: return 90;
      case  1: return 65;
      case  2: return 64;
      case  3: return 63;
      case  4: return 61;
      case  5: return 60;
      case  6: return 58;
      case  7: return 55;
      case  8: return 53;
      case  9: return 50;
      case 10: return 49;
      case 11: return 48;
      case 12: return 46;
      case 13: return 45;
      case 14: return 44;
      case 15: return 43;
      case 16: return 41;
      case 17: return 40;
      case 18: return 39;
      case 19: return 38;
      case 20: return 37;
      case 21: return 36;
      case 22: return 35;
      case 23: return 33;
      case 24: return 31;
      case 25: return 29;
      case 26: return 27;
      case 27: return 25;
      case 28: return 24;
      case 29: return 23;
      case 30: return 22;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_BREATH:	/* Breath weapons */
      switch (level) {
      case  0: return 90;
      case  1: return 80;
      case  2: return 79;
      case  3: return 78;
      case  4: return 76;
      case  5: return 75;
      case  6: return 73;
      case  7: return 70;
      case  8: return 67;
      case  9: return 65;
      case 10: return 64;
      case 11: return 63;
      case 12: return 61;
      case 13: return 60;
      case 14: return 59;
      case 15: return 57;
      case 16: return 56;
      case 17: return 55;
      case 18: return 54;
      case 19: return 53;
      case 20: return 52;
      case 21: return 51;
      case 22: return 50;
      case 23: return 48;
      case 24: return 45;
      case 25: return 44;
      case 26: return 42;
      case 27: return 40;
      case 28: return 39;
      case 29: return 38;
      case 30: return 37;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_SPELL:	/* Generic spells */
      switch (level) {
      case  0: return 90;
      case  1: return 75;
      case  2: return 74;
      case  3: return 73;
      case  4: return 71;
      case  5: return 70;
      case  6: return 68;
      case  7: return 65;
      case  8: return 63;
      case  9: return 60;
      case 10: return 59;
      case 11: return 58;
      case 12: return 56;
      case 13: return 55;
      case 14: return 54;
      case 15: return 53;
      case 16: return 51;
      case 17: return 50;
      case 18: return 49;
      case 19: return 48;
      case 20: return 47;
      case 21: return 46;
      case 22: return 45;
      case 23: return 43;
      case 24: return 41;
      case 25: return 39;
      case 26: return 37;
      case 27: return 35;
      case 28: return 34;
      case 29: return 33;
      case 30: return 32;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    default:
     break;
    }
    break;
    
    case CLASS_demon:
    switch (type) {
    case SAVING_PARA:	/* Paralyzation */
      switch (level) {
      case  0: return 90;
      case  1: return 60;
      case  2: return 59;
      case  3: return 48;
      case  4: return 46;
      case  5: return 45;
      case  6: return 43;
      case  7: return 40;
      case  8: return 37;
      case  9: return 35;
      case 10: return 34;
      case 11: return 33;
      case 12: return 31;
      case 13: return 30;
      case 14: return 29;
      case 15: return 27;
      case 16: return 26;
      case 17: return 25;
      case 18: return 24;
      case 19: return 23;
      case 20: return 22;
      case 21: return 21;
      case 22: return 20;
      case 23: return 18;
      case 24: return 15;
      case 25: return 14;
      case 26: return 12;
      case 27: return 10;
      case 28: return  9;
      case 29: return  8;
      case 30: return  7;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_ROD:	/* Rods */
      switch (level) {
      case  0: return 90;
      case  1: return 70;
      case  2: return 69;
      case  3: return 68;
      case  4: return 66;
      case  5: return 65;
      case  6: return 63;
      case  7: return 60;
      case  8: return 57;
      case  9: return 55;
      case 10: return 54;
      case 11: return 53;
      case 12: return 51;
      case 13: return 50;
      case 14: return 49;
      case 15: return 47;
      case 16: return 46;
      case 17: return 45;
      case 18: return 44;
      case 19: return 43;
      case 20: return 42;
      case 21: return 41;
      case 22: return 40;
      case 23: return 38;
      case 24: return 35;
      case 25: return 34;
      case 26: return 32;
      case 27: return 30;
      case 28: return 29;
      case 29: return 28;
      case 30: return 27;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_PETRI:	/* Petrification */
      switch (level) {
      case  0: return 90;
      case  1: return 65;
      case  2: return 64;
      case  3: return 63;
      case  4: return 61;
      case  5: return 60;
      case  6: return 58;
      case  7: return 55;
      case  8: return 53;
      case  9: return 50;
      case 10: return 49;
      case 11: return 48;
      case 12: return 46;
      case 13: return 45;
      case 14: return 44;
      case 15: return 43;
      case 16: return 41;
      case 17: return 40;
      case 18: return 39;
      case 19: return 38;
      case 20: return 37;
      case 21: return 36;
      case 22: return 35;
      case 23: return 33;
      case 24: return 31;
      case 25: return 29;
      case 26: return 27;
      case 27: return 25;
      case 28: return 24;
      case 29: return 23;
      case 30: return 22;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_BREATH:	/* Breath weapons */
      switch (level) {
      case  0: return 90;
      case  1: return 80;
      case  2: return 79;
      case  3: return 78;
      case  4: return 76;
      case  5: return 75;
      case  6: return 73;
      case  7: return 70;
      case  8: return 67;
      case  9: return 65;
      case 10: return 64;
      case 11: return 63;
      case 12: return 61;
      case 13: return 60;
      case 14: return 59;
      case 15: return 57;
      case 16: return 56;
      case 17: return 55;
      case 18: return 54;
      case 19: return 53;
      case 20: return 52;
      case 21: return 51;
      case 22: return 50;
      case 23: return 48;
      case 24: return 45;
      case 25: return 44;
      case 26: return 42;
      case 27: return 40;
      case 28: return 39;
      case 29: return 38;
      case 30: return 37;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_SPELL:	/* Generic spells */
      switch (level) {
      case  0: return 90;
      case  1: return 75;
      case  2: return 74;
      case  3: return 73;
      case  4: return 71;
      case  5: return 70;
      case  6: return 68;
      case  7: return 65;
      case  8: return 63;
      case  9: return 60;
      case 10: return 59;
      case 11: return 58;
      case 12: return 56;
      case 13: return 55;
      case 14: return 54;
      case 15: return 53;
      case 16: return 51;
      case 17: return 50;
      case 18: return 49;
      case 19: return 48;
      case 20: return 47;
      case 21: return 46;
      case 22: return 45;
      case 23: return 43;
      case 24: return 41;
      case 25: return 39;
      case 26: return 37;
      case 27: return 35;
      case 28: return 34;
      case 29: return 33;
      case 30: return 32;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    default:
     break;
    }
    break;
    
    case CLASS_TRUFFLE:
    switch (type) {
    case SAVING_PARA:	/* Paralyzation */
      switch (level) {
      case  0: return 90;
      case  1: return 60;
      case  2: return 59;
      case  3: return 48;
      case  4: return 46;
      case  5: return 45;
      case  6: return 43;
      case  7: return 40;
      case  8: return 37;
      case  9: return 35;
      case 10: return 34;
      case 11: return 33;
      case 12: return 31;
      case 13: return 30;
      case 14: return 29;
      case 15: return 27;
      case 16: return 26;
      case 17: return 25;
      case 18: return 24;
      case 19: return 23;
      case 20: return 22;
      case 21: return 21;
      case 22: return 20;
      case 23: return 18;
      case 24: return 15;
      case 25: return 14;
      case 26: return 12;
      case 27: return 10;
      case 28: return  9;
      case 29: return  8;
      case 30: return  7;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_ROD:	/* Rods */
      switch (level) {
      case  0: return 90;
      case  1: return 70;
      case  2: return 69;
      case  3: return 68;
      case  4: return 66;
      case  5: return 65;
      case  6: return 63;
      case  7: return 60;
      case  8: return 57;
      case  9: return 55;
      case 10: return 54;
      case 11: return 53;
      case 12: return 51;
      case 13: return 50;
      case 14: return 49;
      case 15: return 47;
      case 16: return 46;
      case 17: return 45;
      case 18: return 44;
      case 19: return 43;
      case 20: return 42;
      case 21: return 41;
      case 22: return 40;
      case 23: return 38;
      case 24: return 35;
      case 25: return 34;
      case 26: return 32;
      case 27: return 30;
      case 28: return 29;
      case 29: return 28;
      case 30: return 27;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_PETRI:	/* Petrification */
      switch (level) {
      case  0: return 90;
      case  1: return 65;
      case  2: return 64;
      case  3: return 63;
      case  4: return 61;
      case  5: return 60;
      case  6: return 58;
      case  7: return 55;
      case  8: return 53;
      case  9: return 50;
      case 10: return 49;
      case 11: return 48;
      case 12: return 46;
      case 13: return 45;
      case 14: return 44;
      case 15: return 43;
      case 16: return 41;
      case 17: return 40;
      case 18: return 39;
      case 19: return 38;
      case 20: return 37;
      case 21: return 36;
      case 22: return 35;
      case 23: return 33;
      case 24: return 31;
      case 25: return 29;
      case 26: return 27;
      case 27: return 25;
      case 28: return 24;
      case 29: return 23;
      case 30: return 22;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_BREATH:	/* Breath weapons */
      switch (level) {
      case  0: return 90;
      case  1: return 80;
      case  2: return 79;
      case  3: return 78;
      case  4: return 76;
      case  5: return 75;
      case  6: return 73;
      case  7: return 70;
      case  8: return 67;
      case  9: return 65;
      case 10: return 64;
      case 11: return 63;
      case 12: return 61;
      case 13: return 60;
      case 14: return 59;
      case 15: return 57;
      case 16: return 56;
      case 17: return 55;
      case 18: return 54;
      case 19: return 53;
      case 20: return 52;
      case 21: return 51;
      case 22: return 50;
      case 23: return 48;
      case 24: return 45;
      case 25: return 44;
      case 26: return 42;
      case 27: return 40;
      case 28: return 39;
      case 29: return 38;
      case 30: return 37;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_SPELL:	/* Generic spells */
      switch (level) {
      case  0: return 90;
      case  1: return 75;
      case  2: return 74;
      case  3: return 73;
      case  4: return 71;
      case  5: return 70;
      case  6: return 68;
      case  7: return 65;
      case  8: return 63;
      case  9: return 60;
      case 10: return 59;
      case 11: return 58;
      case 12: return 56;
      case 13: return 55;
      case 14: return 54;
      case 15: return 53;
      case 16: return 51;
      case 17: return 50;
      case 18: return 49;
      case 19: return 48;
      case 20: return 47;
      case 21: return 46;
      case 22: return 45;
      case 23: return 43;
      case 24: return 41;
      case 25: return 39;
      case 26: return 37;
      case 27: return 35;
      case 28: return 34;
      case 29: return 33;
      case 30: return 32;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    default:
     break;
    }
    break;
    
    case CLASS_MUTANT:
    switch (type) {
    case SAVING_PARA:	/* Paralyzation */
      switch (level) {
      case  0: return 90;
      case  1: return 60;
      case  2: return 59;
      case  3: return 48;
      case  4: return 46;
      case  5: return 45;
      case  6: return 43;
      case  7: return 40;
      case  8: return 37;
      case  9: return 35;
      case 10: return 34;
      case 11: return 33;
      case 12: return 31;
      case 13: return 30;
      case 14: return 29;
      case 15: return 27;
      case 16: return 26;
      case 17: return 25;
      case 18: return 24;
      case 19: return 23;
      case 20: return 22;
      case 21: return 21;
      case 22: return 20;
      case 23: return 18;
      case 24: return 15;
      case 25: return 14;
      case 26: return 12;
      case 27: return 10;
      case 28: return  9;
      case 29: return  8;
      case 30: return  7;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_ROD:	/* Rods */
      switch (level) {
      case  0: return 90;
      case  1: return 70;
      case  2: return 69;
      case  3: return 68;
      case  4: return 66;
      case  5: return 65;
      case  6: return 63;
      case  7: return 60;
      case  8: return 57;
      case  9: return 55;
      case 10: return 54;
      case 11: return 53;
      case 12: return 51;
      case 13: return 50;
      case 14: return 49;
      case 15: return 47;
      case 16: return 46;
      case 17: return 45;
      case 18: return 44;
      case 19: return 43;
      case 20: return 42;
      case 21: return 41;
      case 22: return 40;
      case 23: return 38;
      case 24: return 35;
      case 25: return 34;
      case 26: return 32;
      case 27: return 30;
      case 28: return 29;
      case 29: return 28;
      case 30: return 27;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_PETRI:	/* Petrification */
      switch (level) {
      case  0: return 90;
      case  1: return 65;
      case  2: return 64;
      case  3: return 63;
      case  4: return 61;
      case  5: return 60;
      case  6: return 58;
      case  7: return 55;
      case  8: return 53;
      case  9: return 50;
      case 10: return 49;
      case 11: return 48;
      case 12: return 46;
      case 13: return 45;
      case 14: return 44;
      case 15: return 43;
      case 16: return 41;
      case 17: return 40;
      case 18: return 39;
      case 19: return 38;
      case 20: return 37;
      case 21: return 36;
      case 22: return 35;
      case 23: return 33;
      case 24: return 31;
      case 25: return 29;
      case 26: return 27;
      case 27: return 25;
      case 28: return 24;
      case 29: return 23;
      case 30: return 22;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_BREATH:	/* Breath weapons */
      switch (level) {
      case  0: return 90;
      case  1: return 80;
      case  2: return 79;
      case  3: return 78;
      case  4: return 76;
      case  5: return 75;
      case  6: return 73;
      case  7: return 70;
      case  8: return 67;
      case  9: return 65;
      case 10: return 64;
      case 11: return 63;
      case 12: return 61;
      case 13: return 60;
      case 14: return 59;
      case 15: return 57;
      case 16: return 56;
      case 17: return 55;
      case 18: return 54;
      case 19: return 53;
      case 20: return 52;
      case 21: return 51;
      case 22: return 50;
      case 23: return 48;
      case 24: return 45;
      case 25: return 44;
      case 26: return 42;
      case 27: return 40;
      case 28: return 39;
      case 29: return 38;
      case 30: return 37;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_SPELL:	/* Generic spells */
      switch (level) {
      case  0: return 90;
      case  1: return 75;
      case  2: return 74;
      case  3: return 73;
      case  4: return 71;
      case  5: return 70;
      case  6: return 68;
      case  7: return 65;
      case  8: return 63;
      case  9: return 60;
      case 10: return 59;
      case 11: return 58;
      case 12: return 56;
      case 13: return 55;
      case 14: return 54;
      case 15: return 53;
      case 16: return 51;
      case 17: return 50;
      case 18: return 49;
      case 19: return 48;
      case 20: return 47;
      case 21: return 46;
      case 22: return 45;
      case 23: return 43;
      case 24: return 41;
      case 25: return 39;
      case 26: return 37;
      case 27: return 35;
      case 28: return 34;
      case 29: return 33;
      case 30: return 32;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    default:
     break;
    }
    break;
    
    case CLASS_KANASSAN:
    switch (type) {
    case SAVING_PARA:	/* Paralyzation */
      switch (level) {
      case  0: return 90;
      case  1: return 60;
      case  2: return 59;
      case  3: return 48;
      case  4: return 46;
      case  5: return 45;
      case  6: return 43;
      case  7: return 40;
      case  8: return 37;
      case  9: return 35;
      case 10: return 34;
      case 11: return 33;
      case 12: return 31;
      case 13: return 30;
      case 14: return 29;
      case 15: return 27;
      case 16: return 26;
      case 17: return 25;
      case 18: return 24;
      case 19: return 23;
      case 20: return 22;
      case 21: return 21;
      case 22: return 20;
      case 23: return 18;
      case 24: return 15;
      case 25: return 14;
      case 26: return 12;
      case 27: return 10;
      case 28: return  9;
      case 29: return  8;
      case 30: return  7;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_ROD:	/* Rods */
      switch (level) {
      case  0: return 90;
      case  1: return 70;
      case  2: return 69;
      case  3: return 68;
      case  4: return 66;
      case  5: return 65;
      case  6: return 63;
      case  7: return 60;
      case  8: return 57;
      case  9: return 55;
      case 10: return 54;
      case 11: return 53;
      case 12: return 51;
      case 13: return 50;
      case 14: return 49;
      case 15: return 47;
      case 16: return 46;
      case 17: return 45;
      case 18: return 44;
      case 19: return 43;
      case 20: return 42;
      case 21: return 41;
      case 22: return 40;
      case 23: return 38;
      case 24: return 35;
      case 25: return 34;
      case 26: return 32;
      case 27: return 30;
      case 28: return 29;
      case 29: return 28;
      case 30: return 27;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_PETRI:	/* Petrification */
      switch (level) {
      case  0: return 90;
      case  1: return 65;
      case  2: return 64;
      case  3: return 63;
      case  4: return 61;
      case  5: return 60;
      case  6: return 58;
      case  7: return 55;
      case  8: return 53;
      case  9: return 50;
      case 10: return 49;
      case 11: return 48;
      case 12: return 46;
      case 13: return 45;
      case 14: return 44;
      case 15: return 43;
      case 16: return 41;
      case 17: return 40;
      case 18: return 39;
      case 19: return 38;
      case 20: return 37;
      case 21: return 36;
      case 22: return 35;
      case 23: return 33;
      case 24: return 31;
      case 25: return 29;
      case 26: return 27;
      case 27: return 25;
      case 28: return 24;
      case 29: return 23;
      case 30: return 22;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_BREATH:	/* Breath weapons */
      switch (level) {
      case  0: return 90;
      case  1: return 80;
      case  2: return 79;
      case  3: return 78;
      case  4: return 76;
      case  5: return 75;
      case  6: return 73;
      case  7: return 70;
      case  8: return 67;
      case  9: return 65;
      case 10: return 64;
      case 11: return 63;
      case 12: return 61;
      case 13: return 60;
      case 14: return 59;
      case 15: return 57;
      case 16: return 56;
      case 17: return 55;
      case 18: return 54;
      case 19: return 53;
      case 20: return 52;
      case 21: return 51;
      case 22: return 50;
      case 23: return 48;
      case 24: return 45;
      case 25: return 44;
      case 26: return 42;
      case 27: return 40;
      case 28: return 39;
      case 29: return 38;
      case 30: return 37;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_SPELL:	/* Generic spells */
      switch (level) {
      case  0: return 90;
      case  1: return 75;
      case  2: return 74;
      case  3: return 73;
      case  4: return 71;
      case  5: return 70;
      case  6: return 68;
      case  7: return 65;
      case  8: return 63;
      case  9: return 60;
      case 10: return 59;
      case 11: return 58;
      case 12: return 56;
      case 13: return 55;
      case 14: return 54;
      case 15: return 53;
      case 16: return 51;
      case 17: return 50;
      case 18: return 49;
      case 19: return 48;
      case 20: return 47;
      case 21: return 46;
      case 22: return 45;
      case 23: return 43;
      case 24: return 41;
      case 25: return 39;
      case 26: return 37;
      case 27: return 35;
      case 28: return 34;
      case 29: return 33;
      case 30: return 32;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    default:
     break;
    }
    break;
    
    case CLASS_HALF_BREED:
    switch (type) {
    case SAVING_PARA:	/* Paralyzation */
      switch (level) {
      case  0: return 90;
      case  1: return 60;
      case  2: return 59;
      case  3: return 48;
      case  4: return 46;
      case  5: return 45;
      case  6: return 43;
      case  7: return 40;
      case  8: return 37;
      case  9: return 35;
      case 10: return 34;
      case 11: return 33;
      case 12: return 31;
      case 13: return 30;
      case 14: return 29;
      case 15: return 27;
      case 16: return 26;
      case 17: return 25;
      case 18: return 24;
      case 19: return 23;
      case 20: return 22;
      case 21: return 21;
      case 22: return 20;
      case 23: return 18;
      case 24: return 15;
      case 25: return 14;
      case 26: return 12;
      case 27: return 10;
      case 28: return  9;
      case 29: return  8;
      case 30: return  7;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_ROD:	/* Rods */
      switch (level) {
      case  0: return 90;
      case  1: return 70;
      case  2: return 69;
      case  3: return 68;
      case  4: return 66;
      case  5: return 65;
      case  6: return 63;
      case  7: return 60;
      case  8: return 57;
      case  9: return 55;
      case 10: return 54;
      case 11: return 53;
      case 12: return 51;
      case 13: return 50;
      case 14: return 49;
      case 15: return 47;
      case 16: return 46;
      case 17: return 45;
      case 18: return 44;
      case 19: return 43;
      case 20: return 42;
      case 21: return 41;
      case 22: return 40;
      case 23: return 38;
      case 24: return 35;
      case 25: return 34;
      case 26: return 32;
      case 27: return 30;
      case 28: return 29;
      case 29: return 28;
      case 30: return 27;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_PETRI:	/* Petrification */
      switch (level) {
      case  0: return 90;
      case  1: return 65;
      case  2: return 64;
      case  3: return 63;
      case  4: return 61;
      case  5: return 60;
      case  6: return 58;
      case  7: return 55;
      case  8: return 53;
      case  9: return 50;
      case 10: return 49;
      case 11: return 48;
      case 12: return 46;
      case 13: return 45;
      case 14: return 44;
      case 15: return 43;
      case 16: return 41;
      case 17: return 40;
      case 18: return 39;
      case 19: return 38;
      case 20: return 37;
      case 21: return 36;
      case 22: return 35;
      case 23: return 33;
      case 24: return 31;
      case 25: return 29;
      case 26: return 27;
      case 27: return 25;
      case 28: return 24;
      case 29: return 23;
      case 30: return 22;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_BREATH:	/* Breath weapons */
      switch (level) {
      case  0: return 90;
      case  1: return 80;
      case  2: return 79;
      case  3: return 78;
      case  4: return 76;
      case  5: return 75;
      case  6: return 73;
      case  7: return 70;
      case  8: return 67;
      case  9: return 65;
      case 10: return 64;
      case 11: return 63;
      case 12: return 61;
      case 13: return 60;
      case 14: return 59;
      case 15: return 57;
      case 16: return 56;
      case 17: return 55;
      case 18: return 54;
      case 19: return 53;
      case 20: return 52;
      case 21: return 51;
      case 22: return 50;
      case 23: return 48;
      case 24: return 45;
      case 25: return 44;
      case 26: return 42;
      case 27: return 40;
      case 28: return 39;
      case 29: return 38;
      case 30: return 37;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_SPELL:	/* Generic spells */
      switch (level) {
      case  0: return 90;
      case  1: return 75;
      case  2: return 74;
      case  3: return 73;
      case  4: return 71;
      case  5: return 70;
      case  6: return 68;
      case  7: return 65;
      case  8: return 63;
      case  9: return 60;
      case 10: return 59;
      case 11: return 58;
      case 12: return 56;
      case 13: return 55;
      case 14: return 54;
      case 15: return 53;
      case 16: return 51;
      case 17: return 50;
      case 18: return 49;
      case 19: return 48;
      case 20: return 47;
      case 21: return 46;
      case 22: return 45;
      case 23: return 43;
      case 24: return 41;
      case 25: return 39;
      case 26: return 37;
      case 27: return 35;
      case 28: return 34;
      case 29: return 33;
      case 30: return 32;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    default:
     break;
    }
    break;
    
    case CLASS_KAI:
    switch (type) {
    case SAVING_PARA:	/* Paralyzation */
      switch (level) {
      case  0: return 90;
      case  1: return 60;
      case  2: return 59;
      case  3: return 48;
      case  4: return 46;
      case  5: return 45;
      case  6: return 43;
      case  7: return 40;
      case  8: return 37;
      case  9: return 35;
      case 10: return 34;
      case 11: return 33;
      case 12: return 31;
      case 13: return 30;
      case 14: return 29;
      case 15: return 27;
      case 16: return 26;
      case 17: return 25;
      case 18: return 24;
      case 19: return 23;
      case 20: return 22;
      case 21: return 21;
      case 22: return 20;
      case 23: return 18;
      case 24: return 15;
      case 25: return 14;
      case 26: return 12;
      case 27: return 10;
      case 28: return  9;
      case 29: return  8;
      case 30: return  7;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_ROD:	/* Rods */
      switch (level) {
      case  0: return 90;
      case  1: return 70;
      case  2: return 69;
      case  3: return 68;
      case  4: return 66;
      case  5: return 65;
      case  6: return 63;
      case  7: return 60;
      case  8: return 57;
      case  9: return 55;
      case 10: return 54;
      case 11: return 53;
      case 12: return 51;
      case 13: return 50;
      case 14: return 49;
      case 15: return 47;
      case 16: return 46;
      case 17: return 45;
      case 18: return 44;
      case 19: return 43;
      case 20: return 42;
      case 21: return 41;
      case 22: return 40;
      case 23: return 38;
      case 24: return 35;
      case 25: return 34;
      case 26: return 32;
      case 27: return 30;
      case 28: return 29;
      case 29: return 28;
      case 30: return 27;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_PETRI:	/* Petrification */
      switch (level) {
      case  0: return 90;
      case  1: return 65;
      case  2: return 64;
      case  3: return 63;
      case  4: return 61;
      case  5: return 60;
      case  6: return 58;
      case  7: return 55;
      case  8: return 53;
      case  9: return 50;
      case 10: return 49;
      case 11: return 48;
      case 12: return 46;
      case 13: return 45;
      case 14: return 44;
      case 15: return 43;
      case 16: return 41;
      case 17: return 40;
      case 18: return 39;
      case 19: return 38;
      case 20: return 37;
      case 21: return 36;
      case 22: return 35;
      case 23: return 33;
      case 24: return 31;
      case 25: return 29;
      case 26: return 27;
      case 27: return 25;
      case 28: return 24;
      case 29: return 23;
      case 30: return 22;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_BREATH:	/* Breath weapons */
      switch (level) {
      case  0: return 90;
      case  1: return 80;
      case  2: return 79;
      case  3: return 78;
      case  4: return 76;
      case  5: return 75;
      case  6: return 73;
      case  7: return 70;
      case  8: return 67;
      case  9: return 65;
      case 10: return 64;
      case 11: return 63;
      case 12: return 61;
      case 13: return 60;
      case 14: return 59;
      case 15: return 57;
      case 16: return 56;
      case 17: return 55;
      case 18: return 54;
      case 19: return 53;
      case 20: return 52;
      case 21: return 51;
      case 22: return 50;
      case 23: return 48;
      case 24: return 45;
      case 25: return 44;
      case 26: return 42;
      case 27: return 40;
      case 28: return 39;
      case 29: return 38;
      case 30: return 37;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_SPELL:	/* Generic spells */
      switch (level) {
      case  0: return 90;
      case  1: return 75;
      case  2: return 74;
      case  3: return 73;
      case  4: return 71;
      case  5: return 70;
      case  6: return 68;
      case  7: return 65;
      case  8: return 63;
      case  9: return 60;
      case 10: return 59;
      case 11: return 58;
      case 12: return 56;
      case 13: return 55;
      case 14: return 54;
      case 15: return 53;
      case 16: return 51;
      case 17: return 50;
      case 18: return 49;
      case 19: return 48;
      case 20: return 47;
      case 21: return 46;
      case 22: return 45;
      case 23: return 43;
      case 24: return 41;
      case 25: return 39;
      case 26: return 37;
      case 27: return 35;
      case 28: return 34;
      case 29: return 33;
      case 30: return 32;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    default:
     break;
    }
    break;
    
      case CLASS_icer:
    switch (type) {
    case SAVING_PARA:	/* Paralyzation */
      switch (level) {
      case  0: return 90;
      case  1: return 65;
      case  2: return 64;
      case  3: return 63;
      case  4: return 62;
      case  5: return 61;
      case  6: return 60;
      case  7: return 59;
      case  8: return 58;
      case  9: return 57;
      case 10: return 56;
      case 11: return 55;
      case 12: return 54;
      case 13: return 53;
      case 14: return 52;
      case 15: return 51;
      case 16: return 50;
      case 17: return 49;
      case 18: return 48;
      case 19: return 47;
      case 20: return 46;
      case 21: return 45;
      case 22: return 44;
      case 23: return 43;
      case 24: return 42;
      case 25: return 41;
      case 26: return 40;
      case 27: return 39;
      case 28: return 38;
      case 29: return 37;
      case 30: return 36;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_ROD:	/* Rods */
      switch (level) {
      case  0: return 90;
      case  1: return 70;
      case  2: return 68;
      case  3: return 66;
      case  4: return 64;
      case  5: return 62;
      case  6: return 60;
      case  7: return 58;
      case  8: return 56;
      case  9: return 54;
      case 10: return 52;
      case 11: return 50;
      case 12: return 48;
      case 13: return 46;
      case 14: return 44;
      case 15: return 42;
      case 16: return 40;
      case 17: return 38;
      case 18: return 36;
      case 19: return 34;
      case 20: return 32;
      case 21: return 30;
      case 22: return 28;
      case 23: return 26;
      case 24: return 24;
      case 25: return 22;
      case 26: return 20;
      case 27: return 18;
      case 28: return 16;
      case 29: return 14;
      case 30: return 13;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_PETRI:	/* Petrification */
      switch (level) {
      case  0: return 90;
      case  1: return 60;
      case  2: return 59;
      case  3: return 58;
      case  4: return 58;
      case  5: return 56;
      case  6: return 55;
      case  7: return 54;
      case  8: return 53;
      case  9: return 52;
      case 10: return 51;
      case 11: return 50;
      case 12: return 49;
      case 13: return 48;
      case 14: return 47;
      case 15: return 46;
      case 16: return 45;
      case 17: return 44;
      case 18: return 43;
      case 19: return 42;
      case 20: return 41;
      case 21: return 40;
      case 22: return 39;
      case 23: return 38;
      case 24: return 37;
      case 25: return 36;
      case 26: return 35;
      case 27: return 34;
      case 28: return 33;
      case 29: return 32;
      case 30: return 31;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_BREATH:	/* Breath weapons */
      switch (level) {
      case  0: return 90;
      case  1: return 80;
      case  2: return 79;
      case  3: return 78;
      case  4: return 77;
      case  5: return 76;
      case  6: return 75;
      case  7: return 74;
      case  8: return 73;
      case  9: return 72;
      case 10: return 71;
      case 11: return 70;
      case 12: return 69;
      case 13: return 68;
      case 14: return 67;
      case 15: return 66;
      case 16: return 65;
      case 17: return 64;
      case 18: return 63;
      case 19: return 62;
      case 20: return 61;
      case 21: return 60;
      case 22: return 59;
      case 23: return 58;
      case 24: return 57;
      case 25: return 56;
      case 26: return 55;
      case 27: return 54;
      case 28: return 53;
      case 29: return 52;
      case 30: return 51;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_SPELL:	/* Generic spells */
      switch (level) {
      case  0: return 90;
      case  1: return 75;
      case  2: return 73;
      case  3: return 71;
      case  4: return 69;
      case  5: return 67;
      case  6: return 65;
      case  7: return 63;
      case  8: return 61;
      case  9: return 59;
      case 10: return 57;
      case 11: return 55;
      case 12: return 53;
      case 13: return 51;
      case 14: return 49;
      case 15: return 47;
      case 16: return 45;
      case 17: return 43;
      case 18: return 41;
      case 19: return 39;
      case 20: return 37;
      case 21: return 35;
      case 22: return 33;
      case 23: return 31;
      case 24: return 29;
      case 25: return 27;
      case 26: return 25;
      case 27: return 23;
      case 28: return 21;
      case 29: return 19;
      case 30: return 17;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    default:
     break;
    }
    break;
    
      case CLASS_ANDROID:
    switch (type) {
    case SAVING_PARA:	/* Paralyzation */
      switch (level) {
      case  0: return 90;
      case  1: return 65;
      case  2: return 64;
      case  3: return 63;
      case  4: return 62;
      case  5: return 61;
      case  6: return 60;
      case  7: return 59;
      case  8: return 58;
      case  9: return 57;
      case 10: return 56;
      case 11: return 55;
      case 12: return 54;
      case 13: return 53;
      case 14: return 52;
      case 15: return 51;
      case 16: return 50;
      case 17: return 49;
      case 18: return 48;
      case 19: return 47;
      case 20: return 46;
      case 21: return 45;
      case 22: return 44;
      case 23: return 43;
      case 24: return 42;
      case 25: return 41;
      case 26: return 40;
      case 27: return 39;
      case 28: return 38;
      case 29: return 37;
      case 30: return 36;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_ROD:	/* Rods */
      switch (level) {
      case  0: return 90;
      case  1: return 70;
      case  2: return 68;
      case  3: return 66;
      case  4: return 64;
      case  5: return 62;
      case  6: return 60;
      case  7: return 58;
      case  8: return 56;
      case  9: return 54;
      case 10: return 52;
      case 11: return 50;
      case 12: return 48;
      case 13: return 46;
      case 14: return 44;
      case 15: return 42;
      case 16: return 40;
      case 17: return 38;
      case 18: return 36;
      case 19: return 34;
      case 20: return 32;
      case 21: return 30;
      case 22: return 28;
      case 23: return 26;
      case 24: return 24;
      case 25: return 22;
      case 26: return 20;
      case 27: return 18;
      case 28: return 16;
      case 29: return 14;
      case 30: return 13;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_PETRI:	/* Petrification */
      switch (level) {
      case  0: return 90;
      case  1: return 60;
      case  2: return 59;
      case  3: return 58;
      case  4: return 58;
      case  5: return 56;
      case  6: return 55;
      case  7: return 54;
      case  8: return 53;
      case  9: return 52;
      case 10: return 51;
      case 11: return 50;
      case 12: return 49;
      case 13: return 48;
      case 14: return 47;
      case 15: return 46;
      case 16: return 45;
      case 17: return 44;
      case 18: return 43;
      case 19: return 42;
      case 20: return 41;
      case 21: return 40;
      case 22: return 39;
      case 23: return 38;
      case 24: return 37;
      case 25: return 36;
      case 26: return 35;
      case 27: return 34;
      case 28: return 33;
      case 29: return 32;
      case 30: return 31;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_BREATH:	/* Breath weapons */
      switch (level) {
      case  0: return 90;
      case  1: return 80;
      case  2: return 79;
      case  3: return 78;
      case  4: return 77;
      case  5: return 76;
      case  6: return 75;
      case  7: return 74;
      case  8: return 73;
      case  9: return 72;
      case 10: return 71;
      case 11: return 70;
      case 12: return 69;
      case 13: return 68;
      case 14: return 67;
      case 15: return 66;
      case 16: return 65;
      case 17: return 64;
      case 18: return 63;
      case 19: return 62;
      case 20: return 61;
      case 21: return 60;
      case 22: return 59;
      case 23: return 58;
      case 24: return 57;
      case 25: return 56;
      case 26: return 55;
      case 27: return 54;
      case 28: return 53;
      case 29: return 52;
      case 30: return 51;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_SPELL:	/* Generic spells */
      switch (level) {
      case  0: return 90;
      case  1: return 75;
      case  2: return 73;
      case  3: return 71;
      case  4: return 69;
      case  5: return 67;
      case  6: return 65;
      case  7: return 63;
      case  8: return 61;
      case  9: return 59;
      case 10: return 57;
      case 11: return 55;
      case 12: return 53;
      case 13: return 51;
      case 14: return 49;
      case 15: return 47;
      case 16: return 45;
      case 17: return 43;
      case 18: return 41;
      case 19: return 39;
      case 20: return 37;
      case 21: return 35;
      case 22: return 33;
      case 23: return 31;
      case 24: return 29;
      case 25: return 27;
      case 26: return 25;
      case 27: return 23;
      case 28: return 21;
      case 29: return 19;
      case 30: return 17;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    default:
     break;
    }
    break;
    
  case CLASS_MAJIN:
    switch (type) {
    case SAVING_PARA:	/* Paralyzation */
      switch (level) {
      case  0: return 90;
      case  1: return 65;
      case  2: return 64;
      case  3: return 63;
      case  4: return 62;
      case  5: return 61;
      case  6: return 60;
      case  7: return 59;
      case  8: return 58;
      case  9: return 57;
      case 10: return 56;
      case 11: return 55;
      case 12: return 54;
      case 13: return 53;
      case 14: return 52;
      case 15: return 51;
      case 16: return 50;
      case 17: return 49;
      case 18: return 48;
      case 19: return 47;
      case 20: return 46;
      case 21: return 45;
      case 22: return 44;
      case 23: return 43;
      case 24: return 42;
      case 25: return 41;
      case 26: return 40;
      case 27: return 39;
      case 28: return 38;
      case 29: return 37;
      case 30: return 36;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_ROD:	/* Rods */
      switch (level) {
      case  0: return 90;
      case  1: return 70;
      case  2: return 68;
      case  3: return 66;
      case  4: return 64;
      case  5: return 62;
      case  6: return 60;
      case  7: return 58;
      case  8: return 56;
      case  9: return 54;
      case 10: return 52;
      case 11: return 50;
      case 12: return 48;
      case 13: return 46;
      case 14: return 44;
      case 15: return 42;
      case 16: return 40;
      case 17: return 38;
      case 18: return 36;
      case 19: return 34;
      case 20: return 32;
      case 21: return 30;
      case 22: return 28;
      case 23: return 26;
      case 24: return 24;
      case 25: return 22;
      case 26: return 20;
      case 27: return 18;
      case 28: return 16;
      case 29: return 14;
      case 30: return 13;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_PETRI:	/* Petrification */
      switch (level) {
      case  0: return 90;
      case  1: return 60;
      case  2: return 59;
      case  3: return 58;
      case  4: return 58;
      case  5: return 56;
      case  6: return 55;
      case  7: return 54;
      case  8: return 53;
      case  9: return 52;
      case 10: return 51;
      case 11: return 50;
      case 12: return 49;
      case 13: return 48;
      case 14: return 47;
      case 15: return 46;
      case 16: return 45;
      case 17: return 44;
      case 18: return 43;
      case 19: return 42;
      case 20: return 41;
      case 21: return 40;
      case 22: return 39;
      case 23: return 38;
      case 24: return 37;
      case 25: return 36;
      case 26: return 35;
      case 27: return 34;
      case 28: return 33;
      case 29: return 32;
      case 30: return 31;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_BREATH:	/* Breath weapons */
      switch (level) {
      case  0: return 90;
      case  1: return 80;
      case  2: return 79;
      case  3: return 78;
      case  4: return 77;
      case  5: return 76;
      case  6: return 75;
      case  7: return 74;
      case  8: return 73;
      case  9: return 72;
      case 10: return 71;
      case 11: return 70;
      case 12: return 69;
      case 13: return 68;
      case 14: return 67;
      case 15: return 66;
      case 16: return 65;
      case 17: return 64;
      case 18: return 63;
      case 19: return 62;
      case 20: return 61;
      case 21: return 60;
      case 22: return 59;
      case 23: return 58;
      case 24: return 57;
      case 25: return 56;
      case 26: return 55;
      case 27: return 54;
      case 28: return 53;
      case 29: return 52;
      case 30: return 51;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    case SAVING_SPELL:	/* Generic spells */
      switch (level) {
      case  0: return 90;
      case  1: return 75;
      case  2: return 73;
      case  3: return 71;
      case  4: return 69;
      case  5: return 67;
      case  6: return 65;
      case  7: return 63;
      case  8: return 61;
      case  9: return 59;
      case 10: return 57;
      case 11: return 55;
      case 12: return 53;
      case 13: return 51;
      case 14: return 49;
      case 15: return 47;
      case 16: return 45;
      case 17: return 43;
      case 18: return 41;
      case 19: return 39;
      case 20: return 37;
      case 21: return 35;
      case 22: return 33;
      case 23: return 31;
      case 24: return 29;
      case 25: return 27;
      case 26: return 25;
      case 27: return 23;
      case 28: return 21;
      case 29: return 19;
      case 30: return 17;
      case 31: return  0;
      case 32: return  0;
      case 33: return  0;
      case 34: return  0;
      case 35: return  0;
      case 36: return  0;
      case 37: return  0;
      case 38: return  0;
      case 39: return  0;
      case 40: return  0;
      default:
       break;
      }
    default:
     break;
    }
    break;
  case CLASS_saiyan:
    switch (type) {
    case SAVING_PARA:	/* Paralyzation */
      switch (level) {
      case  0: return 90;
      case  1: return 70;
      case  2: return 68;
      case  3: return 67;
      case  4: return 65;
      case  5: return 62;
      case  6: return 58;
      case  7: return 55;
      case  8: return 53;
      case  9: return 52;
      case 10: return 50;
      case 11: return 47;
      case 12: return 43;
      case 13: return 40;
      case 14: return 38;
      case 15: return 37;
      case 16: return 35;
      case 17: return 32;
      case 18: return 28;
      case 19: return 25;
      case 20: return 24;
      case 21: return 23;
      case 22: return 22;
      case 23: return 20;
      case 24: return 19;
      case 25: return 17;
      case 26: return 16;
      case 27: return 15;
      case 28: return 14;
      case 29: return 13;
      case 30: return 12;
      case 31: return 11;
      case 32: return 10;
      case 33: return  9;
      case 34: return  8;
      case 35: return  7;
      case 36: return  6;
      case 37: return  5;
      case 38: return  4;
      case 39: return  3;
      case 40: return  2;
      default:
       break;
      }
    case SAVING_ROD:	/* Rods */
      switch (level) {
      case  0: return 90;
      case  1: return 80;
      case  2: return 78;
      case  3: return 77;
      case  4: return 75;
      case  5: return 72;
      case  6: return 68;
      case  7: return 65;
      case  8: return 63;
      case  9: return 62;
      case 10: return 60;
      case 11: return 57;
      case 12: return 53;
      case 13: return 50;
      case 14: return 48;
      case 15: return 47;
      case 16: return 45;
      case 17: return 42;
      case 18: return 38;
      case 19: return 35;
      case 20: return 34;
      case 21: return 33;
      case 22: return 32;
      case 23: return 30;
      case 24: return 29;
      case 25: return 27;
      case 26: return 26;
      case 27: return 25;
      case 28: return 24;
      case 29: return 23;
      case 30: return 22;
      case 31: return 20;
      case 32: return 18;
      case 33: return 16;
      case 34: return 14;
      case 35: return 12;
      case 36: return 10;
      case 37: return  8;
      case 38: return  6;
      case 39: return  5;
      case 40: return  4;
      default:
       break;
      }
    case SAVING_PETRI:	/* Petrification */
      switch (level) {
      case  0: return 90;
      case  1: return 75;
      case  2: return 73;
      case  3: return 72;
      case  4: return 70;
      case  5: return 67;
      case  6: return 63;
      case  7: return 60;
      case  8: return 58;
      case  9: return 57;
      case 10: return 55;
      case 11: return 52;
      case 12: return 48;
      case 13: return 45;
      case 14: return 43;
      case 15: return 42;
      case 16: return 40;
      case 17: return 37;
      case 18: return 33;
      case 19: return 30;
      case 20: return 29;
      case 21: return 28;
      case 22: return 26;
      case 23: return 25;
      case 24: return 24;
      case 25: return 23;
      case 26: return 21;
      case 27: return 20;
      case 28: return 19;
      case 29: return 18;
      case 30: return 17;
      case 31: return 16;
      case 32: return 15;
      case 33: return 14;
      case 34: return 13;
      case 35: return 12;
      case 36: return 11;
      case 37: return 10;
      case 38: return  9;
      case 39: return  8;
      case 40: return  7;
      default:
       break;
      }
    case SAVING_BREATH:	/* Breath weapons */
      switch (level) {
      case  0: return 90;
      case  1: return 85;
      case  2: return 83;
      case  3: return 82;
      case  4: return 80;
      case  5: return 75;
      case  6: return 70;
      case  7: return 65;
      case  8: return 63;
      case  9: return 62;
      case 10: return 60;
      case 11: return 55;
      case 12: return 50;
      case 13: return 45;
      case 14: return 43;
      case 15: return 42;
      case 16: return 40;
      case 17: return 37;
      case 18: return 33;
      case 19: return 30;
      case 20: return 29;
      case 21: return 28;
      case 22: return 26;
      case 23: return 25;
      case 24: return 24;
      case 25: return 23;
      case 26: return 21;
      case 27: return 20;
      case 28: return 19;
      case 29: return 18;
      case 30: return 17;
      case 31: return 16;
      case 32: return 15;
      case 33: return 14;
      case 34: return 13;
      case 35: return 12;
      case 36: return 11;
      case 37: return 10;
      case 38: return  9;
      case 39: return  8;
      case 40: return  7;
      default:
       break;
      }
    case SAVING_SPELL:	/* Generic spells */
      switch (level) {
      case  0: return 90;
      case  1: return 85;
      case  2: return 83;
      case  3: return 82;
      case  4: return 80;
      case  5: return 77;
      case  6: return 73;
      case  7: return 70;
      case  8: return 68;
      case  9: return 67;
      case 10: return 65;
      case 11: return 62;
      case 12: return 58;
      case 13: return 55;
      case 14: return 53;
      case 15: return 52;
      case 16: return 50;
      case 17: return 47;
      case 18: return 43;
      case 19: return 40;
      case 20: return 39;
      case 21: return 38;
      case 22: return 36;
      case 23: return 35;
      case 24: return 34;
      case 25: return 33;
      case 26: return 31;
      case 27: return 30;
      case 28: return 29;
      case 29: return 28;
      case 30: return 27;
      case 31: return 25;
      case 32: return 23;
      case 33: return 21;
      case 34: return 19;
      case 35: return 17;
      case 36: return 15;
      case 37: return 13;
      case 38: return 11;
      case 39: return  9;
      case 40: return  7;
      default:
       break;
      }
    default:
     break;
    }
  default:
   break;
  }

  /* Should not get here unless something is wrong. */
  return 100;
}

int thaco(int class, int level) {
	if (level < 0 || level > 1000014) {
		log("SYSERR: Unknown class in thac0 chart.");
		return 100;
	} else {
		return 1;
	}
}
	    

/*
 * Roll the 6 stats for a character... each stat is made of the sum of
 * the best 3 out of 4 rolls of a 6-sided die.  Each class then decides
 * which priority will be given for the best to worst stats.
 */
void roll_real_abils(struct char_data * ch)
{
  int i, j, k, temp;
  ubyte table[6];
  ubyte rolls[4];

  for (i = 0; i < 6; i++)
    table[i] = 0;

  for (i = 0; i < 6; i++) {

    for (j = 0; j < 4; j++)
      rolls[j] = number(1, 6);

    temp = rolls[0] + rolls[1] + rolls[2] + rolls[3] -
      MIN(rolls[0], MIN(rolls[1], MIN(rolls[2], rolls[3])));

    for (k = 0; k < 6; k++)
      if (table[k] < temp) {
	temp ^= table[k];
	table[k] ^= temp;
	temp ^= table[k];
      }
  }
 
  ch->real_abils.str_add = 0;
  ch->player.god = 0;
  SET_BIT(PLR_FLAGS(ch), PLR_NOMAJIN);
  GET_ALIGNMENT(ch) = 0;
  switch (GET_CLASS(ch)) {
  case CLASS_Human:
    GET_MAX_HIT(ch) += number(200, 400);
    GET_MAX_MANA(ch) += number(150, 200);
    GET_MAX_MOVE(ch) = number(4, 4);
    GET_MOVE(ch) = 0;
    GET_MOVE(ch) = 0;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    ch->real_abils.str = number(15, 18);
    ch->real_abils.dex = number(10, 15);
    ch->real_abils.con = number(10, 15);
    ch->real_abils.intel = number(12, 16);
    ch->real_abils.wis = number(10, 16);
    ch->real_abils.cha = number(10, 15);
    break;
  case CLASS_Namek:
    GET_MAX_HIT(ch) += number(200, 400);
    GET_MAX_MANA(ch) += number(150, 200);
    GET_MAX_MOVE(ch) = number(4, 4);
    GET_MOVE(ch) = 0;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    GET_HOME(ch) += 1;
    ch->real_abils.str = number(15, 18);
    ch->real_abils.dex = number(10, 15);
    ch->real_abils.con = number(10, 15);
    ch->real_abils.intel = number(10, 15);
    ch->real_abils.wis = number(10, 14);
    ch->real_abils.cha = number(10, 15);
    break;
  case CLASS_icer:
    GET_MAX_HIT(ch) += number(250, 500);
    GET_MAX_MANA(ch) += number(100, 150);
    GET_MAX_MOVE(ch) = number(4, 4);
    GET_MOVE(ch) = 0;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    ch->real_abils.str = number(15, 18);
    ch->real_abils.dex = number(10, 14);
    ch->real_abils.con = number(10, 16);
    ch->real_abils.intel = number(10, 15);
    ch->real_abils.wis = number(10, 14);
    ch->real_abils.cha = number(10, 15);
    break;
  case CLASS_MAJIN:
    GET_MAX_HIT(ch) += number(200, 500);
    GET_MAX_MANA(ch) += number(120, 180);
    GET_MAX_MOVE(ch) = number(4, 4);
    GET_MOVE(ch) = 0;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    ch->real_abils.str = number(15, 18);
    ch->real_abils.dex = number(10, 14);
    ch->real_abils.con = number(11, 16);
    ch->real_abils.intel = number(10, 13);
    ch->real_abils.wis = number(10, 13);
    ch->real_abils.cha = number(10, 15);
    break;
  case CLASS_ANDROID:
    GET_MAX_HIT(ch) += number(200, 450);
    GET_MAX_MANA(ch) += number(150, 170);
    GET_MAX_MOVE(ch) = number(4, 4);
    GET_MOVE(ch) = 0;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    GET_HOME(ch) += 1;
    ch->real_abils.str = number(15, 18);
    ch->real_abils.dex = number(10, 14);
    ch->real_abils.con = number(10, 16);
    ch->real_abils.intel = number(10, 15);
    ch->real_abils.wis = number(10, 14);
    ch->real_abils.cha = number(4, 11);
    break;
  case CLASS_KANASSAN:
    GET_MAX_HIT(ch) += number(200, 350);
    GET_MAX_MANA(ch) += number(200, 250);
    GET_MAX_MOVE(ch) = number(4, 4);
    GET_MOVE(ch) = 0;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    ch->real_abils.str = number(15, 18);
    ch->real_abils.dex = number(10, 15);
    ch->real_abils.con = number(10, 12);
    ch->real_abils.intel = number(10, 16);
    ch->real_abils.wis = number(10, 16);
    ch->real_abils.cha = number(10, 15);
    break;
  case CLASS_KAI:
    GET_MAX_HIT(ch) += number(200, 350);
    GET_MAX_MANA(ch) += number(200, 250);
    GET_MAX_MOVE(ch) = number(4, 4);
     GET_MOVE(ch) = 0;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    GET_HOME(ch) += 1;
    ch->real_abils.str = number(15, 18);
    ch->real_abils.dex = number(10, 15);
    ch->real_abils.con = number(10, 14);
    ch->real_abils.intel = number(10, 16);
    ch->real_abils.wis = number(10, 16);
    ch->real_abils.cha = number(10, 15);
    break;
  case CLASS_HALF_BREED:
    GET_MAX_HIT(ch) += number(200, 500);
    GET_MAX_MANA(ch) += number(100, 200);
    GET_MAX_MOVE(ch) = number(4, 4);
    GET_MOVE(ch) = 0;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    ch->real_abils.str = number(15, 18);
    ch->real_abils.dex = number(10, 14);
    ch->real_abils.con = number(10, 16);
    ch->real_abils.intel = number(10, 16);
    ch->real_abils.wis = number(10, 16);
    ch->real_abils.cha = number(10, 15);
    break;
  case CLASS_BIODROID:
    GET_MAX_HIT(ch) += number(200, 400);
    GET_MAX_MANA(ch) += number(150, 200);
    GET_MAX_MOVE(ch) = number(4, 4);
    GET_MOVE(ch) = 0;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    ch->real_abils.str = number(15, 18);
    ch->real_abils.dex = number(10, 15);
    ch->real_abils.con = number(10, 16);
    ch->real_abils.intel = number(10, 14);
    ch->real_abils.wis = number(10, 14);
    ch->real_abils.cha = number(10, 15);
    break;
  case CLASS_KONATSU:
    GET_MAX_HIT(ch) += number(200, 300);
    GET_MAX_MANA(ch) += number(200, 250);
    GET_MAX_MOVE(ch) = number(4, 4);
    GET_MOVE(ch) = 0;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    ch->real_abils.str = number(15, 18);
    ch->real_abils.dex = number(13, 15);
    ch->real_abils.con = number(10, 13);
    ch->real_abils.intel = number(10, 14);
    ch->real_abils.wis = number(10, 15);
    ch->real_abils.cha = number(10, 15);
    break;
  case CLASS_CHANGELING:
    ch->real_abils.str = table[0];
    ch->real_abils.dex = table[1];
    ch->real_abils.con = table[2];
    ch->real_abils.intel = table[3];
    ch->real_abils.wis = table[4];
    ch->real_abils.cha = number(10, 15);
    break;
  case CLASS_demon:
    GET_MAX_HIT(ch) += number(300, 400);
    GET_MAX_MANA(ch) += number(150, 200);
    GET_MAX_MOVE(ch) = number(4, 4);
    GET_MOVE(ch) = 0;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    ch->real_abils.str = number(15, 18);
    ch->real_abils.dex = number(10, 14);
    ch->real_abils.con = number(10, 16);
    ch->real_abils.intel = number(10, 14);
    ch->real_abils.wis = number(10, 15);
    ch->real_abils.cha = number(10, 15);
    break;
  case CLASS_TRUFFLE:
    GET_MAX_HIT(ch) += number(250, 400);
    GET_MAX_MANA(ch) += number(125, 200);
    GET_MAX_MOVE(ch) = number(4, 4);
    GET_MOVE(ch) = 0;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    ch->real_abils.str = number(15, 18);
    ch->real_abils.dex = number(10, 14);
    ch->real_abils.con = number(10, 14);
    ch->real_abils.intel = number(11, 16);
    ch->real_abils.wis = number(11, 16);
    ch->real_abils.cha = number(10, 15);
    break;
  case CLASS_MUTANT:
    GET_MAX_HIT(ch) += number(200, 400);
    GET_MAX_MANA(ch) += number(150, 200);
    GET_MAX_MOVE(ch) = number(4, 4);
    GET_MOVE(ch) = 0;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    ch->real_abils.str = number(15, 18);
    ch->real_abils.dex = number(10, 16);
    ch->real_abils.con = number(10, 16);
    ch->real_abils.intel = number(10, 14);
    ch->real_abils.wis = number(10, 13);
    ch->real_abils.cha = number(10, 15);
    break;
  case CLASS_saiyan:
    GET_MAX_HIT(ch) += number(200, 400);
    GET_MAX_MANA(ch) += number(150, 200);
    GET_MAX_MOVE(ch) = number(4, 4);
    GET_MOVE(ch) = 0;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    ch->real_abils.str = number(15, 18);
    ch->real_abils.dex = number(10, 16);
    ch->real_abils.con = number(12, 16);
    ch->real_abils.intel = number(10, 13);
    ch->real_abils.wis = number(10, 14);
    ch->real_abils.cha = number(10, 15);
    break;
  }
  ch->real_abils.rage = 1;
  ch->real_abils.ubs = ch->real_abils.lbs = 50;
  ch->aff_abils = ch->real_abils;
}


/* Some initializations for characters, including initial skills */
void do_start(struct char_data * ch)
{
  GET_LEVEL(ch) = 1;
  GET_EXP(ch) = 1;

  set_title(ch, NULL);
  roll_real_abils(ch);
  ch->points.max_hit = 10;

  switch (GET_CLASS(ch)) {
  	
  case CLASS_Human:
    GET_MAX_HIT(ch) = 70;
    GET_MAX_MANA(ch) = 150;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    GET_INT(ch) = 0 + number(11, 15);
    GET_CON(ch) = 0 + number(10, 13);
    GET_WIS(ch) = 0 + number(10, 14);     
    GET_RAGE(ch) = 0 + number(1, 5);
    GET_DEX(ch) = 0 + number(1, 10);
    GET_STR(ch) = 0 + number(16, 18);
    break;
  case CLASS_Namek:
    GET_MAX_HIT(ch) = 80;
    GET_MAX_MANA(ch) = 100;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    GET_INT(ch) = 0 + number(10, 14);
    GET_CON(ch) = 0 + number(10, 13);
    GET_WIS(ch) = 0 + number(10, 15);
    GET_RAGE(ch) = 0 + number(1, 5);
    GET_DEX(ch) = 0 + number(1, 10); 
    GET_STR(ch) = 0 + number(16, 18);
    break;
  case CLASS_KANASSAN:
    GET_MAX_HIT(ch) = 100;
    GET_MAX_MANA(ch) = 75;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    break;
  case CLASS_icer:
    GET_MAX_HIT(ch) = 100;
    GET_MAX_MANA(ch) = 75;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    GET_INT(ch) = 0 + number(10, 14);
    GET_CON(ch) = 0 + number(10, 15);
    GET_WIS(ch) = 0 + number(10, 13);
    GET_RAGE(ch) = 0 + number(2, 5);
    GET_DEX(ch) = 0 + number(1, 5);
    GET_STR(ch) = 0 + number(16, 18);
    break;
  case CLASS_saiyan:
    GET_MAX_HIT(ch) = 150;
    GET_MAX_MANA(ch) = 100;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    GET_INT(ch) = 0 + number(10, 13);
    GET_CON(ch) = 0 + number(11, 15);
    GET_WIS(ch) = 0 + number(10, 14);
    GET_RAGE(ch) = 0 + number(3, 6);
    GET_DEX(ch) = 0 + number(1, 10);
    GET_STR(ch) = 0 + number(18, 20);
    break;
  case CLASS_MAJIN:
    GET_MAX_HIT(ch) = 125;
    GET_MAX_MANA(ch) = 125;
    GET_AC(ch) += 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    GET_INT(ch) = 0 + number(10, 14);
    GET_CON(ch) = 0 + number(10, 14);
    GET_WIS(ch) = 0 + number(10, 14);
    GET_RAGE(ch) = 0 + number(2, 5);
    GET_DEX(ch) = 0 + number(1, 10);
    GET_STR(ch) = 0 + number(16, 18);
    break;
  case CLASS_ANDROID:
    GET_MAX_HIT(ch) = 100;
    GET_MAX_MANA(ch) = 100;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    GET_INT(ch) = 0 + number(10, 13);
    GET_CON(ch) = 0 + number(10, 14);
    GET_WIS(ch) = 0 + number(10, 14);
    GET_RAGE(ch) = 0 + number(1, 5);
    GET_DEX(ch) = 0 + number(1, 10);
    GET_STR(ch) = 0 + number(16, 18);
    break;
  case CLASS_KAI:
    GET_MAX_HIT(ch) = 75;
    GET_MAX_MANA(ch) = 150;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    GET_INT(ch) = 0 + number(10, 15);
    GET_CON(ch) = 0 + number(10, 13);
    GET_WIS(ch) = 0 + number(10, 15);
    GET_RAGE(ch) = 0 + number(1, 5);
    GET_DEX(ch) = 0 + number(1, 10);
    GET_STR(ch) = 0 + number(16, 18);
    break;
  case CLASS_HALF_BREED:
    GET_MAX_HIT(ch) = 120;
    GET_MAX_MANA(ch) = 120;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    GET_INT(ch) = 0 + number(10, 14);
    GET_CON(ch) = 0 + number(11, 14);
    GET_WIS(ch) = 0 + number(10, 14);
    GET_RAGE(ch) = 0 + number(3, 6);
    GET_DEX(ch) = 0 + number(1, 9);
    GET_STR(ch) = 0 + number(16, 18);
    break;
  case CLASS_BIODROID:
    GET_MAX_HIT(ch) = 175;
    GET_MAX_MANA(ch) = 60;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    GET_INT(ch) = 0 + number(10, 14);
    GET_CON(ch) = 0 + number(11, 14);
    GET_WIS(ch) = 0 + number(10, 14);
    GET_RAGE(ch) = 0 + number(2, 5);
    GET_DEX(ch) = 0 + number(1, 8);
    GET_STR(ch) = 0 + number(16, 18);
    break;
  case CLASS_KONATSU:
    GET_MAX_HIT(ch) = 100;
    GET_MAX_MANA(ch) = 100;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    GET_INT(ch) = 0 + number(10, 15);
    GET_CON(ch) = 0 + number(10, 12);
    GET_WIS(ch) = 0 + number(10, 15);
    GET_RAGE(ch) = 0 + number(1, 4);
    GET_DEX(ch) = 0 + number(5, 15);
    GET_STR(ch) = 0 + number(16, 18);
    break;
  case CLASS_CHANGELING:
    break;
  case CLASS_demon:
    GET_MAX_HIT(ch) = 200;
    GET_MAX_MANA(ch) = 50;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    GET_INT(ch) = 0 + number(11, 13);
    GET_CON(ch) = 0 + number(10, 15);
    GET_WIS(ch) = 0 + number(10, 13);
    GET_RAGE(ch) = 0 + number(2, 5);
    GET_DEX(ch) = 0 + number(1, 7);
    GET_STR(ch) = 0 + number(16, 18);
    break;
  case CLASS_TRUFFLE:
    GET_MAX_HIT(ch) = 130;
    GET_MAX_MANA(ch) = 80;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    GET_INT(ch) = 0 + number(10, 15);
    GET_CON(ch) = 0 + number(10, 13);
    GET_WIS(ch) = 0 + number(10, 14);
    GET_RAGE(ch) = 0 + number(2, 4);
    GET_DEX(ch) = 0 + number(1, 10);
    GET_STR(ch) = 0 + number(16, 18);
    break;
  case CLASS_MUTANT:
    GET_MAX_HIT(ch) = 115;
    GET_MAX_MANA(ch) = 115;
    GET_AC(ch) -= 99;
    GET_WEIGHT(ch) = 0;
    GET_HEIGHT(ch) = 0;
    GET_INT(ch) = 0 + number(10, 14);
    GET_CON(ch) = 0 + number(10, 14);
    GET_WIS(ch) = 0 + number(10, 15);
    GET_RAGE(ch) = 0 + number(2, 4);
    GET_DEX(ch) = 0 + number(1, 10);
    GET_STR(ch) = 0 + number(16, 18);
    break;
  }
  
  advance_level(ch);
  if (GET_LEVEL(ch) <= 1 && ch->player.build == BUILD_FAT) {
     GET_STR(ch) += 5;
     GET_CON(ch) += 2;
    }
    else if (GET_LEVEL(ch) <= 1 && ch->player.build == BUILD_MUSC) {
     GET_STR(ch) += 2;
     GET_CON(ch) += 3;
    }
    else if (GET_LEVEL(ch) <= 1 && ch->player.build == BUILD_LEAN) {
     GET_INT(ch) += 2;
     GET_WIS(ch) += 2;
    }
    else if (GET_LEVEL(ch) <= 1 && ch->player.build == BUILD_SKIN) {
     GET_DEX(ch) += 20;
    }
    else if (GET_LEVEL(ch) <= 1 && ch->player.build == BUILD_CHUB) {
     GET_INT(ch) += 1;
     GET_CON(ch) += 1;
     GET_WIS(ch) += 1;
    }
  GET_HIT(ch) = GET_MAX_HIT(ch);
  GET_MANA(ch) = GET_MAX_MANA(ch);
  GET_MOVE(ch) = 0;
  GET_COND(ch, FULL) = 24;
  GET_COND(ch, DRUNK) = 0;
  GET_COND(ch, THIRST) = 24;
  GET_RAGE(ch) = 1;
  GET_UBS(ch) = 50;
  GET_LBS(ch) = 50;
  
 if (IS_Namek(ch)) {
  GET_COND(ch, FULL) = -1;
  }
 if (IS_ANDROID(ch)) {
  GET_COND(ch, FULL) = -1;
  GET_COND(ch, THIRST) = -1;
  }

  ch->player.time.played = 0;
  ch->player.time.logon = time(0);
  ch->player_specials->saved.pc_attacks = 1;
 
  SET_BIT(PRF_FLAGS(ch), PRF_DISPHP);
  SET_BIT(PRF_FLAGS(ch), PRF_DISPMANA);
  SET_BIT(PRF_FLAGS(ch), PRF_AUTOEXIT);
  SET_BIT(PRF_FLAGS(ch), PRF_COLOR_1);
  SET_BIT(PRF_FLAGS(ch), PRF_COLOR_2);
  SET_BIT(PLR_FLAGS(ch), PLR_RARM);
  SET_BIT(PLR_FLAGS(ch), PLR_LARM);
  SET_BIT(PLR_FLAGS(ch), PLR_RLEG);
  SET_BIT(PLR_FLAGS(ch), PLR_LLEG);
  
  if (siteok_everyone)
    SET_BIT(PLR_FLAGS(ch), PLR_SITEOK);
  
  if (IS_MAJIN(ch)) {
  SET_BIT(PLR_FLAGS(ch), PLR_FORELOCK);
  }
  if (IS_saiyan(ch)) {
  SET_BIT(PLR_FLAGS(ch), PLR_STAIL);  
  }
  if (IS_HALF_BREED(ch)) {
  SET_BIT(PLR_FLAGS(ch), PLR_STAIL);  
  }
  if (IS_icer(ch)) {
  SET_BIT(PLR_FLAGS(ch), PLR_TAIL);  
  }
  if (IS_BIODROID(ch)) {
  SET_BIT(PLR_FLAGS(ch), PLR_TAIL);
  } 
}



/*
 * This function controls the change to maxmove, maxmana, and maxhp for
 * each class every time they gain a level.
 */
void advance_level(struct char_data * ch)
{
  int add_hp = 0, add_mana = 0, add_lp = 0, add_speed, i;


  if (GET_AGE(ch) >= 50) {
    add_lp += 1;
   }
  if (GET_AGE(ch) >= 65) {
    add_lp += 1;
    add_mana += 100;
    add_hp += 100;
   }
  if ((IS_Namek(ch) || IS_KAI(ch) || IS_MAJIN(ch) || IS_ANDROID(ch)) && GET_HOME(ch) <= 19999) {
   GET_HOME(ch) += 1;
   }  

  if (IS_HALF_BREED(ch)) {
   switch (number(1, 15)) {

  case 1:
   add_hp += number(30, 30);
   send_to_char("&15Your inner &11s&00&03a&11i&00&03y&11a&00&03n&15 strength grows&00!\r\n", ch);
   break;
  case 2:
   add_hp += number(55, 55);
   send_to_char("&15Your inner &11s&00&03a&11i&00&03y&11a&00&03n&15 strength grows&00!\r\n", ch);
   break;
  case 3:
   add_hp += number(80, 80);
   send_to_char("&15Your inner &11s&00&03a&11i&00&03y&11a&00&03n&15 strength grows&00!\r\n", ch);
   break;
  case 4:
   GET_MAX_HIT(ch) = GET_MAX_HIT(ch);
   break;
  case 5:
   GET_MAX_HIT(ch) = GET_MAX_HIT(ch);
   break;
  case 6:
   GET_MAX_HIT(ch) = GET_MAX_HIT(ch);
   break;
  case 7:
   add_mana += number(40, 40);
   send_to_char("&15Your inner &11s&00&03a&11i&00&03y&11a&00&03n&15 strength grows&00!\r\n", ch);
   break;
  case 8:
   add_mana += number(60, 60);
   send_to_char("&15Your inner &11s&00&03a&11i&00&03y&11a&00&03n&15 strength grows&00!\r\n", ch);
   break;
  case 9:
   GET_MAX_HIT(ch) = GET_MAX_HIT(ch);
   break;
  case 10:
   GET_MAX_HIT(ch) = GET_MAX_HIT(ch);
   break;
  case 11:
  case 12:
  case 13:
  case 14:
  case 15:
   break;
 }
 }

  if (IS_saiyan(ch)) {
   switch (number(1, 15)) {
  
  case 1:
   add_hp += number(50, 50);
   send_to_char("&15Your inner &11s&00&03a&11i&00&03y&11a&00&03n&15 strength grows&00!\r\n", ch);
   break;
  case 2:
   add_hp += number(85, 85);
   send_to_char("&15Your inner &11s&00&03a&11i&00&03y&11a&00&03n&15 strength grows&00!\r\n", ch);
   break;
  case 3:
   add_hp += number(125, 125);
   send_to_char("&15Your inner &11s&00&03a&11i&00&03y&11a&00&03n&15 strength grows&00!\r\n", ch);
   break;
  case 4:
   GET_MAX_HIT(ch) = GET_MAX_HIT(ch);
   break;
  case 5:
   GET_MAX_HIT(ch) = GET_MAX_HIT(ch);
   break;
  case 6:
   GET_MAX_HIT(ch) = GET_MAX_HIT(ch);
   break;
  case 7:
   add_mana += number(70, 70);
   send_to_char("&15Your inner &11s&00&03a&11i&00&03y&11a&00&03n&15 strength grows&00!\r\n", ch);
   break;
  case 8:
   add_mana += number(100, 100);
   send_to_char("&15Your inner &11s&00&03a&11i&00&03y&11a&00&03n&15 strength grows&00!\r\n", ch);
   break;
  case 9:
   GET_MAX_HIT(ch) = GET_MAX_HIT(ch);
   break;
  case 10:
   GET_MAX_HIT(ch) = GET_MAX_HIT(ch);
   break;
  case 11:
  case 12:
  case 13:
  case 14:
  case 15:
   break;
 }
 }
  switch (GET_WIS(ch)) {
  case 1:
  case 2:
  case 3:
  case 4:
  case 5:
  case 6:
  case 7:
  case 8:
  case 9:
   add_lp += number(1, 1);
   break;   
  case 10:
   add_lp += number(2, 2);
   break;
  case 11:
   add_lp += number(2, 2);
   break;
  case 12:
   add_lp += number(2, 2);
   break;
  case 13:
   add_lp += number(3, 3);
   break;
  case 14:
   add_lp += number(3, 3);
   break;
  case 15:
   add_lp += number(3, 3);
   break;
  case 16:
   add_lp += number(4, 4);
   break;
  case 17:
   add_lp += number(4, 4);
   break;
  case 18:
   add_lp += number(4, 4);
   break;
  case 19:
   add_lp += number(5, 5);
   break;
  case 20:
   add_lp += number(5, 5);
   break;
  case 21:
   add_lp += number(5, 5);
   break;
  case 22:
   add_lp += number(6, 6);
   break;
  case 23:
   add_lp += number(6, 6);
   break;
  case 24:
   add_lp += number(6, 6);
   break;
  case 25:
   add_lp += number(7, 7);
   break;
  case 26:
   add_lp += number(7, 7);
   break;
  case 27:
   add_lp += number(7, 7);
   break;
  case 28:
   add_lp += number(7, 7);
   break;
  case 29:
   add_lp += number(7, 7);
   break;
  case 30:
   add_lp += number(7, 7);
   break;
  case 31:
   add_lp += number(7, 7);
   break;
  case 32:
   add_lp += number(8, 8);
   break;
  case 33:
   add_lp += number(8, 8);
   break;
  case 34:
   add_lp += number(8, 8);
   break;
  case 35:
   add_lp += number(9, 9);
   break;
  case 36:
   add_lp += number(9, 9);
   break;
  case 37:
   add_lp += number(9, 9);
   break;
  case 38:
   add_lp += number(10, 10);
   break;
  case 39:
   add_lp += number(10, 10);
   break;
  case 40:
  case 41:
  case 42:
  case 43:
  case 44:
  case 45:
  case 46:
  case 47:
  case 48:
  case 49:
  case 50:
  case 51:
  case 52:
  case 53:
  case 54:
  case 55:
   add_lp += number(10, 10);
   break;
  case 56:
  case 57:
   add_lp += number(12, 12);
   break;
  case 58:
  case 59:
  case 60:
  case 61:
  case 62:
  case 63:
  case 64:
  case 65:
  case 66:
  case 67:
  case 68:
  case 69:
  case 70:
   add_lp += number(15, 15);
   break;
  case 71:
  case 72:
  case 73:
  case 74:
  case 75:
   add_lp += number(16, 16);
   break;
  case 76:
  case 77:
  case 78:
  case 79:
  case 80:
   add_lp += number(17, 17);
   break;
  case 81:
  case 82:
  case 83:
  case 84:
  case 85:
   add_lp += number(18, 18);
   break;
  case 86:
  case 87:
  case 88:
  case 89:
  case 90:
   add_lp += number(19, 19);
   break;
  case 91:
  case 92:
  case 93:
  case 94:
  case 95:
  case 96:
  case 97:
  case 98:
  case 99:
   add_lp += number(20, 20);
   break;
  case 100:
   add_lp += number(25, 25);
  }

  switch (GET_INT(ch)) {
  case 1:
  case 2:
  case 3:
  case 4:
  case 5:
  case 6:
  case 7:
  case 8:
  case 9:
    add_mana += number(30, 30);
    break;
  case 10:
    add_mana += number(45, 45);
    break;
  
  case 11:
    add_mana += number(55, 55);
    break;
  
  case 12:
    add_mana += number(65, 65);
    break;
  
  case 13:
    add_mana += number(80, 80);
    break;
  
  case 14:
    add_mana += number(100, 100);
    break;
  
  case 15:
    add_mana += number(125, 125);
    break;
  
  case 16:
    add_mana += number(150, 150);
    break;
  
  case 17:
    add_mana += number(175, 175);
    break;
  
  case 18:
    add_mana += number(200, 200);
    break;
  
  case 19:
    add_mana += number(225, 225);
    break;
  
  case 20:
    add_mana += number(250, 250);
    break;
  
  case 21:
    add_mana += number(275, 275);
    break;
  
  case 22:
    add_mana += number(300, 300);
    break;
  
  case 23:
    add_mana += number(325, 325);
    break;
  
  case 24:
    add_mana += number(350, 350);
    break;
  
  case 25:
    add_mana += number(375, 375);
    break;
  
  case 26:
    add_mana += number(400, 400);
    break;
  
  case 27:
    add_mana += number(425, 425);
    break;
  
  case 28:
    add_mana += number(450, 450);
    break;
  
  case 29:
    add_mana += number(475, 475);
    break;
  
  case 30:
    add_mana += number(500, 500);
    break;
  case 31:
    add_mana += number(525, 525);
    break;
  case 32:
    add_mana += number(550, 550);
    break;
  case 33:
    add_mana += number(575, 575);
    break;
  case 34:
    add_mana += number(600, 600);
    break;
  case 35:
    add_mana += number(625, 625);
    break;
  case 36:
    add_mana += number(650, 650);
    break;
  case 37:
    add_mana += number(675, 675);
    break;
  case 38:
    add_mana += number(700, 700);
    break;
  case 39:
    add_mana += number(725, 725);
    break;
  case 40:
    add_mana += number(750, 750);
    break;
  case 41:
    add_mana += number(775, 775);
    break;
  case 42:
    add_mana += number(800, 800);
    break;
  case 43:
    add_mana += number(825, 825);
    break;
  case 44:
    add_mana += number(875, 875);
    break;
  case 45:
    add_mana += number(880, 880);
    break;
  case 46:
    add_mana += number(890, 890);
    break;
  case 47:
    add_mana += number(900, 900);
    break;
  case 48:
    add_mana += number(910, 910);
    break;
  case 49:
    add_mana += number(920, 920);
    break;
  case 50:
    add_mana += number(930, 930);
    break;
  case 51:
    add_mana += number(935, 935);
    break;
  case 52:
    add_mana += number(940, 940);
    break;
  case 53:
    add_mana += number(945, 945);
    break;
  case 54:
    add_mana += number(950, 950);
    break;
  case 55:
    add_mana += number(955, 955);
    break;
  case 56:
    add_mana += number(965, 965);
    break;
  case 57:
    add_mana += number(975, 975);
    break;
  case 58:
    add_mana += number(1000, 1000);
    break;
  case 59:
    add_mana += number(1025, 1025);
    break;
  case 60:
    add_mana += number(1050, 1050);
    break;
  case 61:
    add_mana += number(1075, 1075);
    break;
  case 62:
    add_mana += number(1100, 1100);
    break;
  case 63:
    add_mana += number(1125, 1125);
    break;
  case 64:
    add_mana += number(1150, 1150);
    break;
  case 65:
    add_mana += number(1175, 1175);
    break;
  case 66:
    add_mana += number(1200, 1200);
    break;
  case 67:
    add_mana += number(1225, 1225);
    break;
  case 68:
    add_mana += number(1250, 1250);
    break;
  case 69:
    add_mana += number(1350, 1350);
    break;
  case 70:
    add_mana += number(1500, 1500);
    break;
  case 71:
    add_mana += number(1520, 1520);
    break;
  case 72:
    add_mana += number(1540, 1540);
    break;
  case 73:
    add_mana += number(1560, 1560);
    break;
  case 74:
    add_mana += number(1580, 1580);
    break;
  case 75:
   add_mana += number(1600, 1600);
    break;
  case 76:
   add_mana += number(1620, 1620);
   break;
  case 77:
   add_mana += number(1640, 1640);
   break;
  case 78:
   add_mana += number(1660, 1660);
   break;
  case 79:
   add_mana += number(1680, 1680);
   break;
  case 80:
   add_mana += number(1700, 1700);
   break;
  case 81:
   add_mana += number(1710, 1710);
   break;
  case 82:
   add_mana += number(1720, 1720);
   break;
  case 83:
   add_mana += number(1730, 1730);
   break;
  case 84:
   add_mana += number(1740, 1740);
   break;
  case 85:
   add_mana += number(1750, 1750);
   break;
  case 86:
   add_mana += number(1760, 1760);
   break;
  case 87:
   add_mana += number(1770, 1770);
   break;
  case 88:
   add_mana += number(1780, 1780);
   break;
  case 89:
   add_mana += number(1790, 1790);
   break;
  case 90:
   add_mana += number(1800, 1800);
   break;
  case 91:
   add_mana += number(1810, 1810);
   break;
  case 92:
   add_mana += number(1820, 1820);
   break;
  case 93:
   add_mana += number(1830, 1830);
   break;
  case 94:
   add_mana += number(1840, 1840);
   break;
  case 95:
   add_mana += number(1850, 1850);
   break;
  case 96:
   add_mana += number(1860, 1860);
   break;
  case 97:
   add_mana += number(1870, 1870);
   break;
  case 98:
   add_mana += number(1900, 1900);
   break;
  case 99:
   add_mana += number(1950, 1950);
   break;
  case 100:
   add_mana += number(2000, 2000);
   break;
 }
 switch (GET_CON(ch)) {
  case 1:
  case 2:
  case 3:
  case 4:
  case 5:
  case 6:
  case 7:
  case 8:
  case 9:
    add_hp += number(30, 30);
    break;
  case 10:
    add_hp += number(55, 55);
    break;
  
  case 11:
    add_hp += number(65, 65);
    break;
  
  case 12:
    add_hp += number(80, 80);
    break;
  
  case 13:
    add_hp += number(100, 100);
    break;
  
  case 14:
    add_hp += number(125, 125);
    break;
  
  case 15:
    add_hp += number(150, 150);
    break;
  
  case 16:
    add_hp += number(175, 175);
    break;
  
  case 17:
    add_hp += number(200, 200);
    break;
  
  case 18:
    add_hp += number(250, 250);
    break;
  
  case 19:
    add_hp += number(275, 275);
    break;
  
  case 20:
    add_hp += number(300, 300);
    break;
  
  case 21:
    add_hp += number(325, 325);
    break;
  
  case 22:
    add_hp += number(350, 350);
    break;
  
  case 23:
    add_hp += number(375, 375);
    break;
  
  case 24:
    add_hp += number(400, 400);
    break;
  
  case 25:
    add_hp += number(425, 425);
    break;
  
  case 26:
    add_hp += number(450, 450);
    break;
  
  case 27:
    add_hp += number(475, 475);
    break;
  
  case 28:
    add_hp += number(500, 500);
    break;
  
  case 29:
    add_hp += number(525, 525);
    break;
  
  case 30:
    add_hp += number(550, 550);
    break;
  case 31:
    add_hp += number(575, 575);
    break;
  case 32:
    add_hp += number(600, 600);
    break;
  case 33:
    add_hp += number(625, 625);
    break;
  case 34:
    add_hp += number(650, 650);
    break;
  case 35:
    add_hp += number(675, 675);
    break;
  case 36:
    add_hp += number(700, 700);
    break;
  case 37:
    add_hp += number(725, 725);
    break;
  case 38:
    add_hp += number(750, 750);
    break;
  case 39:
    add_hp += number(775, 775);
    break;
  case 40:
    add_hp += number(800, 800);
    break;
  case 41:
    add_hp += number(825, 825);
    break;
  case 42:
    add_hp += number(850, 850);
    break;
  case 43:
    add_hp += number(875, 875);
    break;
  case 44:
    add_hp += number(900, 900);
    break;
  case 45:
    add_hp += number(910, 910);
    break;
  case 46:
    add_hp += number(920, 920);
    break;
  case 47:
    add_hp += number(930, 930);
    break;
  case 48:
    add_hp += number(940, 940);
    break;
  case 49:
    add_hp += number(950, 950);
    break;
  case 50:
    add_hp += number(960, 960);
    break;
  case 51:
    add_hp += number(970, 970);
    break;
  case 52:
    add_hp += number(980, 980);
    break;
  case 53:
    add_hp += number(990, 990);
    break;
  case 54:
    add_hp += number(1000, 1000);
    break;
  case 55:
    add_hp += number(1025, 1025);
    break;
  case 56:
    add_hp += number(1050, 1050);
    break;
  case 57:
    add_hp += number(1075, 1075);
    break;
  case 58:
    add_hp += number(1150, 1150);
    break;
  case 59:
    add_hp += number(1250, 1250);
    break;
  case 60:
    add_hp += number(1260, 1260);
    break;
  case 61:
    add_hp += number(1270, 1270);
    break;
  case 62:
    add_hp += number(1280, 1280);
    break;
  case 63:
    add_hp += number(1290, 1290);
    break;
  case 64:
    add_hp += number(1300, 1300);
    break;
  case 65:
    add_hp += number(1325, 1325);
    break;
  case 66:
    add_hp += number(1350, 1350);
    break;
  case 67:
    add_hp += number(1375, 1375);
    break;
  case 68:
    add_hp += number(1400, 1400);
    break;
  case 69:
    add_hp += number(1450, 1450);
    break;
  case 70:
    add_hp += number(1500, 1500);
    break;
  case 71:
   add_hp += number(1520, 1520);
    break;
  case 72:
   add_hp += number(1540, 1540);
    break;
  case 73:
   add_hp += number(1560, 1560);
    break;
  case 74:
   add_hp += number(1580, 1580);
    break;
  case 75:
   add_hp += number(1600, 1600);
    break;
  case 76:
   add_hp += number(1620, 1620);
    break;
  case 77:
   add_hp += number(1640, 1640);
    break;
  case 78:
   add_hp += number(1660, 1660);
    break;
  case 79:
   add_hp += number(1680, 1680);
    break;
  case 80:
   add_hp += number(1700, 1700);
    break;
  case 81:
   add_hp += number(1720, 1720);
    break;
  case 82:
   add_hp += number(1740, 1740);
    break;
  case 83:
   add_hp += number(1760, 1760);
    break;
  case 84:
   add_hp += number(1780, 1780);
    break;
  case 85:
   add_hp += number(1800, 1800);
    break;
  case 86:
   add_hp += number(1820, 1820);
    break;
  case 87:
   add_hp += number(1840, 1840);
    break;
  case 88:
   add_hp += number(1860, 1860);
    break;
  case 89:
   add_hp += number(1890, 1880);
    break;
  case 90:
   add_hp += number(1900, 1900);
    break;
  case 91:
   add_hp += number(1910, 1910);
    break;
  case 92:
   add_hp += number(1920, 1920);
    break;
  case 93:
   add_hp += number(1930, 1930);
    break;
  case 94:
   add_hp += number(1940, 1940);
    break;
  case 95:
   add_hp += number(1950, 1950);
    break;
  case 96:
   add_hp += number(1960, 1960);
    break;
  case 97:
   add_hp += number(1970, 1970);
    break;
  case 98:
   add_hp += number(1980, 1980);
    break;
  case 99:
   add_hp += number(1990, 1990);
    break;
  case 100:
   add_hp += number(2000, 2000);
    break;
  }
  sprintf(buf, "&16[&10GAIN&16] &09PL&11: &15%d &14Ki&11: &15%d &12LP&11: &15%d\r\n", add_hp, add_mana, add_lp);
        send_to_char(buf, ch);
  GET_PRACTICES(ch) = GET_PRACTICES(ch) + add_lp;
  ch->points.max_hit += MAX(1, add_hp);
  ch->points.max_mana += MAX(1, add_mana);
  if (GET_LEVEL(ch) >= LVL_IMMORT) {
    for (i = 0; i < 3; i++)
      GET_COND(ch, i) = (char) -1;
    SET_BIT(PRF_FLAGS(ch), PRF_HOLYLIGHT);
  }

  save_char(ch, NOWHERE);
}


/*
 * This simply calculates the backstab multiplier based on a character's
 * level.  This used to be an array, but was changed to be a function so
 * that it would be easier to add more levels to your MUD.  This doesn't
 * really create a big performance hit because it's not used very often.
 */
int backstab_mult(int level)
{
  if (level <= 0)
    return 1;	  /* level 0 */
  else if (level <= 7)
    return 2;	  /* level 1 - 7 */
  else if (level <= 13)
    return 3;	  /* level 8 - 13 */
  else if (level <= 20)
    return 4;	  /* level 14 - 20 */
  else if (level <= 28)
    return 5;	  /* level 21 - 28 */
  else if (level < LVL_IMMORT)
    return 6;	  /* all remaining mortal levels */
  else
    return 20;	  /* immortals */
}


/*
 * invalid_class is used by handler.c to determine if a piece of equipment is
 * usable by a particular class, based on the ITEM_ANTI_{class} bitvectors.
 */

int invalid_class(struct char_data *ch, struct obj_data *obj) {
  if ((IS_OBJ_STAT(obj, ITEM_ANTI_Human) && IS_Human(ch)) ||
      (IS_OBJ_STAT(obj, ITEM_ANTI_Namek) && IS_Namek(ch)) ||
      (IS_OBJ_STAT(obj, ITEM_ANTI_saiyan) && IS_saiyan(ch)) ||
      (IS_OBJ_STAT(obj, ITEM_ANTI_MAJIN) && IS_MAJIN(ch)) ||
      (IS_OBJ_STAT(obj, ITEM_ANTI_ANDROID) && IS_ANDROID(ch)) ||
      (IS_OBJ_STAT(obj, ITEM_ANTI_KAI) && IS_KAI(ch)) ||
      (IS_OBJ_STAT(obj, ITEM_ANTI_HALF_BREED) && IS_HALF_BREED(ch)) ||
      (IS_OBJ_STAT(obj, ITEM_ANTI_TRUFFLE) && IS_TRUFFLE(ch)) ||
      (IS_OBJ_STAT(obj, ITEM_ANTI_demon) && IS_demon(ch)) ||
      (IS_OBJ_STAT(obj, ITEM_ANTI_KONATSU) && IS_KONATSU(ch)) ||
      (IS_OBJ_STAT(obj, ITEM_ANTI_BIODROID) && IS_BIODROID(ch)) ||
      (IS_OBJ_STAT(obj, ITEM_ANTI_MUTANT) && IS_MUTANT(ch)) ||
      (IS_OBJ_STAT(obj, ITEM_ANTI_HALF_BREED) && IS_HALF_BREED(ch)) ||
      (IS_OBJ_STAT(obj, ITEM_ANTI_HALF_BREED) && IS_HALF_BREED(ch)) ||
      (IS_OBJ_STAT(obj, ITEM_ANTI_icer) && IS_icer(ch)))
	return 1;
  else
	return 0;
}




/*
 * SPELLS AND SKILLS.  This area defines which spells are assigned to
 * which classes, and the minimum level the character must be to use
 * the spell or skill.
 */
void init_spell_levels(void)
{
  /* Human */
  spell_level(SPELL_GROUP_BOOST, CLASS_Human, 1);
  spell_level(SPELL_DETECT_INVISIBILTY, CLASS_Human, 1);
  spell_level(SPELL_ZANZOKEN, CLASS_Human, 1);
  spell_level(SKILL_KAKUSANHA, CLASS_Human, 1);
  spell_level(SKILL_YOIKOMINMINKEN, CLASS_Human, 1);
  spell_level(SKILL_SPIRITBALL, CLASS_Human, 1);
  spell_level(SKILL_SENSE, CLASS_Human, 1);
  spell_level(SKILL_SWIFTNESS, CLASS_Human, 1);
  spell_level(SKILL_RESCUE, CLASS_Human, 1);
  spell_level(SPELL_SOLAR_FLARE, CLASS_Human, 1);
  spell_level(SPELL_BARRIER, CLASS_Human, 1);
  spell_level(SKILL_SWEEP, CLASS_Human, 1);
  spell_level(SKILL_KNEE, CLASS_Human, 1);
  spell_level(SKILL_ELBOW, CLASS_Human, 1);
  spell_level(SKILL_ROUNDHOUSE, CLASS_Human, 1);
  spell_level(SKILL_FLY, CLASS_Human, 1);
  spell_level(SPELL_YOIKOMINMINKEN, CLASS_Human, 1);
  spell_level(SKILL_POWERSENSE, CLASS_Human, 1);
  spell_level(SPELL_MULTIFORM, CLASS_Human, 1);
  spell_level(SPELL_WORD_OF_RECALL, CLASS_Human, 1);    
  spell_level(SKILL_DISK, CLASS_Human, 1);
  spell_level(SKILL_KAMEHAMEHA, CLASS_Human, 1);
  spell_level(SKILL_RENZO, CLASS_Human, 1);
  spell_level(SPELL_CREATE_FOOD, CLASS_Human, 1);
  spell_level(SKILL_KISHOT, CLASS_Human, 1);
  spell_level(SKILL_KIKOHO, CLASS_Human, 1);
  spell_level(SKILL_ZANELB, CLASS_Human, 1);

  /* Namek */
  spell_level(SPELL_GROUP_HEAL, CLASS_Namek, 1);
  spell_level(SPELL_PROT_FROM_EVIL, CLASS_Namek, 1);
  spell_level(SPELL_DETECT_INVISIBILTY, CLASS_Namek, 1);
  spell_level(SPELL_ZANZOKEN, CLASS_Namek, 1);
  spell_level(SKILL_SENSE, CLASS_Namek, 1);
  spell_level(SKILL_RESCUE, CLASS_Namek, 2);
  spell_level(SPELL_HEAL, CLASS_Namek, 1);
  spell_level(SPELL_BARRIER, CLASS_Namek, 1);
  spell_level(SPELL_MULTIFORM, CLASS_Namek, 1);
  spell_level(SKILL_SWEEP, CLASS_Namek, 1);
  spell_level(SKILL_KNEE, CLASS_Namek, 1);
  spell_level(SKILL_ELBOW, CLASS_Namek, 1);
  spell_level(SKILL_ROUNDHOUSE, CLASS_Namek, 1);
  spell_level(SKILL_FLY, CLASS_Namek, 1);
  spell_level(SPELL_REPRODUCE, CLASS_Namek, 1);
  spell_level(SKILL_POWERSENSE, CLASS_Namek, 1);
  spell_level(SKILL_REGENERATE, CLASS_Namek, 1);
  spell_level(SPELL_KYODAIKA, CLASS_Namek, 1);
  spell_level(SPELL_WORD_OF_RECALL, CLASS_Namek, 1); 
  spell_level(SKILL_RENZO, CLASS_Namek, 1);
  spell_level(SPELL_CREATE_FOOD, CLASS_Namek, 1);
  spell_level(SKILL_KISHOT, CLASS_Namek, 1);
  spell_level(SKILL_MAKANKO, CLASS_Namek, 1);
  spell_level(SKILL_KOUSEN, CLASS_Namek, 1);
  spell_level(SKILL_ZANELB, CLASS_Namek, 1);

  /* Icer */
  spell_level(SPELL_BARRIER, CLASS_icer, 1);
  spell_level(SPELL_DETECT_INVISIBILTY, CLASS_icer, 1);
  spell_level(SPELL_ZANZOKEN, CLASS_icer, 1);
  spell_level(SKILL_RESCUE, CLASS_icer, 1);
  spell_level(SKILL_TAILWHIP, CLASS_icer, 1);
  spell_level(SKILL_SWEEP, CLASS_icer, 1);
  spell_level(SKILL_KNEE, CLASS_icer, 1);
  spell_level(SKILL_ELBOW, CLASS_icer, 1);
  spell_level(SKILL_ROUNDHOUSE, CLASS_icer, 1);
  spell_level(SKILL_FLY, CLASS_icer, 1);
  spell_level(SPELL_INFRAVISION, CLASS_icer, 1);
  spell_level(SPELL_WORD_OF_RECALL, CLASS_icer, 1);
  spell_level(SKILL_RENZO, CLASS_icer, 1);
  spell_level(SPELL_CREATE_FOOD, CLASS_icer, 1);
  spell_level(SKILL_KISHOT, CLASS_icer, 1);
  spell_level(SKILL_DBALL, CLASS_icer, 1);  
  spell_level(SKILL_KOUSEN, CLASS_icer, 1);
  spell_level(SKILL_ZANELB, CLASS_icer, 1);
  spell_level(SKILL_POWERSENSE, CLASS_icer, 1);

  /* Saiyan */
  spell_level(SPELL_BARRIER, CLASS_saiyan, 1);
  spell_level(SPELL_DETECT_INVISIBILTY, CLASS_saiyan, 1);
  spell_level(SKILL_SENSE, CLASS_saiyan, 1);
  spell_level(SKILL_RESCUE, CLASS_saiyan, 1);
  spell_level(SPELL_SOLAR_FLARE, CLASS_saiyan, 1);
  spell_level(SPELL_ZANZOKEN, CLASS_saiyan, 1);
  spell_level(SKILL_SWEEP, CLASS_saiyan, 1);
  spell_level(SKILL_KNEE, CLASS_saiyan, 1);
  spell_level(SKILL_ELBOW, CLASS_saiyan, 1);
  spell_level(SKILL_ROUNDHOUSE, CLASS_saiyan, 1);
  spell_level(SKILL_FLY, CLASS_saiyan, 1);
  spell_level(SPELL_HASSHUKEN, CLASS_saiyan, 1);
  spell_level(SPELL_TSURUGI, CLASS_saiyan, 1);
  spell_level(SKILL_KAIOKEN, CLASS_saiyan, 1);
  spell_level(SKILL_SENSE, CLASS_saiyan, 1);
  spell_level(SKILL_POWERSENSE, CLASS_saiyan, 1);
  spell_level(SPELL_WORD_OF_RECALL, CLASS_saiyan, 1);
  spell_level(SKILL_FINALFLASH, CLASS_saiyan, 1);
  spell_level(SKILL_MASENKO, CLASS_saiyan, 1);
  spell_level(SKILL_CHOUKAME, CLASS_saiyan, 1);
  spell_level(SKILL_BIGBANG, CLASS_saiyan, 1);
  spell_level(SKILL_KAMEHAMEHA, CLASS_saiyan, 1);
  spell_level(SKILL_DISK, CLASS_saiyan, 1);
  spell_level(SKILL_RENZO, CLASS_saiyan, 1);
  spell_level(SPELL_CREATE_FOOD, CLASS_saiyan, 1);
  spell_level(SKILL_KISHOT, CLASS_saiyan, 1);
  spell_level(SKILL_ZANELB, CLASS_saiyan, 1);
  spell_level(SKILL_POWERSENSE, CLASS_saiyan, 1);

  /* Majin */
  spell_level(SPELL_HEAL, CLASS_MAJIN, 1);
  spell_level(SPELL_CANDYBEAM, CLASS_MAJIN, 1);
  spell_level(SPELL_GROUP_HEAL, CLASS_MAJIN, 1);
  spell_level(SPELL_BARRIER, CLASS_MAJIN, 1);
  spell_level(SPELL_DETECT_INVISIBILTY, CLASS_MAJIN, 1);
  spell_level(SPELL_ZANZOKEN, CLASS_MAJIN, 1);
  spell_level(SKILL_RESCUE, CLASS_MAJIN, 1);
  spell_level(SKILL_SENSE, CLASS_MAJIN, 1);
  spell_level(SPELL_MAJIN, CLASS_MAJIN, 1);
  spell_level(SKILL_SWEEP, CLASS_MAJIN, 1);
  spell_level(SKILL_KNEE, CLASS_MAJIN, 1);
  spell_level(SKILL_ELBOW, CLASS_MAJIN, 1);
  spell_level(SKILL_ROUNDHOUSE, CLASS_MAJIN, 1);
  spell_level(SKILL_FLY, CLASS_MAJIN, 1);
  spell_level(SKILL_INGEST, CLASS_MAJIN, 1);
  spell_level(SKILL_POWERSENSE, CLASS_MAJIN, 1);
  spell_level(SKILL_REGENERATE, CLASS_MAJIN, 1);
  spell_level(SPELL_WORD_OF_RECALL, CLASS_MAJIN, 1);
  spell_level(SKILL_RENZO, CLASS_MAJIN, 1);  
  spell_level(SPELL_CREATE_FOOD, CLASS_MAJIN, 1);
  spell_level(SKILL_KISHOT, CLASS_MAJIN, 1);
  spell_level(SKILL_ZANELB, CLASS_MAJIN, 1);

  /* Android */
  spell_level(SPELL_ZANZOKEN, CLASS_ANDROID, 1);
  spell_level(SPELL_INFRAVISION, CLASS_ANDROID, 1);
  spell_level(SPELL_BARRIER, CLASS_ANDROID, 1);
  spell_level(SPELL_DETECT_INVISIBILTY, CLASS_ANDROID, 1);
  spell_level(SPELL_ZANZOKEN, CLASS_ANDROID, 1);
  spell_level(SKILL_REPAIR, CLASS_ANDROID, 1);
  spell_level(SKILL_RESCUE, CLASS_ANDROID, 1);
  spell_level(SKILL_SENSE, CLASS_ANDROID, 1);
  spell_level(SKILL_SWEEP, CLASS_ANDROID, 1);
  spell_level(SKILL_KNEE, CLASS_ANDROID, 1);
  spell_level(SKILL_ELBOW, CLASS_ANDROID, 1);
  spell_level(SKILL_ROUNDHOUSE, CLASS_ANDROID, 1);
  spell_level(SKILL_FLY, CLASS_ANDROID, 1);
  spell_level(SPELL_BARRIER, CLASS_ANDROID, 1);
  spell_level(SKILL_DESTRUCT, CLASS_ANDROID, 1);
  spell_level(SKILL_REGENERATE, CLASS_ANDROID, 1);
  spell_level(SPELL_WORD_OF_RECALL, CLASS_ANDROID, 1);
  spell_level(SKILL_RENZO, CLASS_ANDROID, 1);  
  spell_level(SPELL_CREATE_FOOD, CLASS_ANDROID, 1);
  spell_level(SKILL_KISHOT, CLASS_ANDROID, 1);
  spell_level(SPELL_INFRAVISION, CLASS_ANDROID, 1);
  spell_level(SKILL_ZANELB, CLASS_ANDROID, 1);
  spell_level(SKILL_POWERSENSE, CLASS_ANDROID, 1);
  spell_level(SKILL_HELLF, CLASS_ANDROID, 1);

  /* KAI */
  spell_level(SPELL_PROT_FROM_EVIL, CLASS_KAI, 1);
  spell_level(SPELL_REMOVE_POISON, CLASS_KAI, 1);
  spell_level(SPELL_REMOVE_CURSE, CLASS_KAI, 1);
  spell_level(SPELL_DETECT_INVISIBILTY, CLASS_KAI, 1);
  spell_level(SPELL_MIND_FREEZE, CLASS_KAI, 1);
  spell_level(SPELL_HEAL, CLASS_KAI, 1);
  spell_level(SPELL_CURE_SOLAR_FLARE, CLASS_KAI, 1);
  spell_level(SPELL_ZANZOKEN, CLASS_KAI, 1);
  spell_level(SPELL_BARRIER, CLASS_KAI, 1);
  spell_level(SKILL_KAIOKEN, CLASS_KAI, 1);
  spell_level(SKILL_RESCUE, CLASS_KAI, 1);
  spell_level(SKILL_SWEEP, CLASS_KAI, 1);
  spell_level(SKILL_KNEE, CLASS_KAI, 1);
  spell_level(SKILL_ELBOW, CLASS_KAI, 1);
  spell_level(SKILL_ROUNDHOUSE, CLASS_KAI, 1);
  spell_level(SKILL_FLY, CLASS_KAI, 1);
  spell_level(SPELL_WORD_OF_RECALL, CLASS_KAI, 1);
  spell_level(SKILL_RENZO, CLASS_KAI, 1);
  spell_level(SPELL_CREATE_FOOD, CLASS_KAI, 1);
  spell_level(SKILL_KISHOT, CLASS_KAI, 1);
  spell_level(SPELL_KYODAIKA, CLASS_KAI, 1);
  spell_level(SKILL_ZANELB, CLASS_KAI, 1);
  spell_level(SKILL_POWERSENSE, CLASS_KAI, 1);

  /* BIODROID */
  spell_level(SPELL_INFRAVISION, CLASS_BIODROID, 1);
  spell_level(SPELL_BARRIER, CLASS_BIODROID, 1);
  spell_level(SPELL_DETECT_INVISIBILTY, CLASS_BIODROID, 1);
  spell_level(SPELL_MULTIFORM, CLASS_BIODROID, 1);
  spell_level(SPELL_ZANZOKEN, CLASS_BIODROID, 1);
  spell_level(SKILL_RESCUE, CLASS_BIODROID, 1);
  spell_level(SKILL_SENSE, CLASS_BIODROID, 1);
  spell_level(SKILL_SWEEP, CLASS_BIODROID, 1);
  spell_level(SKILL_KNEE, CLASS_BIODROID, 1);
  spell_level(SKILL_ELBOW, CLASS_BIODROID, 1);
  spell_level(SKILL_ROUNDHOUSE, CLASS_BIODROID, 1);
  spell_level(SKILL_FLY, CLASS_BIODROID, 1);
  spell_level(SKILL_ABSORB, CLASS_BIODROID, 1);
  spell_level(SKILL_DESTRUCT, CLASS_BIODROID, 1);
  spell_level(SKILL_REGENERATE, CLASS_ANDROID, 1);
  spell_level(SKILL_POWERSENSE, CLASS_BIODROID, 1);
  spell_level(SPELL_SOLAR_FLARE, CLASS_BIODROID, 1);
  spell_level(SPELL_WORD_OF_RECALL, CLASS_BIODROID, 1);
  spell_level(SKILL_FINALFLASH, CLASS_BIODROID, 1);
  spell_level(SKILL_MASENKO, CLASS_BIODROID, 1);
  spell_level(SKILL_CHOUKAME, CLASS_BIODROID, 1);
  spell_level(SKILL_BIGBANG, CLASS_BIODROID, 1);
  spell_level(SKILL_KAMEHAMEHA, CLASS_BIODROID, 1);
  spell_level(SKILL_DISK, CLASS_BIODROID, 1);
  spell_level(SKILL_RENZO, CLASS_BIODROID, 1);  
  spell_level(SPELL_CREATE_FOOD, CLASS_BIODROID, 1);
  spell_level(SKILL_KISHOT, CLASS_BIODROID, 1);
  spell_level(SKILL_ZANELB, CLASS_BIODROID, 1);

  /* KONATSU */
  spell_level(SPELL_PROT_FROM_EVIL, CLASS_KONATSU, 1);
  spell_level(SKILL_PHEONIX, CLASS_KONATSU, 1);
  spell_level(SPELL_GROUP_INVISIBLE, CLASS_KONATSU, 1);
  spell_level(SPELL_INFRAVISION, CLASS_KONATSU, 1);
  spell_level(SPELL_DETECT_INVISIBILTY, CLASS_KONATSU, 1);
  spell_level(SPELL_ZANZOKEN, CLASS_KONATSU, 1);
  spell_level(SKILL_MUG, CLASS_KONATSU, 1);
  spell_level(SKILL_BACKSTAB, CLASS_KONATSU, 1);
  spell_level(SKILL_STEALTH, CLASS_KONATSU, 1);
  spell_level(SKILL_TWIN, CLASS_KONATSU, 1);
  spell_level(SKILL_RESCUE, CLASS_KONATSU, 1);
  spell_level(SKILL_SWEEP, CLASS_KONATSU, 1);
  spell_level(SKILL_KNEE, CLASS_KONATSU, 1);
  spell_level(SKILL_ELBOW, CLASS_KONATSU, 1);
  spell_level(SKILL_ROUNDHOUSE, CLASS_KONATSU, 1);
  spell_level(SKILL_FLY, CLASS_KONATSU, 1);
  spell_level(SPELL_SWORD, CLASS_KONATSU, 1);
  spell_level(SPELL_INFRAVISION, CLASS_KONATSU, 1);
  spell_level(SPELL_INVISIBLE, CLASS_KONATSU, 1);
  spell_level(SPELL_BURNING_SOULS, CLASS_KONATSU, 1);
  spell_level(SKILL_POWERSENSE, CLASS_KONATSU, 1);
  spell_level(SKILL_SENSE, CLASS_KONATSU, 1);
  spell_level(SPELL_WORD_OF_RECALL, CLASS_KONATSU, 1);
  spell_level(SKILL_RENZO, CLASS_KONATSU, 1);  
  spell_level(SPELL_CREATE_FOOD, CLASS_KONATSU, 1);
  spell_level(SKILL_KISHOT, CLASS_KONATSU, 1);
  spell_level(SKILL_ZANELB, CLASS_KONATSU, 1);
  
  /* Kanassan */
  spell_level(SPELL_PROT_FROM_EVIL, CLASS_KANASSAN, 1);
  spell_level(SPELL_REMOVE_POISON, CLASS_KANASSAN, 1);
  spell_level(SPELL_REMOVE_CURSE, CLASS_KANASSAN, 1);
  spell_level(SPELL_DETECT_INVISIBILTY, CLASS_KANASSAN, 1);
  spell_level(SPELL_ZANZOKEN, CLASS_KANASSAN, 1);
  spell_level(SKILL_RESCUE, CLASS_KANASSAN, 1);
  spell_level(SKILL_SWEEP, CLASS_KANASSAN, 1);
  spell_level(SKILL_KNEE, CLASS_KANASSAN, 1);
  spell_level(SKILL_ELBOW, CLASS_KANASSAN, 1);
  spell_level(SKILL_ROUNDHOUSE, CLASS_KANASSAN, 1);
  spell_level(SKILL_FLY, CLASS_KANASSAN, 1);
  spell_level(SPELL_BLADEMORPH, CLASS_KANASSAN, 1);
  spell_level(SKILL_STEALTH, CLASS_KANASSAN, 1);
  spell_level(SPELL_INFRAVISION, CLASS_KANASSAN, 1);
  spell_level(SPELL_MUTATE, CLASS_KANASSAN, 1);
  spell_level(SKILL_REGENERATE, CLASS_KANASSAN, 1);
  spell_level(SPELL_WORD_OF_RECALL, CLASS_KANASSAN, 1);
  spell_level(SKILL_RENZO, CLASS_KANASSAN, 1);
  spell_level(SPELL_CREATE_FOOD, CLASS_KANASSAN, 1);
  spell_level(SKILL_KISHOT, CLASS_KANASSAN, 1);
  spell_level(SKILL_ZANELB, CLASS_KANASSAN, 1);    
  spell_level(SKILL_POWERSENSE, CLASS_KANASSAN, 1);

  /* DEMON */
  spell_level(SPELL_CURSE, CLASS_demon, 1);
  spell_level(SPELL_REMOVE_CURSE, CLASS_demon, 1);
  spell_level(SPELL_SPEAR, CLASS_demon, 1);
  spell_level(SPELL_ANIMATE_DEAD, CLASS_demon, 1);
  spell_level(SPELL_BARRIER, CLASS_demon, 1);
  spell_level(SPELL_DETECT_INVISIBILTY, CLASS_demon, 1);
  spell_level(SPELL_ZANZOKEN, CLASS_demon, 1);
  spell_level(SKILL_RESCUE, CLASS_demon, 1);
  spell_level(SKILL_SWEEP, CLASS_demon, 1);
  spell_level(SKILL_KNEE, CLASS_demon, 1);
  spell_level(SKILL_ELBOW, CLASS_demon, 1);
  spell_level(SKILL_ROUNDHOUSE, CLASS_demon, 1);
  spell_level(SKILL_FLY, CLASS_demon, 1);
  spell_level(SKILL_KAIOKEN, CLASS_demon, 1);
  spell_level(SPELL_HEAL, CLASS_demon, 1);
  spell_level(SPELL_SUMMON, CLASS_demon, 1);
  spell_level(SKILL_POWERSENSE, CLASS_demon, 1);
  spell_level(SPELL_WORD_OF_RECALL, CLASS_demon, 1);
  spell_level(SKILL_RENZO, CLASS_demon, 1);
  spell_level(SPELL_CREATE_FOOD, CLASS_demon, 1);
  spell_level(SKILL_KISHOT, CLASS_demon, 1);
  spell_level(SKILL_ZANELB, CLASS_demon, 1);

  /* TRUFFLE */
  spell_level(SPELL_BUILDNANO, CLASS_TRUFFLE, 1);
  spell_level(SPELL_BUILDSHIELD, CLASS_TRUFFLE, 1);
  spell_level(SPELL_GROUP_HEAL, CLASS_TRUFFLE, 1);
  spell_level(SPELL_GROUP_armor, CLASS_TRUFFLE, 1);
  spell_level(SPELL_DETECT_INVISIBILTY, CLASS_TRUFFLE, 1);
  spell_level(SPELL_ZANZOKEN, CLASS_TRUFFLE, 1);
  spell_level(SKILL_RESCUE, CLASS_TRUFFLE, 1);
  spell_level(SKILL_SWEEP, CLASS_TRUFFLE, 1);
  spell_level(SKILL_KNEE, CLASS_TRUFFLE, 1);
  spell_level(SKILL_ELBOW, CLASS_TRUFFLE, 1);
  spell_level(SKILL_ROUNDHOUSE, CLASS_TRUFFLE, 1);
  spell_level(SKILL_FLY, CLASS_TRUFFLE, 1);
  spell_level(SPELL_WORD_OF_RECALL, CLASS_TRUFFLE, 1);
  spell_level(SKILL_RENZO, CLASS_TRUFFLE, 1);
  spell_level(SPELL_CREATE_FOOD, CLASS_TRUFFLE, 1);
  spell_level(SKILL_KISHOT, CLASS_TRUFFLE, 1);
  spell_level(SKILL_ZANELB, CLASS_TRUFFLE, 1);
  spell_level(SKILL_POWERSENSE, CLASS_TRUFFLE, 1);
  

  /* MUTANT */
  spell_level(SPELL_MUTATE, CLASS_MUTANT, 1);
  spell_level(SPELL_BLADEMORPH, CLASS_MUTANT, 1);
  spell_level(SPELL_GROUP_HEAL, CLASS_MUTANT, 1);
  spell_level(SPELL_POISON, CLASS_MUTANT, 1);
  spell_level(SPELL_DETECT_INVISIBILTY, CLASS_MUTANT, 1);
  spell_level(SPELL_ZANZOKEN, CLASS_MUTANT, 1);
  spell_level(SKILL_RESCUE, CLASS_MUTANT, 1);
  spell_level(SKILL_SWEEP, CLASS_MUTANT, 1);
  spell_level(SKILL_KNEE, CLASS_MUTANT, 1);
  spell_level(SKILL_ELBOW, CLASS_MUTANT, 1);
  spell_level(SKILL_ROUNDHOUSE, CLASS_MUTANT, 1);
  spell_level(SKILL_FLY, CLASS_MUTANT, 1);
  spell_level(SPELL_WORD_OF_RECALL, CLASS_MUTANT, 1);
  spell_level(SKILL_RENZO, CLASS_MUTANT, 1);  
  spell_level(SPELL_CREATE_FOOD, CLASS_MUTANT, 1);
  spell_level(SKILL_KISHOT, CLASS_MUTANT, 1);
  spell_level(SKILL_ZANELB, CLASS_MUTANT, 1);
  spell_level(SKILL_POWERSENSE, CLASS_MUTANT, 1);

  /* TUGUIL */

  /* Half-Breed */
  spell_level(SPELL_DETECT_INVISIBILTY, CLASS_HALF_BREED, 1);
  spell_level(SPELL_ZANZOKEN, CLASS_HALF_BREED, 1);
  spell_level(SKILL_BURNINGATTACK, CLASS_HALF_BREED, 1);
  spell_level(SKILL_SEVENDRAGON, CLASS_HALF_BREED, 1);
  spell_level(SKILL_RESCUE, CLASS_HALF_BREED, 1);
  spell_level(SKILL_SENSE, CLASS_HALF_BREED, 1);
  spell_level(SPELL_BARRIER, CLASS_HALF_BREED, 1);
  spell_level(SKILL_SWEEP, CLASS_HALF_BREED, 1);
  spell_level(SKILL_KNEE, CLASS_HALF_BREED, 1);
  spell_level(SKILL_ELBOW, CLASS_HALF_BREED, 1);
  spell_level(SKILL_ROUNDHOUSE, CLASS_HALF_BREED, 1);
  spell_level(SKILL_FLY, CLASS_HALF_BREED, 1);
  spell_level(SPELL_HASSHUKEN, CLASS_HALF_BREED, 1);
  spell_level(SKILL_POWERSENSE, CLASS_HALF_BREED, 1);
  spell_level(SPELL_WORD_OF_RECALL, CLASS_HALF_BREED, 1);
  spell_level(SKILL_FINALFLASH, CLASS_HALF_BREED, 1);
  spell_level(SKILL_MASENKO, CLASS_HALF_BREED, 1);
  spell_level(SKILL_CHOUKAME, CLASS_HALF_BREED, 1);
  spell_level(SKILL_BIGBANG, CLASS_HALF_BREED, 1);
  spell_level(SKILL_KAMEHAMEHA, CLASS_HALF_BREED, 1);
  spell_level(SKILL_DISK, CLASS_HALF_BREED, 1);
  spell_level(SKILL_RENZO, CLASS_HALF_BREED, 1);
  spell_level(SPELL_CREATE_FOOD, CLASS_HALF_BREED, 1);
  spell_level(SKILL_KISHOT, CLASS_HALF_BREED, 1);
  spell_level(SKILL_KIKOHO, CLASS_HALF_BREED, 1);
  spell_level(SKILL_ZANELB, CLASS_HALF_BREED, 1);
}


/*
 * This is the exp given to implementors -- it must always be greater
 * than the exp required for immortality, plus at least 20,000 or so.
 */
#define EXP_MAX  9000000000

/* Function to return the exp required for each class/level */
long long level_exp(int chclass, long long level) {
	if (level > LVL_IMPL || level < 0) {
		log("SYSERR: Requesting exp for invalid level!");
		return 0;
	} else {
		return 2000 * level;
	}
}

/* 
 * KAIO titles of male characters.
 */
const char *title_male(int chclass, int level)
{
  if (level <= 0 || level > LVL_IMPL)
    return "the Man";
  if (level == LVL_IMPL)
    return "the Implementor";

  switch (chclass) {

    case CLASS_Human:
    switch (level) {
      case  1: return "the Human";
      case LVL_IMMORT: return "the Immortal Human";
      case LVL_GOD: return "the Avatar of Humans";
      case LVL_GRGOD: return "the God of Humans";
      default: return "the Human";
    }
    break;

    case CLASS_BIODROID:
    switch (level) {
      case  1: return "the Bio-android";
      case LVL_IMMORT: return "the Immortal Bio-android";
      case LVL_GOD: return "the Avatar of Bio-androids";
      case LVL_GRGOD: return "the God of Bio-androids";
      default: return "the Bio-android";
    }
    break;

    case CLASS_KONATSU:
    switch (level) {
      case  1: return "the Konatsu";
      case LVL_IMMORT: return "the Immortal Konatsu";
      case LVL_GOD: return "the Avatar of Konatsus";
      case LVL_GRGOD: return "the God of Konatsus";
      default: return "the Konatsu";
    }
    break;

  case CLASS_demon:
    switch (level) {
      case  1: return "the Demon";
      case LVL_IMMORT: return "the Immortal Demon";
      case LVL_GOD: return "the Avatar of Demons";
      case LVL_GRGOD: return "the God of Demons";
      default: return "the Demon";
    }
    break;
  case CLASS_TRUFFLE:
    switch (level) {
      case  1: return "the Truffle";
      case LVL_IMMORT: return "the Immortal Truffle";
      case LVL_GOD: return "the Avatar of Truffles";
      case LVL_GRGOD: return "the God of Truffles";
      default: return "the Truffle";
    }
    break;
  case CLASS_MUTANT:
    switch (level) {
      case  1: return "the Mutant";
      case LVL_IMMORT: return "the Immortal Mutant";
      case LVL_GOD: return "the Avatar of Mutant";
      case LVL_GRGOD: return "the God of Mutant";
      default: return "the Mutant";
    }
    break;
  case CLASS_KANASSAN:
    switch (level) {
      case  1: return "the Kanassan";
      case LVL_IMMORT: return "the Immortal Kanassan";
      case LVL_GOD: return "the Avatar of Kanassan";
      case LVL_GRGOD: return "the God of Kanassan";
      default: return "the Kanassan";
    }
    break;

    case CLASS_Namek:
    switch (level) {
      case  1: return "the Namek";
      case LVL_IMMORT: return "the Immortal Namek";
      case LVL_GOD: return "the Namek";
      case LVL_GRGOD: return "the God of Nameks";
      default: return "the Namek";
    }
    break;

    case CLASS_icer:
    switch (level) {
      case  1: return "the Icer";      
      case LVL_IMMORT: return "the Immortal Icers";
      case LVL_GOD: return "the Demi God of Icers";
      case LVL_GRGOD: return "the God of Icers";
      default: return "the Icer";
    }
    break;

    case CLASS_MAJIN:
    switch (level) {
      case  1: return "the Majin";      
      case LVL_IMMORT: return "the Immortal Majins";
      case LVL_GOD: return "the Demi God of Majins";
      case LVL_GRGOD: return "the God of Majins";
      default: return "the Majin";
    }
    break;
    
    case CLASS_ANDROID:
    switch (level) {
      case  1: return "the Android";      
      case LVL_IMMORT: return "the Immortal Android";
      case LVL_GOD: return "the Demi God of Android";
      case LVL_GRGOD: return "the God of Android";
      default: return "the Android";
    }
    break;
    
    case CLASS_KAI:
    switch (level) {
      case  1: return "the Kai";      
      case LVL_IMMORT: return "the Immortal Kai";
      case LVL_GOD: return "the Demi God of Kais";
      case LVL_GRGOD: return "the God of Kais";
      default: return "the Kai";
    }
    break;
    
    case CLASS_HALF_BREED:
    switch (level) {
      case  1: return "the Half-Breed";      
      case LVL_IMMORT: return "the Immortal Half-Breed";
      case LVL_GOD: return "the Demi God of Half-Breed";
      case LVL_GRGOD: return "the God of Half-Breed";
      default: return "the Half-Breed";
    }
    break;

    case CLASS_saiyan:
    switch(level) {
      case  1: return "the Saiyan";
      case LVL_IMMORT: return "the Immortal Saiyan";
      case LVL_GOD: return "the Saiyan";
      case LVL_GRGOD: return "the God of Saiyans";
      default: return "the Saiyan";
    }
    break;
  }

  /* KAIO title for classes which do not have titles defined */
  return "the Classless";
}


/* 
 * KAIO titles of female characters.
 */
const char *title_female(int chclass, int level)
{
  if (level <= 0 || level > LVL_IMPL)
    return "the Woman";
  if (level == LVL_IMPL)
    return "the Implementress";

  switch (chclass) {

    case CLASS_Human:
    switch (level) {
      case  1: return "the Human";
      case LVL_IMMORT: return "the Immortal Human";
      case LVL_GOD: return "the Human";
      case LVL_GRGOD: return "the Goddess of Humans";
      default: return "the Human";
    }
    break;

    case CLASS_MAJIN:
    switch (level) {
      case  1: return "the Majin";
      case LVL_IMMORT: return "the Immortal Majin";
      case LVL_GOD: return "the Human";
      case LVL_GRGOD: return "the Goddess of Majin";
      default: return "the Majin";
    }
    break;
    
    case CLASS_ANDROID:
    switch (level) {
      case  1: return "the Android";
      case LVL_IMMORT: return "the Immortal Android";
      case LVL_GOD: return "the Android";
      case LVL_GRGOD: return "the Goddess of Android";
      default: return "the Android";
    }
    break;

    case CLASS_KAI:
    switch (level) {
      case  1: return "the Kai";
      case LVL_IMMORT: return "the Immortal Kai";
      case LVL_GOD: return "the Kai";
      case LVL_GRGOD: return "the Goddess of Kai";
      default: return "the Kai";
    }
    break;
    
    case CLASS_HALF_BREED:
    switch (level) {
      case  1: return "the Half-Breed";
      case LVL_IMMORT: return "the Immortal Half-Breed";
      case LVL_GOD: return "the Android";
      case LVL_GRGOD: return "the Goddess of Half-Breeds";
      default: return "the Half=breed";
    }
    break;

    case CLASS_Namek:
    switch (level) {
      case  1: return "the Namek";
      case LVL_IMMORT: return "the Immortal Namek";
      case LVL_GOD: return "the Namek";
      case LVL_GRGOD: return "the Goddess of Nameks";
      default: return "the Namek";
    }
    break;

    case CLASS_icer:
    switch (level) {
      case  1: return "the Icer";
      case LVL_IMMORT: return "the Immortal Icer";
      case LVL_GOD: return "the Demi Goddess of Icers";
      case LVL_GRGOD: return "the Goddess of Icers";
      default: return "the icer";
    }
    break;

    case CLASS_saiyan:
    switch(level) {
      case  1: return "the Saiyan";
      case LVL_IMMORT: return "the Immortal Saiyan";
      case LVL_GOD: return "the Queen of Saiyan";
      case LVL_GRGOD: return "the Goddess of Saiyans";
      default: return "the saiyan";
    }
    break;
  }

  /* KAIO title for classes which do not have titles defined */
  return "the Classless";
}