#pragma once

#include "enum.h"

static inline species_skill_aptitude APT(species_type sp,
                                         skill_type sk,
                                         int aptitude)
{
    return species_skill_aptitude(sp, sk, aptitude);
}

static const species_skill_aptitude species_skill_aptitudes[] =
{
    // SP_HUMAN
    APT(SP_HUMAN,           SK_FIGHTING,        0),
    APT(SP_HUMAN,           SK_SHORT_BLADES,    0),
    APT(SP_HUMAN,           SK_LONG_BLADES,     0),
    APT(SP_HUMAN,           SK_AXES,            0),
    APT(SP_HUMAN,           SK_MACES_FLAILS,    0),
    APT(SP_HUMAN,           SK_POLEARMS,        0),
    APT(SP_HUMAN,           SK_STAVES,          0),
    APT(SP_HUMAN,           SK_SLINGS,          0),
    APT(SP_HUMAN,           SK_BOWS,            0),
    APT(SP_HUMAN,           SK_CROSSBOWS,       0),
    APT(SP_HUMAN,           SK_THROWING,        0),
    APT(SP_HUMAN,           SK_ARMOUR,          0),
    APT(SP_HUMAN,           SK_DODGING,         0),
    APT(SP_HUMAN,           SK_STEALTH,         1),
#if TAG_MAJOR_VERSION == 34
    APT(SP_HUMAN,           SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_HUMAN,           SK_SHIELDS,         0),
#if TAG_MAJOR_VERSION == 34
    APT(SP_HUMAN,           SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_HUMAN,           SK_UNARMED_COMBAT,  0),
    APT(SP_HUMAN,           SK_SPELLCASTING,   -1),
    APT(SP_HUMAN,           SK_CONJURATIONS,    0),
    APT(SP_HUMAN,           SK_HEXES,           0),
    APT(SP_HUMAN,           SK_CHARMS,          0),
    APT(SP_HUMAN,           SK_SUMMONINGS,      0),
    APT(SP_HUMAN,           SK_NECROMANCY,      0),
    APT(SP_HUMAN,           SK_TRANSLOCATIONS,  0),
    APT(SP_HUMAN,           SK_TRANSMUTATIONS,  0),
    APT(SP_HUMAN,           SK_FIRE_MAGIC,      0),
    APT(SP_HUMAN,           SK_ICE_MAGIC,       0),
    APT(SP_HUMAN,           SK_AIR_MAGIC,       0),
    APT(SP_HUMAN,           SK_EARTH_MAGIC,     0),
    APT(SP_HUMAN,           SK_POISON_MAGIC,    0),
    APT(SP_HUMAN,           SK_INVOCATIONS,     1),
    APT(SP_HUMAN,           SK_EVOCATIONS,      0),

#if TAG_MAJOR_VERSION == 34
    // SP_HIGH_ELF
    APT(SP_HIGH_ELF,        SK_FIGHTING,        0),
    APT(SP_HIGH_ELF,        SK_SHORT_BLADES,    2),
    APT(SP_HIGH_ELF,        SK_LONG_BLADES,     2),
    APT(SP_HIGH_ELF,        SK_AXES,           -2),
    APT(SP_HIGH_ELF,        SK_MACES_FLAILS,   -2),
    APT(SP_HIGH_ELF,        SK_POLEARMS,       -2),
    APT(SP_HIGH_ELF,        SK_STAVES,          0),
    APT(SP_HIGH_ELF,        SK_SLINGS,         -2),
    APT(SP_HIGH_ELF,        SK_BOWS,            3),
    APT(SP_HIGH_ELF,        SK_CROSSBOWS,       0),
    APT(SP_HIGH_ELF,        SK_THROWING,        0),
    APT(SP_HIGH_ELF,        SK_ARMOUR,         -1),
    APT(SP_HIGH_ELF,        SK_DODGING,         1),
    APT(SP_HIGH_ELF,        SK_STEALTH,         2),
    APT(SP_HIGH_ELF,        SK_STABBING,      UNUSABLE_SKILL),
    APT(SP_HIGH_ELF,        SK_SHIELDS,        -1),
    APT(SP_HIGH_ELF,        SK_TRAPS,         UNUSABLE_SKILL),
    APT(SP_HIGH_ELF,        SK_UNARMED_COMBAT, -2),
    APT(SP_HIGH_ELF,        SK_SPELLCASTING,    1),
    APT(SP_HIGH_ELF,        SK_CONJURATIONS,    1),
    APT(SP_HIGH_ELF,        SK_HEXES,           0),
    APT(SP_HIGH_ELF,        SK_CHARMS,          2),
    APT(SP_HIGH_ELF,        SK_SUMMONINGS,     -1),
    APT(SP_HIGH_ELF,        SK_NECROMANCY,     -2),
    APT(SP_HIGH_ELF,        SK_TRANSLOCATIONS,  1),
    APT(SP_HIGH_ELF,        SK_TRANSMUTATIONS,  1),
    APT(SP_HIGH_ELF,        SK_FIRE_MAGIC,      0),
    APT(SP_HIGH_ELF,        SK_ICE_MAGIC,       0),
    APT(SP_HIGH_ELF,        SK_AIR_MAGIC,       2),
    APT(SP_HIGH_ELF,        SK_EARTH_MAGIC,    -2),
    APT(SP_HIGH_ELF,        SK_POISON_MAGIC,   -2),
    APT(SP_HIGH_ELF,        SK_INVOCATIONS,     1),
    APT(SP_HIGH_ELF,        SK_EVOCATIONS,      0),
#endif

    // SP_DEEP_ELF
    APT(SP_DEEP_ELF,        SK_FIGHTING,       -2),
    APT(SP_DEEP_ELF,        SK_SHORT_BLADES,    0),
    APT(SP_DEEP_ELF,        SK_LONG_BLADES,    -1),
    APT(SP_DEEP_ELF,        SK_AXES,           -2),
    APT(SP_DEEP_ELF,        SK_MACES_FLAILS,   -3),
    APT(SP_DEEP_ELF,        SK_POLEARMS,       -3),
    APT(SP_DEEP_ELF,        SK_STAVES,          0),
    APT(SP_DEEP_ELF,        SK_SLINGS,         -2),
    APT(SP_DEEP_ELF,        SK_BOWS,            1),
    APT(SP_DEEP_ELF,        SK_CROSSBOWS,      -1),
    APT(SP_DEEP_ELF,        SK_THROWING,        0),
    APT(SP_DEEP_ELF,        SK_ARMOUR,         -2),
    APT(SP_DEEP_ELF,        SK_DODGING,         2),
    APT(SP_DEEP_ELF,        SK_STEALTH,         3),
#if TAG_MAJOR_VERSION == 34
    APT(SP_DEEP_ELF,        SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_DEEP_ELF,        SK_SHIELDS,        -2),
#if TAG_MAJOR_VERSION == 34
    APT(SP_DEEP_ELF,        SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_DEEP_ELF,        SK_UNARMED_COMBAT, -2),
    APT(SP_DEEP_ELF,        SK_SPELLCASTING,    3),
    APT(SP_DEEP_ELF,        SK_CONJURATIONS,    1),
    APT(SP_DEEP_ELF,        SK_HEXES,           3),
    APT(SP_DEEP_ELF,        SK_CHARMS,          4),
    APT(SP_DEEP_ELF,        SK_SUMMONINGS,      1),
    APT(SP_DEEP_ELF,        SK_NECROMANCY,      2),
    APT(SP_DEEP_ELF,        SK_TRANSLOCATIONS,  1),
    APT(SP_DEEP_ELF,        SK_TRANSMUTATIONS,  1),
    APT(SP_DEEP_ELF,        SK_FIRE_MAGIC,      1),
    APT(SP_DEEP_ELF,        SK_ICE_MAGIC,       1),
    APT(SP_DEEP_ELF,        SK_AIR_MAGIC,       0),
    APT(SP_DEEP_ELF,        SK_EARTH_MAGIC,     1),
    APT(SP_DEEP_ELF,        SK_POISON_MAGIC,    1),
    APT(SP_DEEP_ELF,        SK_INVOCATIONS,     1),
    APT(SP_DEEP_ELF,        SK_EVOCATIONS,      1),

#if TAG_MAJOR_VERSION == 34
    // SP_SLUDGE_ELF
    APT(SP_SLUDGE_ELF,      SK_FIGHTING,        1),
    APT(SP_SLUDGE_ELF,      SK_SHORT_BLADES,   -1),
    APT(SP_SLUDGE_ELF,      SK_LONG_BLADES,    -1),
    APT(SP_SLUDGE_ELF,      SK_AXES,           -2),
    APT(SP_SLUDGE_ELF,      SK_MACES_FLAILS,   -2),
    APT(SP_SLUDGE_ELF,      SK_POLEARMS,       -2),
    APT(SP_SLUDGE_ELF,      SK_STAVES,          0),
    APT(SP_SLUDGE_ELF,      SK_SLINGS,          0),
    APT(SP_SLUDGE_ELF,      SK_BOWS,            0),
    APT(SP_SLUDGE_ELF,      SK_CROSSBOWS,       0),
    APT(SP_SLUDGE_ELF,      SK_THROWING,        1),
    APT(SP_SLUDGE_ELF,      SK_ARMOUR,         -2),
    APT(SP_SLUDGE_ELF,      SK_DODGING,         2),
    APT(SP_SLUDGE_ELF,      SK_STEALTH,         2),
    APT(SP_SLUDGE_ELF,      SK_STABBING,      UNUSABLE_SKILL),
    APT(SP_SLUDGE_ELF,      SK_SHIELDS,        -2),
    APT(SP_SLUDGE_ELF,      SK_TRAPS,         UNUSABLE_SKILL),
    APT(SP_SLUDGE_ELF,      SK_UNARMED_COMBAT,  1),
    APT(SP_SLUDGE_ELF,      SK_SPELLCASTING,    1),
    APT(SP_SLUDGE_ELF,      SK_CONJURATIONS,   -2),
    APT(SP_SLUDGE_ELF,      SK_HEXES,           0),
    APT(SP_SLUDGE_ELF,      SK_CHARMS,         -2),
    APT(SP_SLUDGE_ELF,      SK_SUMMONINGS,      1),
    APT(SP_SLUDGE_ELF,      SK_NECROMANCY,      1),
    APT(SP_SLUDGE_ELF,      SK_TRANSLOCATIONS,  0),
    APT(SP_SLUDGE_ELF,      SK_TRANSMUTATIONS,  3),
    APT(SP_SLUDGE_ELF,      SK_FIRE_MAGIC,      1),
    APT(SP_SLUDGE_ELF,      SK_ICE_MAGIC,       1),
    APT(SP_SLUDGE_ELF,      SK_AIR_MAGIC,       1),
    APT(SP_SLUDGE_ELF,      SK_EARTH_MAGIC,     1),
    APT(SP_SLUDGE_ELF,      SK_POISON_MAGIC,    1),
    APT(SP_SLUDGE_ELF,      SK_INVOCATIONS,     1),
    APT(SP_SLUDGE_ELF,      SK_EVOCATIONS,      0),
#endif

    // SP_HALFLING
    APT(SP_HALFLING,        SK_FIGHTING,       -1),
    APT(SP_HALFLING,        SK_SHORT_BLADES,    2),
    APT(SP_HALFLING,        SK_LONG_BLADES,     0),
    APT(SP_HALFLING,        SK_AXES,            0),
    APT(SP_HALFLING,        SK_MACES_FLAILS,   -1),
    APT(SP_HALFLING,        SK_POLEARMS,       -1),
    APT(SP_HALFLING,        SK_STAVES,         -2),
    APT(SP_HALFLING,        SK_SLINGS,          4),
    APT(SP_HALFLING,        SK_BOWS,            1),
    APT(SP_HALFLING,        SK_CROSSBOWS,       1),
    APT(SP_HALFLING,        SK_THROWING,        0),
    APT(SP_HALFLING,        SK_ARMOUR,          1),
    APT(SP_HALFLING,        SK_DODGING,         1),
    APT(SP_HALFLING,        SK_STEALTH,         2),
#if TAG_MAJOR_VERSION == 34
    APT(SP_HALFLING,        SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_HALFLING,        SK_SHIELDS,         1),
#if TAG_MAJOR_VERSION == 34
    APT(SP_HALFLING,        SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_HALFLING,        SK_UNARMED_COMBAT, -2),
    APT(SP_HALFLING,        SK_SPELLCASTING,   -3),
    APT(SP_HALFLING,        SK_CONJURATIONS,   -2),
    APT(SP_HALFLING,        SK_HEXES,          -2),
    APT(SP_HALFLING,        SK_CHARMS,          1),
    APT(SP_HALFLING,        SK_SUMMONINGS,     -2),
    APT(SP_HALFLING,        SK_NECROMANCY,     -2),
    APT(SP_HALFLING,        SK_TRANSLOCATIONS,  1),
    APT(SP_HALFLING,        SK_TRANSMUTATIONS, -4),
    APT(SP_HALFLING,        SK_FIRE_MAGIC,      0),
    APT(SP_HALFLING,        SK_ICE_MAGIC,       0),
    APT(SP_HALFLING,        SK_AIR_MAGIC,       0),
    APT(SP_HALFLING,        SK_EARTH_MAGIC,     0),
    APT(SP_HALFLING,        SK_POISON_MAGIC,    0),
    APT(SP_HALFLING,        SK_INVOCATIONS,     1),
    APT(SP_HALFLING,        SK_EVOCATIONS,      0),

    // SP_HILL_ORC
    APT(SP_HILL_ORC,        SK_FIGHTING,        2),
    APT(SP_HILL_ORC,        SK_SHORT_BLADES,    0),
    APT(SP_HILL_ORC,        SK_LONG_BLADES,     1),
    APT(SP_HILL_ORC,        SK_AXES,            3),
    APT(SP_HILL_ORC,        SK_MACES_FLAILS,    1),
    APT(SP_HILL_ORC,        SK_POLEARMS,        1),
    APT(SP_HILL_ORC,        SK_STAVES,         -1),
    APT(SP_HILL_ORC,        SK_SLINGS,         -1),
    APT(SP_HILL_ORC,        SK_BOWS,           -1),
    APT(SP_HILL_ORC,        SK_CROSSBOWS,      -1),
    APT(SP_HILL_ORC,        SK_THROWING,       -1),
    APT(SP_HILL_ORC,        SK_ARMOUR,          1),
    APT(SP_HILL_ORC,        SK_DODGING,        -2),
    APT(SP_HILL_ORC,        SK_STEALTH,        -1),
#if TAG_MAJOR_VERSION == 34
    APT(SP_HILL_ORC,        SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_HILL_ORC,        SK_SHIELDS,         1),
#if TAG_MAJOR_VERSION == 34
    APT(SP_HILL_ORC,        SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_HILL_ORC,        SK_UNARMED_COMBAT,  1),
    APT(SP_HILL_ORC,        SK_SPELLCASTING,   -3),
    APT(SP_HILL_ORC,        SK_CONJURATIONS,    0),
    APT(SP_HILL_ORC,        SK_HEXES,           0),
    APT(SP_HILL_ORC,        SK_CHARMS,         -1),
    APT(SP_HILL_ORC,        SK_SUMMONINGS,      0),
    APT(SP_HILL_ORC,        SK_NECROMANCY,      0),
    APT(SP_HILL_ORC,        SK_TRANSLOCATIONS, -2),
    APT(SP_HILL_ORC,        SK_TRANSMUTATIONS, -3),
    APT(SP_HILL_ORC,        SK_FIRE_MAGIC,      1),
    APT(SP_HILL_ORC,        SK_ICE_MAGIC,      -1),
    APT(SP_HILL_ORC,        SK_AIR_MAGIC,      -2),
    APT(SP_HILL_ORC,        SK_EARTH_MAGIC,     0),
    APT(SP_HILL_ORC,        SK_POISON_MAGIC,   -1),
    APT(SP_HILL_ORC,        SK_INVOCATIONS,     3),
    APT(SP_HILL_ORC,        SK_EVOCATIONS,      0),

    // SP_KOBOLD
    APT(SP_KOBOLD,          SK_FIGHTING,        1),
    APT(SP_KOBOLD,          SK_SHORT_BLADES,    3),
    APT(SP_KOBOLD,          SK_LONG_BLADES,    -2),
    APT(SP_KOBOLD,          SK_AXES,           -2),
    APT(SP_KOBOLD,          SK_MACES_FLAILS,   -1),
    APT(SP_KOBOLD,          SK_POLEARMS,       -2),
    APT(SP_KOBOLD,          SK_STAVES,         -1),
    APT(SP_KOBOLD,          SK_SLINGS,          0),
    APT(SP_KOBOLD,          SK_BOWS,            0),
    APT(SP_KOBOLD,          SK_CROSSBOWS,       2),
    APT(SP_KOBOLD,          SK_THROWING,        1),
    APT(SP_KOBOLD,          SK_ARMOUR,         -2),
    APT(SP_KOBOLD,          SK_DODGING,         2),
    APT(SP_KOBOLD,          SK_STEALTH,         4),
#if TAG_MAJOR_VERSION == 34
    APT(SP_KOBOLD,          SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_KOBOLD,          SK_SHIELDS,        -2),
#if TAG_MAJOR_VERSION == 34
    APT(SP_KOBOLD,          SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_KOBOLD,          SK_UNARMED_COMBAT,  0),
    APT(SP_KOBOLD,          SK_SPELLCASTING,    0),
    APT(SP_KOBOLD,          SK_CONJURATIONS,    0),
    APT(SP_KOBOLD,          SK_HEXES,           0),
    APT(SP_KOBOLD,          SK_CHARMS,         -2),
    APT(SP_KOBOLD,          SK_SUMMONINGS,      0),
    APT(SP_KOBOLD,          SK_NECROMANCY,      0),
    APT(SP_KOBOLD,          SK_TRANSLOCATIONS,  0),
    APT(SP_KOBOLD,          SK_TRANSMUTATIONS,  0),
    APT(SP_KOBOLD,          SK_FIRE_MAGIC,      0),
    APT(SP_KOBOLD,          SK_ICE_MAGIC,       0),
    APT(SP_KOBOLD,          SK_AIR_MAGIC,       0),
    APT(SP_KOBOLD,          SK_EARTH_MAGIC,     0),
    APT(SP_KOBOLD,          SK_POISON_MAGIC,    0),
    APT(SP_KOBOLD,          SK_INVOCATIONS,     1),
    APT(SP_KOBOLD,          SK_EVOCATIONS,      2),

    // SP_MUMMY
    APT(SP_MUMMY,           SK_FIGHTING,        0),
    APT(SP_MUMMY,           SK_SHORT_BLADES,   -2),
    APT(SP_MUMMY,           SK_LONG_BLADES,    -2),
    APT(SP_MUMMY,           SK_AXES,           -2),
    APT(SP_MUMMY,           SK_MACES_FLAILS,   -2),
    APT(SP_MUMMY,           SK_POLEARMS,       -2),
    APT(SP_MUMMY,           SK_STAVES,         -2),
    APT(SP_MUMMY,           SK_SLINGS,         -2),
    APT(SP_MUMMY,           SK_BOWS,           -2),
    APT(SP_MUMMY,           SK_CROSSBOWS,      -2),
    APT(SP_MUMMY,           SK_THROWING,       -2),
    APT(SP_MUMMY,           SK_ARMOUR,         -2),
    APT(SP_MUMMY,           SK_DODGING,        -2),
    APT(SP_MUMMY,           SK_STEALTH,        -1),
#if TAG_MAJOR_VERSION == 34
    APT(SP_MUMMY,           SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_MUMMY,           SK_SHIELDS,        -2),
#if TAG_MAJOR_VERSION == 34
    APT(SP_MUMMY,           SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_MUMMY,           SK_UNARMED_COMBAT, -2),
    APT(SP_MUMMY,           SK_SPELLCASTING,    2),
    APT(SP_MUMMY,           SK_CONJURATIONS,   -2),
    APT(SP_MUMMY,           SK_HEXES,          -1),
    APT(SP_MUMMY,           SK_CHARMS,         -2),
    APT(SP_MUMMY,           SK_SUMMONINGS,     -2),
    APT(SP_MUMMY,           SK_NECROMANCY,      0),
    APT(SP_MUMMY,           SK_TRANSLOCATIONS, -2),
    APT(SP_MUMMY,           SK_TRANSMUTATIONS, -2),
    APT(SP_MUMMY,           SK_FIRE_MAGIC,     -2),
    APT(SP_MUMMY,           SK_ICE_MAGIC,      -2),
    APT(SP_MUMMY,           SK_AIR_MAGIC,      -2),
    APT(SP_MUMMY,           SK_EARTH_MAGIC,    -2),
    APT(SP_MUMMY,           SK_POISON_MAGIC,   -2),
    APT(SP_MUMMY,           SK_INVOCATIONS,    -1),
    APT(SP_MUMMY,           SK_EVOCATIONS,     -2),

    // SP_NAGA
    APT(SP_NAGA,            SK_FIGHTING,        0),
    APT(SP_NAGA,            SK_SHORT_BLADES,    0),
    APT(SP_NAGA,            SK_LONG_BLADES,     0),
    APT(SP_NAGA,            SK_AXES,            0),
    APT(SP_NAGA,            SK_MACES_FLAILS,    0),
    APT(SP_NAGA,            SK_POLEARMS,        0),
    APT(SP_NAGA,            SK_STAVES,          0),
    APT(SP_NAGA,            SK_SLINGS,         -1),
    APT(SP_NAGA,            SK_BOWS,           -1),
    APT(SP_NAGA,            SK_CROSSBOWS,      -1),
    APT(SP_NAGA,            SK_THROWING,       -1),
    APT(SP_NAGA,            SK_ARMOUR,         -2),
    APT(SP_NAGA,            SK_DODGING,        -2),
    APT(SP_NAGA,            SK_STEALTH,         5),
#if TAG_MAJOR_VERSION == 34
    APT(SP_NAGA,            SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_NAGA,            SK_SHIELDS,        -2),
#if TAG_MAJOR_VERSION == 34
    APT(SP_NAGA,            SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_NAGA,            SK_UNARMED_COMBAT,  0),
    APT(SP_NAGA,            SK_SPELLCASTING,   -1),
    APT(SP_NAGA,            SK_CONJURATIONS,    0),
    APT(SP_NAGA,            SK_HEXES,           0),
    APT(SP_NAGA,            SK_CHARMS,          0),
    APT(SP_NAGA,            SK_SUMMONINGS,      0),
    APT(SP_NAGA,            SK_NECROMANCY,      0),
    APT(SP_NAGA,            SK_TRANSLOCATIONS,  0),
    APT(SP_NAGA,            SK_TRANSMUTATIONS,  0),
    APT(SP_NAGA,            SK_FIRE_MAGIC,      0),
    APT(SP_NAGA,            SK_ICE_MAGIC,       0),
    APT(SP_NAGA,            SK_AIR_MAGIC,       0),
    APT(SP_NAGA,            SK_EARTH_MAGIC,     0),
    APT(SP_NAGA,            SK_POISON_MAGIC,    3),
    APT(SP_NAGA,            SK_INVOCATIONS,     1),
    APT(SP_NAGA,            SK_EVOCATIONS,      0),

    // SP_OGRE
    APT(SP_OGRE,            SK_FIGHTING,        3),
    APT(SP_OGRE,            SK_SHORT_BLADES,   -1),
    APT(SP_OGRE,            SK_LONG_BLADES,    -1),
    APT(SP_OGRE,            SK_AXES,            0),
    APT(SP_OGRE,            SK_MACES_FLAILS,   -1),
    APT(SP_OGRE,            SK_POLEARMS,        0),
    APT(SP_OGRE,            SK_STAVES,          0),
    APT(SP_OGRE,            SK_SLINGS,         -3),
    APT(SP_OGRE,            SK_BOWS,           -3),
    APT(SP_OGRE,            SK_CROSSBOWS,      -3),
    APT(SP_OGRE,            SK_THROWING,        0),
    APT(SP_OGRE,            SK_ARMOUR,         -2),
    APT(SP_OGRE,            SK_DODGING,        -1),
    APT(SP_OGRE,            SK_STEALTH,        -2),
#if TAG_MAJOR_VERSION == 34
    APT(SP_OGRE,            SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_OGRE,            SK_SHIELDS,        -1),
#if TAG_MAJOR_VERSION == 34
    APT(SP_OGRE,            SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_OGRE,            SK_UNARMED_COMBAT, -1),
    APT(SP_OGRE,            SK_SPELLCASTING,    1),
    APT(SP_OGRE,            SK_CONJURATIONS,   -1),
    APT(SP_OGRE,            SK_HEXES,          -1),
    APT(SP_OGRE,            SK_CHARMS,         -1),
    APT(SP_OGRE,            SK_SUMMONINGS,     -1),
    APT(SP_OGRE,            SK_NECROMANCY,     -1),
    APT(SP_OGRE,            SK_TRANSLOCATIONS, -1),
    APT(SP_OGRE,            SK_TRANSMUTATIONS, -1),
    APT(SP_OGRE,            SK_FIRE_MAGIC,     -1),
    APT(SP_OGRE,            SK_ICE_MAGIC,      -1),
    APT(SP_OGRE,            SK_AIR_MAGIC,      -1),
    APT(SP_OGRE,            SK_EARTH_MAGIC,    -1),
    APT(SP_OGRE,            SK_POISON_MAGIC,   -1),
    APT(SP_OGRE,            SK_INVOCATIONS,     1),
    APT(SP_OGRE,            SK_EVOCATIONS,     -2),

    // SP_TROLL
    APT(SP_TROLL,           SK_FIGHTING,       -2),
    APT(SP_TROLL,           SK_SHORT_BLADES,   -2),
    APT(SP_TROLL,           SK_LONG_BLADES,    -2),
    APT(SP_TROLL,           SK_AXES,           -2),
    APT(SP_TROLL,           SK_MACES_FLAILS,   -1),
    APT(SP_TROLL,           SK_POLEARMS,       -2),
    APT(SP_TROLL,           SK_STAVES,         -2),
    APT(SP_TROLL,           SK_SLINGS,         -4),
    APT(SP_TROLL,           SK_BOWS,           -4),
    APT(SP_TROLL,           SK_CROSSBOWS,      -4),
    APT(SP_TROLL,           SK_THROWING,       -1),
    APT(SP_TROLL,           SK_ARMOUR,         -2),
    APT(SP_TROLL,           SK_DODGING,        -2),
    APT(SP_TROLL,           SK_STEALTH,        -5),
#if TAG_MAJOR_VERSION == 34
    APT(SP_TROLL,           SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_TROLL,           SK_SHIELDS,        -2),
#if TAG_MAJOR_VERSION == 34
    APT(SP_TROLL,           SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_TROLL,           SK_UNARMED_COMBAT,  0),
    APT(SP_TROLL,           SK_SPELLCASTING,   -5),
    APT(SP_TROLL,           SK_CONJURATIONS,   -3),
    APT(SP_TROLL,           SK_HEXES,          -4),
    APT(SP_TROLL,           SK_CHARMS,         -4),
    APT(SP_TROLL,           SK_SUMMONINGS,     -3),
    APT(SP_TROLL,           SK_NECROMANCY,     -2),
    APT(SP_TROLL,           SK_TRANSLOCATIONS, -3),
    APT(SP_TROLL,           SK_TRANSMUTATIONS, -3),
    APT(SP_TROLL,           SK_FIRE_MAGIC,     -3),
    APT(SP_TROLL,           SK_ICE_MAGIC,      -3),
    APT(SP_TROLL,           SK_AIR_MAGIC,      -4),
    APT(SP_TROLL,           SK_EARTH_MAGIC,    -1),
    APT(SP_TROLL,           SK_POISON_MAGIC,   -3),
    APT(SP_TROLL,           SK_INVOCATIONS,    -1),
    APT(SP_TROLL,           SK_EVOCATIONS,     -3),

    // SP_RED_DRACONIAN
    APT(SP_RED_DRACONIAN,   SK_FIGHTING,        1),
    APT(SP_RED_DRACONIAN,   SK_SHORT_BLADES,    0),
    APT(SP_RED_DRACONIAN,   SK_LONG_BLADES,     0),
    APT(SP_RED_DRACONIAN,   SK_AXES,            0),
    APT(SP_RED_DRACONIAN,   SK_MACES_FLAILS,    0),
    APT(SP_RED_DRACONIAN,   SK_POLEARMS,        0),
    APT(SP_RED_DRACONIAN,   SK_STAVES,          0),
    APT(SP_RED_DRACONIAN,   SK_SLINGS,         -1),
    APT(SP_RED_DRACONIAN,   SK_BOWS,           -1),
    APT(SP_RED_DRACONIAN,   SK_CROSSBOWS,      -1),
    APT(SP_RED_DRACONIAN,   SK_THROWING,       -1),
    APT(SP_RED_DRACONIAN,   SK_ARMOUR,        UNUSABLE_SKILL),
    APT(SP_RED_DRACONIAN,   SK_DODGING,        -1),
    APT(SP_RED_DRACONIAN,   SK_STEALTH,         0),
#if TAG_MAJOR_VERSION == 34
    APT(SP_RED_DRACONIAN,   SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_RED_DRACONIAN,   SK_SHIELDS,         0),
#if TAG_MAJOR_VERSION == 34
    APT(SP_RED_DRACONIAN,   SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_RED_DRACONIAN,   SK_UNARMED_COMBAT,  0),
    APT(SP_RED_DRACONIAN,   SK_SPELLCASTING,   -1),
    APT(SP_RED_DRACONIAN,   SK_CONJURATIONS,    0),
    APT(SP_RED_DRACONIAN,   SK_HEXES,          -1),
    APT(SP_RED_DRACONIAN,   SK_CHARMS,         -1),
    APT(SP_RED_DRACONIAN,   SK_SUMMONINGS,      0),
    APT(SP_RED_DRACONIAN,   SK_NECROMANCY,      0),
    APT(SP_RED_DRACONIAN,   SK_TRANSLOCATIONS,  0),
    APT(SP_RED_DRACONIAN,   SK_TRANSMUTATIONS,  0),
    APT(SP_RED_DRACONIAN,   SK_FIRE_MAGIC,      2),
    APT(SP_RED_DRACONIAN,   SK_ICE_MAGIC,      -2),
    APT(SP_RED_DRACONIAN,   SK_AIR_MAGIC,       0),
    APT(SP_RED_DRACONIAN,   SK_EARTH_MAGIC,     0),
    APT(SP_RED_DRACONIAN,   SK_POISON_MAGIC,    0),
    APT(SP_RED_DRACONIAN,   SK_INVOCATIONS,     1),
    APT(SP_RED_DRACONIAN,   SK_EVOCATIONS,      0),

    // SP_WHITE_DRACONIAN
    APT(SP_WHITE_DRACONIAN, SK_FIGHTING,        1),
    APT(SP_WHITE_DRACONIAN, SK_SHORT_BLADES,    0),
    APT(SP_WHITE_DRACONIAN, SK_LONG_BLADES,     0),
    APT(SP_WHITE_DRACONIAN, SK_AXES,            0),
    APT(SP_WHITE_DRACONIAN, SK_MACES_FLAILS,    0),
    APT(SP_WHITE_DRACONIAN, SK_POLEARMS,        0),
    APT(SP_WHITE_DRACONIAN, SK_STAVES,          0),
    APT(SP_WHITE_DRACONIAN, SK_SLINGS,         -1),
    APT(SP_WHITE_DRACONIAN, SK_BOWS,           -1),
    APT(SP_WHITE_DRACONIAN, SK_CROSSBOWS,      -1),
    APT(SP_WHITE_DRACONIAN, SK_THROWING,       -1),
    APT(SP_WHITE_DRACONIAN, SK_ARMOUR,        UNUSABLE_SKILL),
    APT(SP_WHITE_DRACONIAN, SK_DODGING,        -1),
    APT(SP_WHITE_DRACONIAN, SK_STEALTH,         0),
#if TAG_MAJOR_VERSION == 34
    APT(SP_WHITE_DRACONIAN, SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_WHITE_DRACONIAN, SK_SHIELDS,         0),
#if TAG_MAJOR_VERSION == 34
    APT(SP_WHITE_DRACONIAN, SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_WHITE_DRACONIAN, SK_UNARMED_COMBAT,  0),
    APT(SP_WHITE_DRACONIAN, SK_SPELLCASTING,   -1),
    APT(SP_WHITE_DRACONIAN, SK_CONJURATIONS,    0),
    APT(SP_WHITE_DRACONIAN, SK_HEXES,          -1),
    APT(SP_WHITE_DRACONIAN, SK_CHARMS,         -1),
    APT(SP_WHITE_DRACONIAN, SK_SUMMONINGS,      0),
    APT(SP_WHITE_DRACONIAN, SK_NECROMANCY,      0),
    APT(SP_WHITE_DRACONIAN, SK_TRANSLOCATIONS,  0),
    APT(SP_WHITE_DRACONIAN, SK_TRANSMUTATIONS,  0),
    APT(SP_WHITE_DRACONIAN, SK_FIRE_MAGIC,     -2),
    APT(SP_WHITE_DRACONIAN, SK_ICE_MAGIC,       2),
    APT(SP_WHITE_DRACONIAN, SK_AIR_MAGIC,       0),
    APT(SP_WHITE_DRACONIAN, SK_EARTH_MAGIC,     0),
    APT(SP_WHITE_DRACONIAN, SK_POISON_MAGIC,    0),
    APT(SP_WHITE_DRACONIAN, SK_INVOCATIONS,     1),
    APT(SP_WHITE_DRACONIAN, SK_EVOCATIONS,      0),

    // SP_GREEN_DRACONIAN
    APT(SP_GREEN_DRACONIAN, SK_FIGHTING,        1),
    APT(SP_GREEN_DRACONIAN, SK_SHORT_BLADES,    0),
    APT(SP_GREEN_DRACONIAN, SK_LONG_BLADES,     0),
    APT(SP_GREEN_DRACONIAN, SK_AXES,            0),
    APT(SP_GREEN_DRACONIAN, SK_MACES_FLAILS,    0),
    APT(SP_GREEN_DRACONIAN, SK_POLEARMS,        0),
    APT(SP_GREEN_DRACONIAN, SK_STAVES,          0),
    APT(SP_GREEN_DRACONIAN, SK_SLINGS,         -1),
    APT(SP_GREEN_DRACONIAN, SK_BOWS,           -1),
    APT(SP_GREEN_DRACONIAN, SK_CROSSBOWS,      -1),
    APT(SP_GREEN_DRACONIAN, SK_THROWING,       -1),
    APT(SP_GREEN_DRACONIAN, SK_ARMOUR,        UNUSABLE_SKILL),
    APT(SP_GREEN_DRACONIAN, SK_DODGING,        -1),
    APT(SP_GREEN_DRACONIAN, SK_STEALTH,         0),
#if TAG_MAJOR_VERSION == 34
    APT(SP_GREEN_DRACONIAN, SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_GREEN_DRACONIAN, SK_SHIELDS,         0),
#if TAG_MAJOR_VERSION == 34
    APT(SP_GREEN_DRACONIAN, SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_GREEN_DRACONIAN, SK_UNARMED_COMBAT,  0),
    APT(SP_GREEN_DRACONIAN, SK_SPELLCASTING,   -1),
    APT(SP_GREEN_DRACONIAN, SK_CONJURATIONS,    0),
    APT(SP_GREEN_DRACONIAN, SK_HEXES,          -1),
    APT(SP_GREEN_DRACONIAN, SK_CHARMS,         -1),
    APT(SP_GREEN_DRACONIAN, SK_SUMMONINGS,      0),
    APT(SP_GREEN_DRACONIAN, SK_NECROMANCY,      0),
    APT(SP_GREEN_DRACONIAN, SK_TRANSLOCATIONS,  0),
    APT(SP_GREEN_DRACONIAN, SK_TRANSMUTATIONS,  0),
    APT(SP_GREEN_DRACONIAN, SK_FIRE_MAGIC,      0),
    APT(SP_GREEN_DRACONIAN, SK_ICE_MAGIC,       0),
    APT(SP_GREEN_DRACONIAN, SK_AIR_MAGIC,       0),
    APT(SP_GREEN_DRACONIAN, SK_EARTH_MAGIC,     0),
    APT(SP_GREEN_DRACONIAN, SK_POISON_MAGIC,    2),
    APT(SP_GREEN_DRACONIAN, SK_INVOCATIONS,     1),
    APT(SP_GREEN_DRACONIAN, SK_EVOCATIONS,      0),

    // SP_YELLOW_DRACONIAN
    APT(SP_YELLOW_DRACONIAN,SK_FIGHTING,        1),
    APT(SP_YELLOW_DRACONIAN,SK_SHORT_BLADES,    0),
    APT(SP_YELLOW_DRACONIAN,SK_LONG_BLADES,     0),
    APT(SP_YELLOW_DRACONIAN,SK_AXES,            0),
    APT(SP_YELLOW_DRACONIAN,SK_MACES_FLAILS,    0),
    APT(SP_YELLOW_DRACONIAN,SK_POLEARMS,        0),
    APT(SP_YELLOW_DRACONIAN,SK_STAVES,          0),
    APT(SP_YELLOW_DRACONIAN,SK_SLINGS,         -1),
    APT(SP_YELLOW_DRACONIAN,SK_BOWS,           -1),
    APT(SP_YELLOW_DRACONIAN,SK_CROSSBOWS,      -1),
    APT(SP_YELLOW_DRACONIAN,SK_THROWING,       -1),
    APT(SP_YELLOW_DRACONIAN,SK_ARMOUR,        UNUSABLE_SKILL),
    APT(SP_YELLOW_DRACONIAN,SK_DODGING,        -1),
    APT(SP_YELLOW_DRACONIAN,SK_STEALTH,         0),
#if TAG_MAJOR_VERSION == 34
    APT(SP_YELLOW_DRACONIAN,SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_YELLOW_DRACONIAN,SK_SHIELDS,         0),
#if TAG_MAJOR_VERSION == 34
    APT(SP_YELLOW_DRACONIAN,SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_YELLOW_DRACONIAN,SK_UNARMED_COMBAT,  0),
    APT(SP_YELLOW_DRACONIAN,SK_SPELLCASTING,   -1),
    APT(SP_YELLOW_DRACONIAN,SK_CONJURATIONS,    0),
    APT(SP_YELLOW_DRACONIAN,SK_HEXES,          -1),
    APT(SP_YELLOW_DRACONIAN,SK_CHARMS,         -1),
    APT(SP_YELLOW_DRACONIAN,SK_SUMMONINGS,      0),
    APT(SP_YELLOW_DRACONIAN,SK_NECROMANCY,      0),
    APT(SP_YELLOW_DRACONIAN,SK_TRANSLOCATIONS,  0),
    APT(SP_YELLOW_DRACONIAN,SK_TRANSMUTATIONS,  0),
    APT(SP_YELLOW_DRACONIAN,SK_FIRE_MAGIC,      0),
    APT(SP_YELLOW_DRACONIAN,SK_ICE_MAGIC,       0),
    APT(SP_YELLOW_DRACONIAN,SK_AIR_MAGIC,       0),
    APT(SP_YELLOW_DRACONIAN,SK_EARTH_MAGIC,     0),
    APT(SP_YELLOW_DRACONIAN,SK_POISON_MAGIC,    0),
    APT(SP_YELLOW_DRACONIAN,SK_INVOCATIONS,     1),
    APT(SP_YELLOW_DRACONIAN,SK_EVOCATIONS,      0),

    // SP_GREY_DRACONIAN
    APT(SP_GREY_DRACONIAN,  SK_FIGHTING,        1),
    APT(SP_GREY_DRACONIAN,  SK_SHORT_BLADES,    0),
    APT(SP_GREY_DRACONIAN,  SK_LONG_BLADES,     0),
    APT(SP_GREY_DRACONIAN,  SK_AXES,            0),
    APT(SP_GREY_DRACONIAN,  SK_MACES_FLAILS,    0),
    APT(SP_GREY_DRACONIAN,  SK_POLEARMS,        0),
    APT(SP_GREY_DRACONIAN,  SK_STAVES,          0),
    APT(SP_GREY_DRACONIAN,  SK_SLINGS,         -1),
    APT(SP_GREY_DRACONIAN,  SK_BOWS,           -1),
    APT(SP_GREY_DRACONIAN,  SK_CROSSBOWS,      -1),
    APT(SP_GREY_DRACONIAN,  SK_THROWING,       -1),
    APT(SP_GREY_DRACONIAN,  SK_ARMOUR,        UNUSABLE_SKILL),
    APT(SP_GREY_DRACONIAN,  SK_DODGING,        -1),
    APT(SP_GREY_DRACONIAN,  SK_STEALTH,         0),
#if TAG_MAJOR_VERSION == 34
    APT(SP_GREY_DRACONIAN,  SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_GREY_DRACONIAN,  SK_SHIELDS,         0),
#if TAG_MAJOR_VERSION == 34
    APT(SP_GREY_DRACONIAN,  SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_GREY_DRACONIAN,  SK_UNARMED_COMBAT,  0),
    APT(SP_GREY_DRACONIAN,  SK_SPELLCASTING,   -1),
    APT(SP_GREY_DRACONIAN,  SK_CONJURATIONS,    0),
    APT(SP_GREY_DRACONIAN,  SK_HEXES,          -1),
    APT(SP_GREY_DRACONIAN,  SK_CHARMS,         -1),
    APT(SP_GREY_DRACONIAN,  SK_SUMMONINGS,      0),
    APT(SP_GREY_DRACONIAN,  SK_NECROMANCY,      0),
    APT(SP_GREY_DRACONIAN,  SK_TRANSLOCATIONS,  0),
    APT(SP_GREY_DRACONIAN,  SK_TRANSMUTATIONS,  0),
    APT(SP_GREY_DRACONIAN,  SK_FIRE_MAGIC,      0),
    APT(SP_GREY_DRACONIAN,  SK_ICE_MAGIC,       0),
    APT(SP_GREY_DRACONIAN,  SK_AIR_MAGIC,      -2),
    APT(SP_GREY_DRACONIAN,  SK_EARTH_MAGIC,     2),
    APT(SP_GREY_DRACONIAN,  SK_POISON_MAGIC,    0),
    APT(SP_GREY_DRACONIAN,  SK_INVOCATIONS,     1),
    APT(SP_GREY_DRACONIAN,  SK_EVOCATIONS,      0),

    // SP_BLACK_DRACONIAN
    APT(SP_BLACK_DRACONIAN, SK_FIGHTING,        1),
    APT(SP_BLACK_DRACONIAN, SK_SHORT_BLADES,    0),
    APT(SP_BLACK_DRACONIAN, SK_LONG_BLADES,     0),
    APT(SP_BLACK_DRACONIAN, SK_AXES,            0),
    APT(SP_BLACK_DRACONIAN, SK_MACES_FLAILS,    0),
    APT(SP_BLACK_DRACONIAN, SK_POLEARMS,        0),
    APT(SP_BLACK_DRACONIAN, SK_STAVES,          0),
    APT(SP_BLACK_DRACONIAN, SK_SLINGS,         -1),
    APT(SP_BLACK_DRACONIAN, SK_BOWS,           -1),
    APT(SP_BLACK_DRACONIAN, SK_CROSSBOWS,      -1),
    APT(SP_BLACK_DRACONIAN, SK_THROWING,       -1),
    APT(SP_BLACK_DRACONIAN, SK_ARMOUR,        UNUSABLE_SKILL),
    APT(SP_BLACK_DRACONIAN, SK_DODGING,        -1),
    APT(SP_BLACK_DRACONIAN, SK_STEALTH,         0),
#if TAG_MAJOR_VERSION == 34
    APT(SP_BLACK_DRACONIAN, SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_BLACK_DRACONIAN, SK_SHIELDS,         0),
#if TAG_MAJOR_VERSION == 34
    APT(SP_BLACK_DRACONIAN, SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_BLACK_DRACONIAN, SK_UNARMED_COMBAT,  0),
    APT(SP_BLACK_DRACONIAN, SK_SPELLCASTING,   -1),
    APT(SP_BLACK_DRACONIAN, SK_CONJURATIONS,    0),
    APT(SP_BLACK_DRACONIAN, SK_HEXES,          -1),
    APT(SP_BLACK_DRACONIAN, SK_CHARMS,         -1),
    APT(SP_BLACK_DRACONIAN, SK_SUMMONINGS,      0),
    APT(SP_BLACK_DRACONIAN, SK_NECROMANCY,      0),
    APT(SP_BLACK_DRACONIAN, SK_TRANSLOCATIONS,  0),
    APT(SP_BLACK_DRACONIAN, SK_TRANSMUTATIONS,  0),
    APT(SP_BLACK_DRACONIAN, SK_FIRE_MAGIC,      0),
    APT(SP_BLACK_DRACONIAN, SK_ICE_MAGIC,       0),
    APT(SP_BLACK_DRACONIAN, SK_AIR_MAGIC,       2),
    APT(SP_BLACK_DRACONIAN, SK_EARTH_MAGIC,    -2),
    APT(SP_BLACK_DRACONIAN, SK_POISON_MAGIC,    0),
    APT(SP_BLACK_DRACONIAN, SK_INVOCATIONS,     1),
    APT(SP_BLACK_DRACONIAN, SK_EVOCATIONS,      0),

    // SP_PURPLE_DRACONIAN
    APT(SP_PURPLE_DRACONIAN,SK_FIGHTING,        1),
    APT(SP_PURPLE_DRACONIAN,SK_SHORT_BLADES,    0),
    APT(SP_PURPLE_DRACONIAN,SK_LONG_BLADES,     0),
    APT(SP_PURPLE_DRACONIAN,SK_AXES,            0),
    APT(SP_PURPLE_DRACONIAN,SK_MACES_FLAILS,    0),
    APT(SP_PURPLE_DRACONIAN,SK_POLEARMS,        0),
    APT(SP_PURPLE_DRACONIAN,SK_STAVES,          0),
    APT(SP_PURPLE_DRACONIAN,SK_SLINGS,         -1),
    APT(SP_PURPLE_DRACONIAN,SK_BOWS,           -1),
    APT(SP_PURPLE_DRACONIAN,SK_CROSSBOWS,      -1),
    APT(SP_PURPLE_DRACONIAN,SK_THROWING,       -1),
    APT(SP_PURPLE_DRACONIAN,SK_ARMOUR,        UNUSABLE_SKILL),
    APT(SP_PURPLE_DRACONIAN,SK_DODGING,        -1),
    APT(SP_PURPLE_DRACONIAN,SK_STEALTH,         0),
#if TAG_MAJOR_VERSION == 34
    APT(SP_PURPLE_DRACONIAN,SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_PURPLE_DRACONIAN,SK_SHIELDS,         0),
#if TAG_MAJOR_VERSION == 34
    APT(SP_PURPLE_DRACONIAN,SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_PURPLE_DRACONIAN,SK_UNARMED_COMBAT,  0),
    APT(SP_PURPLE_DRACONIAN,SK_SPELLCASTING,    1),
    APT(SP_PURPLE_DRACONIAN,SK_CONJURATIONS,    0),
    APT(SP_PURPLE_DRACONIAN,SK_HEXES,           1),
    APT(SP_PURPLE_DRACONIAN,SK_CHARMS,          1),
    APT(SP_PURPLE_DRACONIAN,SK_SUMMONINGS,      0),
    APT(SP_PURPLE_DRACONIAN,SK_NECROMANCY,      0),
    APT(SP_PURPLE_DRACONIAN,SK_TRANSLOCATIONS,  0),
    APT(SP_PURPLE_DRACONIAN,SK_TRANSMUTATIONS,  0),
    APT(SP_PURPLE_DRACONIAN,SK_FIRE_MAGIC,      0),
    APT(SP_PURPLE_DRACONIAN,SK_ICE_MAGIC,       0),
    APT(SP_PURPLE_DRACONIAN,SK_AIR_MAGIC,       0),
    APT(SP_PURPLE_DRACONIAN,SK_EARTH_MAGIC,     0),
    APT(SP_PURPLE_DRACONIAN,SK_POISON_MAGIC,    0),
    APT(SP_PURPLE_DRACONIAN,SK_INVOCATIONS,     1),
    APT(SP_PURPLE_DRACONIAN,SK_EVOCATIONS,      1),

#if TAG_MAJOR_VERSION == 34
    // SP_MOTTLED_DRACONIAN
    APT(SP_MOTTLED_DRACONIAN,SK_FIGHTING,        1),
    APT(SP_MOTTLED_DRACONIAN,SK_SHORT_BLADES,    0),
    APT(SP_MOTTLED_DRACONIAN,SK_LONG_BLADES,     0),
    APT(SP_MOTTLED_DRACONIAN,SK_AXES,            0),
    APT(SP_MOTTLED_DRACONIAN,SK_MACES_FLAILS,    0),
    APT(SP_MOTTLED_DRACONIAN,SK_POLEARMS,        0),
    APT(SP_MOTTLED_DRACONIAN,SK_STAVES,          0),
    APT(SP_MOTTLED_DRACONIAN,SK_SLINGS,         -1),
    APT(SP_MOTTLED_DRACONIAN,SK_BOWS,           -1),
    APT(SP_MOTTLED_DRACONIAN,SK_CROSSBOWS,      -1),
    APT(SP_MOTTLED_DRACONIAN,SK_THROWING,       -1),
    APT(SP_MOTTLED_DRACONIAN,SK_ARMOUR,        UNUSABLE_SKILL),
    APT(SP_MOTTLED_DRACONIAN,SK_DODGING,        -1),
    APT(SP_MOTTLED_DRACONIAN,SK_STEALTH,         0),
    APT(SP_MOTTLED_DRACONIAN,SK_STABBING,      UNUSABLE_SKILL),
    APT(SP_MOTTLED_DRACONIAN,SK_SHIELDS,         0),
    APT(SP_MOTTLED_DRACONIAN,SK_TRAPS,         UNUSABLE_SKILL),
    APT(SP_MOTTLED_DRACONIAN,SK_UNARMED_COMBAT,  0),
    APT(SP_MOTTLED_DRACONIAN,SK_SPELLCASTING,   -1),
    APT(SP_MOTTLED_DRACONIAN,SK_CONJURATIONS,    0),
    APT(SP_MOTTLED_DRACONIAN,SK_HEXES,          -1),
    APT(SP_MOTTLED_DRACONIAN,SK_CHARMS,         -1),
    APT(SP_MOTTLED_DRACONIAN,SK_SUMMONINGS,      0),
    APT(SP_MOTTLED_DRACONIAN,SK_NECROMANCY,      0),
    APT(SP_MOTTLED_DRACONIAN,SK_TRANSLOCATIONS,  0),
    APT(SP_MOTTLED_DRACONIAN,SK_TRANSMUTATIONS,  0),
    APT(SP_MOTTLED_DRACONIAN,SK_FIRE_MAGIC,      1),
    APT(SP_MOTTLED_DRACONIAN,SK_ICE_MAGIC,       0),
    APT(SP_MOTTLED_DRACONIAN,SK_AIR_MAGIC,       0),
    APT(SP_MOTTLED_DRACONIAN,SK_EARTH_MAGIC,     0),
    APT(SP_MOTTLED_DRACONIAN,SK_POISON_MAGIC,    0),
    APT(SP_MOTTLED_DRACONIAN,SK_INVOCATIONS,     1),
    APT(SP_MOTTLED_DRACONIAN,SK_EVOCATIONS,      0),
#endif

    // SP_PALE_DRACONIAN
    APT(SP_PALE_DRACONIAN,  SK_FIGHTING,        1),
    APT(SP_PALE_DRACONIAN,  SK_SHORT_BLADES,    0),
    APT(SP_PALE_DRACONIAN,  SK_LONG_BLADES,     0),
    APT(SP_PALE_DRACONIAN,  SK_AXES,            0),
    APT(SP_PALE_DRACONIAN,  SK_MACES_FLAILS,    0),
    APT(SP_PALE_DRACONIAN,  SK_POLEARMS,        0),
    APT(SP_PALE_DRACONIAN,  SK_STAVES,          0),
    APT(SP_PALE_DRACONIAN,  SK_SLINGS,         -1),
    APT(SP_PALE_DRACONIAN,  SK_BOWS,           -1),
    APT(SP_PALE_DRACONIAN,  SK_CROSSBOWS,      -1),
    APT(SP_PALE_DRACONIAN,  SK_THROWING,       -1),
    APT(SP_PALE_DRACONIAN,  SK_ARMOUR,        UNUSABLE_SKILL),
    APT(SP_PALE_DRACONIAN,  SK_DODGING,        -1),
    APT(SP_PALE_DRACONIAN,  SK_STEALTH,         0),
#if TAG_MAJOR_VERSION == 34
    APT(SP_PALE_DRACONIAN,  SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_PALE_DRACONIAN,  SK_SHIELDS,         0),
#if TAG_MAJOR_VERSION == 34
    APT(SP_PALE_DRACONIAN,  SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_PALE_DRACONIAN,  SK_UNARMED_COMBAT,  0),
    APT(SP_PALE_DRACONIAN,  SK_SPELLCASTING,   -1),
    APT(SP_PALE_DRACONIAN,  SK_CONJURATIONS,    0),
    APT(SP_PALE_DRACONIAN,  SK_HEXES,          -1),
    APT(SP_PALE_DRACONIAN,  SK_CHARMS,         -1),
    APT(SP_PALE_DRACONIAN,  SK_SUMMONINGS,      0),
    APT(SP_PALE_DRACONIAN,  SK_NECROMANCY,      0),
    APT(SP_PALE_DRACONIAN,  SK_TRANSLOCATIONS,  0),
    APT(SP_PALE_DRACONIAN,  SK_TRANSMUTATIONS,  0),
    APT(SP_PALE_DRACONIAN,  SK_FIRE_MAGIC,      1),
    APT(SP_PALE_DRACONIAN,  SK_ICE_MAGIC,       0),
    APT(SP_PALE_DRACONIAN,  SK_AIR_MAGIC,       1),
    APT(SP_PALE_DRACONIAN,  SK_EARTH_MAGIC,     0),
    APT(SP_PALE_DRACONIAN,  SK_POISON_MAGIC,    0),
    APT(SP_PALE_DRACONIAN,  SK_INVOCATIONS,     1),
    APT(SP_PALE_DRACONIAN,  SK_EVOCATIONS,      1),

    // SP_BASE_DRACONIAN
    APT(SP_BASE_DRACONIAN,  SK_FIGHTING,        1),
    APT(SP_BASE_DRACONIAN,  SK_SHORT_BLADES,    0),
    APT(SP_BASE_DRACONIAN,  SK_LONG_BLADES,     0),
    APT(SP_BASE_DRACONIAN,  SK_AXES,            0),
    APT(SP_BASE_DRACONIAN,  SK_MACES_FLAILS,    0),
    APT(SP_BASE_DRACONIAN,  SK_POLEARMS,        0),
    APT(SP_BASE_DRACONIAN,  SK_STAVES,          0),
    APT(SP_BASE_DRACONIAN,  SK_SLINGS,         -1),
    APT(SP_BASE_DRACONIAN,  SK_BOWS,           -1),
    APT(SP_BASE_DRACONIAN,  SK_CROSSBOWS,      -1),
    APT(SP_BASE_DRACONIAN,  SK_THROWING,       -1),
    APT(SP_BASE_DRACONIAN,  SK_ARMOUR,        UNUSABLE_SKILL),
    APT(SP_BASE_DRACONIAN,  SK_DODGING,        -1),
    APT(SP_BASE_DRACONIAN,  SK_STEALTH,         0),
#if TAG_MAJOR_VERSION == 34
    APT(SP_BASE_DRACONIAN,  SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_BASE_DRACONIAN,  SK_SHIELDS,         0),
#if TAG_MAJOR_VERSION == 34
    APT(SP_BASE_DRACONIAN,  SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_BASE_DRACONIAN,  SK_UNARMED_COMBAT,  0),
    APT(SP_BASE_DRACONIAN,  SK_SPELLCASTING,   -1),
    APT(SP_BASE_DRACONIAN,  SK_CONJURATIONS,    0),
    APT(SP_BASE_DRACONIAN,  SK_HEXES,          -1),
    APT(SP_BASE_DRACONIAN,  SK_CHARMS,         -1),
    APT(SP_BASE_DRACONIAN,  SK_SUMMONINGS,      0),
    APT(SP_BASE_DRACONIAN,  SK_NECROMANCY,      0),
    APT(SP_BASE_DRACONIAN,  SK_TRANSLOCATIONS,  0),
    APT(SP_BASE_DRACONIAN,  SK_TRANSMUTATIONS,  0),
    APT(SP_BASE_DRACONIAN,  SK_FIRE_MAGIC,      0),
    APT(SP_BASE_DRACONIAN,  SK_ICE_MAGIC,       0),
    APT(SP_BASE_DRACONIAN,  SK_AIR_MAGIC,       0),
    APT(SP_BASE_DRACONIAN,  SK_EARTH_MAGIC,     0),
    APT(SP_BASE_DRACONIAN,  SK_POISON_MAGIC,    0),
    APT(SP_BASE_DRACONIAN,  SK_INVOCATIONS,     1),
    APT(SP_BASE_DRACONIAN,  SK_EVOCATIONS,      0),

    // SP_CENTAUR
    APT(SP_CENTAUR,         SK_FIGHTING,        0),
    APT(SP_CENTAUR,         SK_SHORT_BLADES,   -1),
    APT(SP_CENTAUR,         SK_LONG_BLADES,    -1),
    APT(SP_CENTAUR,         SK_AXES,           -1),
    APT(SP_CENTAUR,         SK_MACES_FLAILS,   -1),
    APT(SP_CENTAUR,         SK_POLEARMS,       -1),
    APT(SP_CENTAUR,         SK_STAVES,         -1),
    APT(SP_CENTAUR,         SK_SLINGS,          1),
    APT(SP_CENTAUR,         SK_BOWS,            3),
    APT(SP_CENTAUR,         SK_CROSSBOWS,       1),
    APT(SP_CENTAUR,         SK_THROWING,        1),
    APT(SP_CENTAUR,         SK_ARMOUR,         -3),
    APT(SP_CENTAUR,         SK_DODGING,        -3),
    APT(SP_CENTAUR,         SK_STEALTH,        -4),
#if TAG_MAJOR_VERSION == 34
    APT(SP_CENTAUR,         SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_CENTAUR,         SK_SHIELDS,        -3),
#if TAG_MAJOR_VERSION == 34
    APT(SP_CENTAUR,         SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_CENTAUR,         SK_UNARMED_COMBAT,  0),
    APT(SP_CENTAUR,         SK_SPELLCASTING,   -3),
    APT(SP_CENTAUR,         SK_CONJURATIONS,   -1),
    APT(SP_CENTAUR,         SK_HEXES,          -1),
    APT(SP_CENTAUR,         SK_CHARMS,         -1),
    APT(SP_CENTAUR,         SK_SUMMONINGS,     -1),
    APT(SP_CENTAUR,         SK_NECROMANCY,     -1),
    APT(SP_CENTAUR,         SK_TRANSLOCATIONS, -1),
    APT(SP_CENTAUR,         SK_TRANSMUTATIONS, -1),
    APT(SP_CENTAUR,         SK_FIRE_MAGIC,     -1),
    APT(SP_CENTAUR,         SK_ICE_MAGIC,      -1),
    APT(SP_CENTAUR,         SK_AIR_MAGIC,      -1),
    APT(SP_CENTAUR,         SK_EARTH_MAGIC,    -1),
    APT(SP_CENTAUR,         SK_POISON_MAGIC,   -2),
    APT(SP_CENTAUR,         SK_INVOCATIONS,     1),
    APT(SP_CENTAUR,         SK_EVOCATIONS,     -1),

    // SP_DEMIGOD
    APT(SP_DEMIGOD,         SK_FIGHTING,       -1),
    APT(SP_DEMIGOD,         SK_SHORT_BLADES,   -1),
    APT(SP_DEMIGOD,         SK_LONG_BLADES,    -1),
    APT(SP_DEMIGOD,         SK_AXES,           -1),
    APT(SP_DEMIGOD,         SK_MACES_FLAILS,   -1),
    APT(SP_DEMIGOD,         SK_POLEARMS,       -1),
    APT(SP_DEMIGOD,         SK_STAVES,         -1),
    APT(SP_DEMIGOD,         SK_SLINGS,         -1),
    APT(SP_DEMIGOD,         SK_BOWS,           -1),
    APT(SP_DEMIGOD,         SK_CROSSBOWS,      -1),
    APT(SP_DEMIGOD,         SK_THROWING,       -1),
    APT(SP_DEMIGOD,         SK_ARMOUR,         -1),
    APT(SP_DEMIGOD,         SK_DODGING,        -1),
    APT(SP_DEMIGOD,         SK_STEALTH,         0),
#if TAG_MAJOR_VERSION == 34
    APT(SP_DEMIGOD,         SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_DEMIGOD,         SK_SHIELDS,        -1),
#if TAG_MAJOR_VERSION == 34
    APT(SP_DEMIGOD,         SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_DEMIGOD,         SK_UNARMED_COMBAT, -1),
    APT(SP_DEMIGOD,         SK_SPELLCASTING,   -2),
    APT(SP_DEMIGOD,         SK_CONJURATIONS,   -1),
    APT(SP_DEMIGOD,         SK_HEXES,          -1),
    APT(SP_DEMIGOD,         SK_CHARMS,         -1),
    APT(SP_DEMIGOD,         SK_SUMMONINGS,     -1),
    APT(SP_DEMIGOD,         SK_NECROMANCY,     -1),
    APT(SP_DEMIGOD,         SK_TRANSLOCATIONS, -1),
    APT(SP_DEMIGOD,         SK_TRANSMUTATIONS, -1),
    APT(SP_DEMIGOD,         SK_FIRE_MAGIC,     -1),
    APT(SP_DEMIGOD,         SK_ICE_MAGIC,      -1),
    APT(SP_DEMIGOD,         SK_AIR_MAGIC,      -1),
    APT(SP_DEMIGOD,         SK_EARTH_MAGIC,    -1),
    APT(SP_DEMIGOD,         SK_POISON_MAGIC,   -1),
    APT(SP_DEMIGOD,         SK_INVOCATIONS,   UNUSABLE_SKILL),
    APT(SP_DEMIGOD,         SK_EVOCATIONS,     -1),

    // SP_SPRIGGAN
    APT(SP_SPRIGGAN,        SK_FIGHTING,       -2),
    APT(SP_SPRIGGAN,        SK_SHORT_BLADES,    1),
    APT(SP_SPRIGGAN,        SK_LONG_BLADES,    -2),
    APT(SP_SPRIGGAN,        SK_AXES,           -2),
    APT(SP_SPRIGGAN,        SK_MACES_FLAILS,   -3),
    APT(SP_SPRIGGAN,        SK_POLEARMS,       -3),
    APT(SP_SPRIGGAN,        SK_STAVES,         -3),
    APT(SP_SPRIGGAN,        SK_SLINGS,          2),
    APT(SP_SPRIGGAN,        SK_BOWS,            2),
    APT(SP_SPRIGGAN,        SK_CROSSBOWS,       0),
    APT(SP_SPRIGGAN,        SK_THROWING,        0),
    APT(SP_SPRIGGAN,        SK_ARMOUR,         -3),
    APT(SP_SPRIGGAN,        SK_DODGING,         4),
    APT(SP_SPRIGGAN,        SK_STEALTH,         5),
#if TAG_MAJOR_VERSION == 34
    APT(SP_SPRIGGAN,        SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_SPRIGGAN,        SK_SHIELDS,        -3),
#if TAG_MAJOR_VERSION == 34
    APT(SP_SPRIGGAN,        SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_SPRIGGAN,        SK_UNARMED_COMBAT, -2),
    APT(SP_SPRIGGAN,        SK_SPELLCASTING,    2),
    APT(SP_SPRIGGAN,        SK_CONJURATIONS,   -3),
    APT(SP_SPRIGGAN,        SK_HEXES,           2),
    APT(SP_SPRIGGAN,        SK_CHARMS,          4),
    APT(SP_SPRIGGAN,        SK_SUMMONINGS,     -2),
    APT(SP_SPRIGGAN,        SK_NECROMANCY,     -1),
    APT(SP_SPRIGGAN,        SK_TRANSLOCATIONS,  4),
    APT(SP_SPRIGGAN,        SK_TRANSMUTATIONS,  3),
    APT(SP_SPRIGGAN,        SK_FIRE_MAGIC,     -2),
    APT(SP_SPRIGGAN,        SK_ICE_MAGIC,      -2),
    APT(SP_SPRIGGAN,        SK_AIR_MAGIC,      -1),
    APT(SP_SPRIGGAN,        SK_EARTH_MAGIC,    -1),
    APT(SP_SPRIGGAN,        SK_POISON_MAGIC,    0),
    APT(SP_SPRIGGAN,        SK_INVOCATIONS,     0),
    APT(SP_SPRIGGAN,        SK_EVOCATIONS,      3),

    // SP_MINOTAUR
    APT(SP_MINOTAUR,        SK_FIGHTING,        2),
    APT(SP_MINOTAUR,        SK_SHORT_BLADES,    1),
    APT(SP_MINOTAUR,        SK_LONG_BLADES,     2),
    APT(SP_MINOTAUR,        SK_AXES,            2),
    APT(SP_MINOTAUR,        SK_MACES_FLAILS,    2),
    APT(SP_MINOTAUR,        SK_POLEARMS,        2),
    APT(SP_MINOTAUR,        SK_STAVES,          2),
    APT(SP_MINOTAUR,        SK_SLINGS,          1),
    APT(SP_MINOTAUR,        SK_BOWS,            1),
    APT(SP_MINOTAUR,        SK_CROSSBOWS,       1),
    APT(SP_MINOTAUR,        SK_THROWING,        0),
    APT(SP_MINOTAUR,        SK_ARMOUR,          2),
    APT(SP_MINOTAUR,        SK_DODGING,         1),
    APT(SP_MINOTAUR,        SK_STEALTH,        -1),
#if TAG_MAJOR_VERSION == 34
    APT(SP_MINOTAUR,        SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_MINOTAUR,        SK_SHIELDS,         2),
#if TAG_MAJOR_VERSION == 34
    APT(SP_MINOTAUR,        SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_MINOTAUR,        SK_UNARMED_COMBAT,  1),
    APT(SP_MINOTAUR,        SK_SPELLCASTING,   -4),
    APT(SP_MINOTAUR,        SK_CONJURATIONS,   -3),
    APT(SP_MINOTAUR,        SK_HEXES,          -4),
    APT(SP_MINOTAUR,        SK_CHARMS,         -4),
    APT(SP_MINOTAUR,        SK_SUMMONINGS,     -3),
    APT(SP_MINOTAUR,        SK_NECROMANCY,     -3),
    APT(SP_MINOTAUR,        SK_TRANSLOCATIONS, -3),
    APT(SP_MINOTAUR,        SK_TRANSMUTATIONS, -2),
    APT(SP_MINOTAUR,        SK_FIRE_MAGIC,     -3),
    APT(SP_MINOTAUR,        SK_ICE_MAGIC,      -3),
    APT(SP_MINOTAUR,        SK_AIR_MAGIC,      -3),
    APT(SP_MINOTAUR,        SK_EARTH_MAGIC,    -2),
    APT(SP_MINOTAUR,        SK_POISON_MAGIC,   -3),
    APT(SP_MINOTAUR,        SK_INVOCATIONS,     0),
    APT(SP_MINOTAUR,        SK_EVOCATIONS,     -1),

    // SP_GARGOYLE
    APT(SP_GARGOYLE,         SK_FIGHTING,        1),
    APT(SP_GARGOYLE,         SK_SHORT_BLADES,   -1),
    APT(SP_GARGOYLE,         SK_LONG_BLADES,    -1),
    APT(SP_GARGOYLE,         SK_AXES,           -1),
    APT(SP_GARGOYLE,         SK_MACES_FLAILS,    0),
    APT(SP_GARGOYLE,         SK_POLEARMS,       -1),
    APT(SP_GARGOYLE,         SK_STAVES,          0),
    APT(SP_GARGOYLE,         SK_SLINGS,         -1),
    APT(SP_GARGOYLE,         SK_BOWS,            0),
    APT(SP_GARGOYLE,         SK_CROSSBOWS,       0),
    APT(SP_GARGOYLE,         SK_THROWING,       -1),
    APT(SP_GARGOYLE,         SK_ARMOUR,          1),
    APT(SP_GARGOYLE,         SK_DODGING,        -2),
    APT(SP_GARGOYLE,         SK_STEALTH,         2),
#if TAG_MAJOR_VERSION == 34
    APT(SP_GARGOYLE,         SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_GARGOYLE,         SK_SHIELDS,         1),
#if TAG_MAJOR_VERSION == 34
    APT(SP_GARGOYLE,         SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_GARGOYLE,         SK_UNARMED_COMBAT,  0),
    APT(SP_GARGOYLE,         SK_SPELLCASTING,   -1),
    APT(SP_GARGOYLE,         SK_CONJURATIONS,    1),
    APT(SP_GARGOYLE,         SK_HEXES,          -1),
    APT(SP_GARGOYLE,         SK_CHARMS,         -1),
    APT(SP_GARGOYLE,         SK_SUMMONINGS,     -1),
    APT(SP_GARGOYLE,         SK_NECROMANCY,     -2),
    APT(SP_GARGOYLE,         SK_TRANSLOCATIONS, -1),
    APT(SP_GARGOYLE,         SK_TRANSMUTATIONS, -2),
    APT(SP_GARGOYLE,         SK_FIRE_MAGIC,      0),
    APT(SP_GARGOYLE,         SK_ICE_MAGIC,       0),
    APT(SP_GARGOYLE,         SK_AIR_MAGIC,      -2),
    APT(SP_GARGOYLE,         SK_EARTH_MAGIC,     2),
    APT(SP_GARGOYLE,         SK_POISON_MAGIC,    0),
    APT(SP_GARGOYLE,         SK_INVOCATIONS,     1),
    APT(SP_GARGOYLE,         SK_EVOCATIONS,     -1),

    // SP_DEMONSPAWN
    APT(SP_DEMONSPAWN,      SK_FIGHTING,        0),
    APT(SP_DEMONSPAWN,      SK_SHORT_BLADES,   -1),
    APT(SP_DEMONSPAWN,      SK_LONG_BLADES,    -1),
    APT(SP_DEMONSPAWN,      SK_AXES,           -1),
    APT(SP_DEMONSPAWN,      SK_MACES_FLAILS,   -1),
    APT(SP_DEMONSPAWN,      SK_POLEARMS,       -1),
    APT(SP_DEMONSPAWN,      SK_STAVES,         -1),
    APT(SP_DEMONSPAWN,      SK_SLINGS,         -1),
    APT(SP_DEMONSPAWN,      SK_BOWS,           -1),
    APT(SP_DEMONSPAWN,      SK_CROSSBOWS,      -1),
    APT(SP_DEMONSPAWN,      SK_THROWING,       -1),
    APT(SP_DEMONSPAWN,      SK_ARMOUR,         -1),
    APT(SP_DEMONSPAWN,      SK_DODGING,        -1),
    APT(SP_DEMONSPAWN,      SK_STEALTH,         0),
#if TAG_MAJOR_VERSION == 34
    APT(SP_DEMONSPAWN,      SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_DEMONSPAWN,      SK_SHIELDS,        -1),
#if TAG_MAJOR_VERSION == 34
    APT(SP_DEMONSPAWN,      SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_DEMONSPAWN,      SK_UNARMED_COMBAT, -1),
    APT(SP_DEMONSPAWN,      SK_SPELLCASTING,   -1),
    APT(SP_DEMONSPAWN,      SK_CONJURATIONS,    0),
    APT(SP_DEMONSPAWN,      SK_HEXES,           0),
    APT(SP_DEMONSPAWN,      SK_CHARMS,         -1),
    APT(SP_DEMONSPAWN,      SK_SUMMONINGS,      0),
    APT(SP_DEMONSPAWN,      SK_NECROMANCY,      1),
    APT(SP_DEMONSPAWN,      SK_TRANSLOCATIONS, -1),
    APT(SP_DEMONSPAWN,      SK_TRANSMUTATIONS, -1),
    APT(SP_DEMONSPAWN,      SK_FIRE_MAGIC,     -1),
    APT(SP_DEMONSPAWN,      SK_ICE_MAGIC,      -1),
    APT(SP_DEMONSPAWN,      SK_AIR_MAGIC,      -1),
    APT(SP_DEMONSPAWN,      SK_EARTH_MAGIC,    -1),
    APT(SP_DEMONSPAWN,      SK_POISON_MAGIC,    0),
    APT(SP_DEMONSPAWN,      SK_INVOCATIONS,     3),
    APT(SP_DEMONSPAWN,      SK_EVOCATIONS,      0),

    // SP_GHOUL
    APT(SP_GHOUL,           SK_FIGHTING,        1),
    APT(SP_GHOUL,           SK_SHORT_BLADES,   -1),
    APT(SP_GHOUL,           SK_LONG_BLADES,    -1),
    APT(SP_GHOUL,           SK_AXES,           -1),
    APT(SP_GHOUL,           SK_MACES_FLAILS,   -1),
    APT(SP_GHOUL,           SK_POLEARMS,       -1),
    APT(SP_GHOUL,           SK_STAVES,         -1),
    APT(SP_GHOUL,           SK_SLINGS,         -1),
    APT(SP_GHOUL,           SK_BOWS,           -1),
    APT(SP_GHOUL,           SK_CROSSBOWS,      -1),
    APT(SP_GHOUL,           SK_THROWING,       -1),
    APT(SP_GHOUL,           SK_ARMOUR,         -1),
    APT(SP_GHOUL,           SK_DODGING,        -1),
    APT(SP_GHOUL,           SK_STEALTH,         2),
#if TAG_MAJOR_VERSION == 34
    APT(SP_GHOUL,           SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_GHOUL,           SK_SHIELDS,        -1),
#if TAG_MAJOR_VERSION == 34
    APT(SP_GHOUL,           SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_GHOUL,           SK_UNARMED_COMBAT,  1),
    APT(SP_GHOUL,           SK_SPELLCASTING,   -2),
    APT(SP_GHOUL,           SK_CONJURATIONS,   -2),
    APT(SP_GHOUL,           SK_HEXES,          -2),
    APT(SP_GHOUL,           SK_CHARMS,         -1),
    APT(SP_GHOUL,           SK_SUMMONINGS,     -1),
    APT(SP_GHOUL,           SK_NECROMANCY,      0),
    APT(SP_GHOUL,           SK_TRANSLOCATIONS, -1),
    APT(SP_GHOUL,           SK_TRANSMUTATIONS, -1),
    APT(SP_GHOUL,           SK_FIRE_MAGIC,     -2),
    APT(SP_GHOUL,           SK_ICE_MAGIC,       1),
    APT(SP_GHOUL,           SK_AIR_MAGIC,      -2),
    APT(SP_GHOUL,           SK_EARTH_MAGIC,     1),
    APT(SP_GHOUL,           SK_POISON_MAGIC,    0),
    APT(SP_GHOUL,           SK_INVOCATIONS,     1),
    APT(SP_GHOUL,           SK_EVOCATIONS,     -1),

    // SP_TENGU
    APT(SP_TENGU,           SK_FIGHTING,        0),
    APT(SP_TENGU,           SK_SHORT_BLADES,    1),
    APT(SP_TENGU,           SK_LONG_BLADES,     1),
    APT(SP_TENGU,           SK_AXES,            1),
    APT(SP_TENGU,           SK_MACES_FLAILS,    1),
    APT(SP_TENGU,           SK_POLEARMS,        1),
    APT(SP_TENGU,           SK_STAVES,          1),
    APT(SP_TENGU,           SK_SLINGS,          0),
    APT(SP_TENGU,           SK_BOWS,            1),
    APT(SP_TENGU,           SK_CROSSBOWS,       1),
    APT(SP_TENGU,           SK_THROWING,        0),
    APT(SP_TENGU,           SK_ARMOUR,          1),
    APT(SP_TENGU,           SK_DODGING,         1),
    APT(SP_TENGU,           SK_STEALTH,         1),
#if TAG_MAJOR_VERSION == 34
    APT(SP_TENGU,           SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_TENGU,           SK_SHIELDS,         0),
#if TAG_MAJOR_VERSION == 34
    APT(SP_TENGU,           SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_TENGU,           SK_UNARMED_COMBAT,  1),
    APT(SP_TENGU,           SK_SPELLCASTING,   -1),
    APT(SP_TENGU,           SK_CONJURATIONS,    3),
    APT(SP_TENGU,           SK_HEXES,          -3),
    APT(SP_TENGU,           SK_CHARMS,         -2),
    APT(SP_TENGU,           SK_SUMMONINGS,      2),
    APT(SP_TENGU,           SK_NECROMANCY,      1),
    APT(SP_TENGU,           SK_TRANSLOCATIONS, -2),
    APT(SP_TENGU,           SK_TRANSMUTATIONS, -2),
    APT(SP_TENGU,           SK_FIRE_MAGIC,      1),
    APT(SP_TENGU,           SK_ICE_MAGIC,      -1),
    APT(SP_TENGU,           SK_AIR_MAGIC,       3),
    APT(SP_TENGU,           SK_EARTH_MAGIC,    -3),
    APT(SP_TENGU,           SK_POISON_MAGIC,    0),
    APT(SP_TENGU,           SK_INVOCATIONS,    -1),
    APT(SP_TENGU,           SK_EVOCATIONS,      0),

    // SP_MERFOLK
    APT(SP_MERFOLK,         SK_FIGHTING,        1),
    APT(SP_MERFOLK,         SK_SHORT_BLADES,    2),
    APT(SP_MERFOLK,         SK_LONG_BLADES,     1),
    APT(SP_MERFOLK,         SK_AXES,           -2),
    APT(SP_MERFOLK,         SK_MACES_FLAILS,   -2),
    APT(SP_MERFOLK,         SK_POLEARMS,        4),
    APT(SP_MERFOLK,         SK_STAVES,         -2),
    APT(SP_MERFOLK,         SK_SLINGS,         -2),
    APT(SP_MERFOLK,         SK_BOWS,           -2),
    APT(SP_MERFOLK,         SK_CROSSBOWS,      -2),
    APT(SP_MERFOLK,         SK_THROWING,        0),
    APT(SP_MERFOLK,         SK_ARMOUR,         -3),
    APT(SP_MERFOLK,         SK_DODGING,         3),
    APT(SP_MERFOLK,         SK_STEALTH,         2),
#if TAG_MAJOR_VERSION == 34
    APT(SP_MERFOLK,         SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_MERFOLK,         SK_SHIELDS,         0),
#if TAG_MAJOR_VERSION == 34
    APT(SP_MERFOLK,         SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_MERFOLK,         SK_UNARMED_COMBAT,  1),
    APT(SP_MERFOLK,         SK_SPELLCASTING,   -1),
    APT(SP_MERFOLK,         SK_CONJURATIONS,   -2),
    APT(SP_MERFOLK,         SK_HEXES,           0),
    APT(SP_MERFOLK,         SK_CHARMS,          1),
    APT(SP_MERFOLK,         SK_SUMMONINGS,      0),
    APT(SP_MERFOLK,         SK_NECROMANCY,     -2),
    APT(SP_MERFOLK,         SK_TRANSLOCATIONS, -2),
    APT(SP_MERFOLK,         SK_TRANSMUTATIONS,  3),
    APT(SP_MERFOLK,         SK_FIRE_MAGIC,     -3),
    APT(SP_MERFOLK,         SK_ICE_MAGIC,       1),
    APT(SP_MERFOLK,         SK_AIR_MAGIC,      -2),
    APT(SP_MERFOLK,         SK_EARTH_MAGIC,    -2),
    APT(SP_MERFOLK,         SK_POISON_MAGIC,    1),
    APT(SP_MERFOLK,         SK_INVOCATIONS,     1),
    APT(SP_MERFOLK,         SK_EVOCATIONS,      0),

    // SP_VAMPIRE
    APT(SP_VAMPIRE,         SK_FIGHTING,       -1),
    APT(SP_VAMPIRE,         SK_SHORT_BLADES,    1),
    APT(SP_VAMPIRE,         SK_LONG_BLADES,     0),
    APT(SP_VAMPIRE,         SK_AXES,           -1),
    APT(SP_VAMPIRE,         SK_MACES_FLAILS,   -2),
    APT(SP_VAMPIRE,         SK_POLEARMS,       -1),
    APT(SP_VAMPIRE,         SK_STAVES,         -2),
    APT(SP_VAMPIRE,         SK_SLINGS,         -2),
    APT(SP_VAMPIRE,         SK_BOWS,           -2),
    APT(SP_VAMPIRE,         SK_CROSSBOWS,      -2),
    APT(SP_VAMPIRE,         SK_THROWING,       -2),
    APT(SP_VAMPIRE,         SK_ARMOUR,         -2),
    APT(SP_VAMPIRE,         SK_DODGING,         1),
    APT(SP_VAMPIRE,         SK_STEALTH,         5),
#if TAG_MAJOR_VERSION == 34
    APT(SP_VAMPIRE,         SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_VAMPIRE,         SK_SHIELDS,        -1),
#if TAG_MAJOR_VERSION == 34
    APT(SP_VAMPIRE,         SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_VAMPIRE,         SK_UNARMED_COMBAT,  1),
    APT(SP_VAMPIRE,         SK_SPELLCASTING,   -1),
    APT(SP_VAMPIRE,         SK_CONJURATIONS,   -3),
    APT(SP_VAMPIRE,         SK_HEXES,           4),
    APT(SP_VAMPIRE,         SK_CHARMS,          1),
    APT(SP_VAMPIRE,         SK_SUMMONINGS,      0),
    APT(SP_VAMPIRE,         SK_NECROMANCY,      1),
    APT(SP_VAMPIRE,         SK_TRANSLOCATIONS, -2),
    APT(SP_VAMPIRE,         SK_TRANSMUTATIONS,  1),
    APT(SP_VAMPIRE,         SK_FIRE_MAGIC,     -2),
    APT(SP_VAMPIRE,         SK_ICE_MAGIC,       0),
    APT(SP_VAMPIRE,         SK_AIR_MAGIC,       0),
    APT(SP_VAMPIRE,         SK_EARTH_MAGIC,     0),
    APT(SP_VAMPIRE,         SK_POISON_MAGIC,   -1),
    APT(SP_VAMPIRE,         SK_INVOCATIONS,    -1),
    APT(SP_VAMPIRE,         SK_EVOCATIONS,     -1),

    // SP_DEEP_DWARF
    APT(SP_DEEP_DWARF,      SK_FIGHTING,       -1),
    APT(SP_DEEP_DWARF,      SK_SHORT_BLADES,   -1),
    APT(SP_DEEP_DWARF,      SK_LONG_BLADES,     0),
    APT(SP_DEEP_DWARF,      SK_AXES,            1),
    APT(SP_DEEP_DWARF,      SK_MACES_FLAILS,    0),
    APT(SP_DEEP_DWARF,      SK_POLEARMS,       -1),
    APT(SP_DEEP_DWARF,      SK_STAVES,         -1),
    APT(SP_DEEP_DWARF,      SK_SLINGS,          1),
    APT(SP_DEEP_DWARF,      SK_BOWS,           -3),
    APT(SP_DEEP_DWARF,      SK_CROSSBOWS,       1),
    APT(SP_DEEP_DWARF,      SK_THROWING,       -1),
    APT(SP_DEEP_DWARF,      SK_ARMOUR,          1),
    APT(SP_DEEP_DWARF,      SK_DODGING,         1),
    APT(SP_DEEP_DWARF,      SK_STEALTH,         3),
#if TAG_MAJOR_VERSION == 34
    APT(SP_DEEP_DWARF,      SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_DEEP_DWARF,      SK_SHIELDS,         1),
#if TAG_MAJOR_VERSION == 34
    APT(SP_DEEP_DWARF,      SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_DEEP_DWARF,      SK_UNARMED_COMBAT, -1),
    APT(SP_DEEP_DWARF,      SK_SPELLCASTING,   -2),
    APT(SP_DEEP_DWARF,      SK_CONJURATIONS,   -1),
    APT(SP_DEEP_DWARF,      SK_HEXES,          -2),
    APT(SP_DEEP_DWARF,      SK_CHARMS,         -1),
    APT(SP_DEEP_DWARF,      SK_SUMMONINGS,     -1),
    APT(SP_DEEP_DWARF,      SK_NECROMANCY,      1),
    APT(SP_DEEP_DWARF,      SK_TRANSLOCATIONS,  1),
    APT(SP_DEEP_DWARF,      SK_TRANSMUTATIONS, -1),
    APT(SP_DEEP_DWARF,      SK_FIRE_MAGIC,     -1),
    APT(SP_DEEP_DWARF,      SK_ICE_MAGIC,      -1),
    APT(SP_DEEP_DWARF,      SK_AIR_MAGIC,      -3),
    APT(SP_DEEP_DWARF,      SK_EARTH_MAGIC,     3),
    APT(SP_DEEP_DWARF,      SK_POISON_MAGIC,   -2),
    APT(SP_DEEP_DWARF,      SK_INVOCATIONS,     3),
    APT(SP_DEEP_DWARF,      SK_EVOCATIONS,      3),

    // SP_FELID
    APT(SP_FELID,           SK_FIGHTING,        0),
    APT(SP_FELID,           SK_SHORT_BLADES,  UNUSABLE_SKILL),
    APT(SP_FELID,           SK_LONG_BLADES,   UNUSABLE_SKILL),
    APT(SP_FELID,           SK_AXES,          UNUSABLE_SKILL),
    APT(SP_FELID,           SK_MACES_FLAILS,  UNUSABLE_SKILL),
    APT(SP_FELID,           SK_POLEARMS,      UNUSABLE_SKILL),
    APT(SP_FELID,           SK_STAVES,        UNUSABLE_SKILL),
    APT(SP_FELID,           SK_SLINGS,        UNUSABLE_SKILL),
    APT(SP_FELID,           SK_BOWS,          UNUSABLE_SKILL),
    APT(SP_FELID,           SK_CROSSBOWS,     UNUSABLE_SKILL),
    APT(SP_FELID,           SK_THROWING,      UNUSABLE_SKILL),
    APT(SP_FELID,           SK_ARMOUR,        UNUSABLE_SKILL),
    APT(SP_FELID,           SK_DODGING,         3),
    APT(SP_FELID,           SK_STEALTH,         4),
#if TAG_MAJOR_VERSION == 34
    APT(SP_FELID,           SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_FELID,           SK_SHIELDS,       UNUSABLE_SKILL),
#if TAG_MAJOR_VERSION == 34
    APT(SP_FELID,           SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_FELID,           SK_UNARMED_COMBAT,  0),
    APT(SP_FELID,           SK_SPELLCASTING,   -1),
    APT(SP_FELID,           SK_CONJURATIONS,   -1),
    APT(SP_FELID,           SK_HEXES,           4),
    APT(SP_FELID,           SK_CHARMS,          2),
    APT(SP_FELID,           SK_SUMMONINGS,      0),
    APT(SP_FELID,           SK_NECROMANCY,      0),
    APT(SP_FELID,           SK_TRANSLOCATIONS,  4),
    APT(SP_FELID,           SK_TRANSMUTATIONS,  1),
    APT(SP_FELID,           SK_FIRE_MAGIC,     -1),
    APT(SP_FELID,           SK_ICE_MAGIC,      -1),
    APT(SP_FELID,           SK_AIR_MAGIC,      -1),
    APT(SP_FELID,           SK_EARTH_MAGIC,    -1),
    APT(SP_FELID,           SK_POISON_MAGIC,   -1),
    APT(SP_FELID,           SK_INVOCATIONS,     0),
    APT(SP_FELID,           SK_EVOCATIONS,      1),

    // SP_OCTOPODE
    APT(SP_OCTOPODE,        SK_FIGHTING,        0),
    APT(SP_OCTOPODE,        SK_SHORT_BLADES,    0),
    APT(SP_OCTOPODE,        SK_LONG_BLADES,     0),
    APT(SP_OCTOPODE,        SK_AXES,            0),
    APT(SP_OCTOPODE,        SK_MACES_FLAILS,    0),
    APT(SP_OCTOPODE,        SK_POLEARMS,        0),
    APT(SP_OCTOPODE,        SK_STAVES,          0),
    APT(SP_OCTOPODE,        SK_SLINGS,          0),
    APT(SP_OCTOPODE,        SK_BOWS,            0),
    APT(SP_OCTOPODE,        SK_CROSSBOWS,       0),
    APT(SP_OCTOPODE,        SK_THROWING,        0),
    APT(SP_OCTOPODE,        SK_ARMOUR,        UNUSABLE_SKILL),
    APT(SP_OCTOPODE,        SK_DODGING,         0),
    APT(SP_OCTOPODE,        SK_STEALTH,         4),
#if TAG_MAJOR_VERSION == 34
    APT(SP_OCTOPODE,        SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_OCTOPODE,        SK_SHIELDS,         0),
#if TAG_MAJOR_VERSION == 34
    APT(SP_OCTOPODE,        SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_OCTOPODE,        SK_UNARMED_COMBAT,  0),
    APT(SP_OCTOPODE,        SK_SPELLCASTING,   -1),
    APT(SP_OCTOPODE,        SK_CONJURATIONS,    0),
    APT(SP_OCTOPODE,        SK_HEXES,           0),
    APT(SP_OCTOPODE,        SK_CHARMS,          0),
    APT(SP_OCTOPODE,        SK_SUMMONINGS,      0),
    APT(SP_OCTOPODE,        SK_NECROMANCY,      0),
    APT(SP_OCTOPODE,        SK_TRANSLOCATIONS,  0),
    APT(SP_OCTOPODE,        SK_TRANSMUTATIONS,  0),
    APT(SP_OCTOPODE,        SK_FIRE_MAGIC,      0),
    APT(SP_OCTOPODE,        SK_ICE_MAGIC,       0),
    APT(SP_OCTOPODE,        SK_AIR_MAGIC,       0),
    APT(SP_OCTOPODE,        SK_EARTH_MAGIC,     0),
    APT(SP_OCTOPODE,        SK_POISON_MAGIC,    2),
    APT(SP_OCTOPODE,        SK_INVOCATIONS,     1),
    APT(SP_OCTOPODE,        SK_EVOCATIONS,      1),

#if TAG_MAJOR_VERSION == 34
    // It seems that we need to keep this as long as SP_DJINNI/SP_LAVAORC
    // (which  are needed for loading old Djinni saves) is still around.

    // SP_DJINNI
    APT(SP_DJINNI,          SK_FIGHTING,       -1),
    APT(SP_DJINNI,          SK_SHORT_BLADES,   -2),
    APT(SP_DJINNI,          SK_LONG_BLADES,     0),
    APT(SP_DJINNI,          SK_AXES,           -1),
    APT(SP_DJINNI,          SK_MACES_FLAILS,    0),
    APT(SP_DJINNI,          SK_POLEARMS,        0),
    APT(SP_DJINNI,          SK_STAVES,          0),
    APT(SP_DJINNI,          SK_SLINGS,         -1),
    APT(SP_DJINNI,          SK_BOWS,           -1),
    APT(SP_DJINNI,          SK_CROSSBOWS,       0),
    APT(SP_DJINNI,          SK_THROWING,       -1),
    APT(SP_DJINNI,          SK_ARMOUR,          1),
    APT(SP_DJINNI,          SK_DODGING,        -1),
    APT(SP_DJINNI,          SK_STEALTH,        -1),
    APT(SP_DJINNI,          SK_STABBING,      UNUSABLE_SKILL),
    APT(SP_DJINNI,          SK_SHIELDS,         0),
    APT(SP_DJINNI,          SK_TRAPS,         UNUSABLE_SKILL),
    APT(SP_DJINNI,          SK_UNARMED_COMBAT, -1),
    APT(SP_DJINNI,          SK_SPELLCASTING,    1),
    APT(SP_DJINNI,          SK_CONJURATIONS,    1),
    APT(SP_DJINNI,          SK_HEXES,           2),
    APT(SP_DJINNI,          SK_CHARMS,          0),
    APT(SP_DJINNI,          SK_SUMMONINGS,      0),
    APT(SP_DJINNI,          SK_NECROMANCY,     -2),
    APT(SP_DJINNI,          SK_TRANSLOCATIONS,  0),
    APT(SP_DJINNI,          SK_TRANSMUTATIONS,  0),
    APT(SP_DJINNI,          SK_FIRE_MAGIC,      3),
    APT(SP_DJINNI,          SK_ICE_MAGIC,      -3),
    APT(SP_DJINNI,          SK_AIR_MAGIC,       2),
    APT(SP_DJINNI,          SK_EARTH_MAGIC,    -3),
    APT(SP_DJINNI,          SK_POISON_MAGIC,   -1),
    APT(SP_DJINNI,          SK_INVOCATIONS,    -1),
    APT(SP_DJINNI,          SK_EVOCATIONS,      1),

    // SP_LAVA_ORC
    APT(SP_LAVA_ORC,        SK_FIGHTING,        2),
    APT(SP_LAVA_ORC,        SK_SHORT_BLADES,    0),
    APT(SP_LAVA_ORC,        SK_LONG_BLADES,     1),
    APT(SP_LAVA_ORC,        SK_AXES,            2),
    APT(SP_LAVA_ORC,        SK_MACES_FLAILS,    1),
    APT(SP_LAVA_ORC,        SK_POLEARMS,        1),
    APT(SP_LAVA_ORC,        SK_STAVES,         -1),
    APT(SP_LAVA_ORC,        SK_SLINGS,         -2),
    APT(SP_LAVA_ORC,        SK_BOWS,           -2),
    APT(SP_LAVA_ORC,        SK_CROSSBOWS,      -2),
    APT(SP_LAVA_ORC,        SK_THROWING,       -1),
    APT(SP_LAVA_ORC,        SK_ARMOUR,          1),
    APT(SP_LAVA_ORC,        SK_DODGING,        -2),
    APT(SP_LAVA_ORC,        SK_STEALTH,        -1),
    APT(SP_LAVA_ORC,        SK_STABBING,      UNUSABLE_SKILL),
    APT(SP_LAVA_ORC,        SK_SHIELDS,         1),
    APT(SP_LAVA_ORC,        SK_TRAPS,         UNUSABLE_SKILL),
    APT(SP_LAVA_ORC,        SK_UNARMED_COMBAT,  1),
    APT(SP_LAVA_ORC,        SK_SPELLCASTING,   -3),
    APT(SP_LAVA_ORC,        SK_CONJURATIONS,    0),
    APT(SP_LAVA_ORC,        SK_HEXES,           0),
    APT(SP_LAVA_ORC,        SK_CHARMS,         -1),
    APT(SP_LAVA_ORC,        SK_SUMMONINGS,      0),
    APT(SP_LAVA_ORC,        SK_NECROMANCY,      0),
    APT(SP_LAVA_ORC,        SK_TRANSLOCATIONS, -2),
    APT(SP_LAVA_ORC,        SK_TRANSMUTATIONS,  3),
    APT(SP_LAVA_ORC,        SK_FIRE_MAGIC,      2),
    APT(SP_LAVA_ORC,        SK_ICE_MAGIC,      -4),
    APT(SP_LAVA_ORC,        SK_AIR_MAGIC,      -3),
    APT(SP_LAVA_ORC,        SK_EARTH_MAGIC,     1),
    APT(SP_LAVA_ORC,        SK_POISON_MAGIC,   -1),
    APT(SP_LAVA_ORC,        SK_INVOCATIONS,     3),
    APT(SP_LAVA_ORC,        SK_EVOCATIONS,      0),
#endif

    // SP_FORMICID
    APT(SP_FORMICID,        SK_FIGHTING,        1),
    APT(SP_FORMICID,        SK_SHORT_BLADES,    0),
    APT(SP_FORMICID,        SK_LONG_BLADES,     0),
    APT(SP_FORMICID,        SK_AXES,            0),
    APT(SP_FORMICID,        SK_MACES_FLAILS,    0),
    APT(SP_FORMICID,        SK_POLEARMS,        0),
    APT(SP_FORMICID,        SK_STAVES,          0),
    APT(SP_FORMICID,        SK_SLINGS,          1),
    APT(SP_FORMICID,        SK_BOWS,           -2),
    APT(SP_FORMICID,        SK_CROSSBOWS,       0),
    APT(SP_FORMICID,        SK_THROWING,        0),
    APT(SP_FORMICID,        SK_ARMOUR,          1),
    APT(SP_FORMICID,        SK_DODGING,        -1),
    APT(SP_FORMICID,        SK_STEALTH,         3),
#if TAG_MAJOR_VERSION == 34
    APT(SP_FORMICID,        SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_FORMICID,        SK_SHIELDS,         2),
#if TAG_MAJOR_VERSION == 34
    APT(SP_FORMICID,        SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_FORMICID,        SK_UNARMED_COMBAT,  0),
    APT(SP_FORMICID,        SK_SPELLCASTING,    0),
    APT(SP_FORMICID,        SK_CONJURATIONS,   -1),
    APT(SP_FORMICID,        SK_HEXES,           2),
    APT(SP_FORMICID,        SK_CHARMS,          0),
    APT(SP_FORMICID,        SK_SUMMONINGS,      0),
    APT(SP_FORMICID,        SK_NECROMANCY,      0),
    APT(SP_FORMICID,        SK_TRANSLOCATIONS, -1),
    APT(SP_FORMICID,        SK_TRANSMUTATIONS,  1),
    APT(SP_FORMICID,        SK_FIRE_MAGIC,      0),
    APT(SP_FORMICID,        SK_ICE_MAGIC,       0),
    APT(SP_FORMICID,        SK_AIR_MAGIC,      -2),
    APT(SP_FORMICID,        SK_EARTH_MAGIC,     2),
    APT(SP_FORMICID,        SK_POISON_MAGIC,    3),
    APT(SP_FORMICID,        SK_INVOCATIONS,     2),
    APT(SP_FORMICID,        SK_EVOCATIONS,      1),

    // SP_VINE_STALKER
    APT(SP_VINE_STALKER,    SK_FIGHTING,       -1),
    APT(SP_VINE_STALKER,    SK_SHORT_BLADES,   -1),
    APT(SP_VINE_STALKER,    SK_LONG_BLADES,    -1),
    APT(SP_VINE_STALKER,    SK_AXES,           -1),
    APT(SP_VINE_STALKER,    SK_MACES_FLAILS,   -1),
    APT(SP_VINE_STALKER,    SK_POLEARMS,       -1),
    APT(SP_VINE_STALKER,    SK_STAVES,         -1),
    APT(SP_VINE_STALKER,    SK_SLINGS,         -1),
    APT(SP_VINE_STALKER,    SK_BOWS,           -1),
    APT(SP_VINE_STALKER,    SK_CROSSBOWS,      -1),
    APT(SP_VINE_STALKER,    SK_THROWING,       -1),
    APT(SP_VINE_STALKER,    SK_ARMOUR,         -2),
    APT(SP_VINE_STALKER,    SK_DODGING,        -2),
    APT(SP_VINE_STALKER,    SK_STEALTH,         3),
#if TAG_MAJOR_VERSION == 34
    APT(SP_VINE_STALKER,    SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_VINE_STALKER,    SK_SHIELDS,        -1),
#if TAG_MAJOR_VERSION == 34
    APT(SP_VINE_STALKER,    SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_VINE_STALKER,    SK_UNARMED_COMBAT,  0),
    APT(SP_VINE_STALKER,    SK_SPELLCASTING,    0),
    APT(SP_VINE_STALKER,    SK_CONJURATIONS,    0),
    APT(SP_VINE_STALKER,    SK_HEXES,           0),
    APT(SP_VINE_STALKER,    SK_CHARMS,          0),
    APT(SP_VINE_STALKER,    SK_SUMMONINGS,      0),
    APT(SP_VINE_STALKER,    SK_NECROMANCY,      0),
    APT(SP_VINE_STALKER,    SK_TRANSLOCATIONS,  0),
    APT(SP_VINE_STALKER,    SK_TRANSMUTATIONS,  0),
    APT(SP_VINE_STALKER,    SK_FIRE_MAGIC,      0),
    APT(SP_VINE_STALKER,    SK_ICE_MAGIC,       0),
    APT(SP_VINE_STALKER,    SK_AIR_MAGIC,       0),
    APT(SP_VINE_STALKER,    SK_EARTH_MAGIC,     0),
    APT(SP_VINE_STALKER,    SK_POISON_MAGIC,    0),
    APT(SP_VINE_STALKER,    SK_INVOCATIONS,     0),
    APT(SP_VINE_STALKER,    SK_EVOCATIONS,     -1),

    // SP_BARACHI
    APT(SP_BARACHI,             SK_FIGHTING,        2),
    APT(SP_BARACHI,             SK_SHORT_BLADES,    1),
    APT(SP_BARACHI,             SK_LONG_BLADES,     2),
    APT(SP_BARACHI,             SK_AXES,            1),
    APT(SP_BARACHI,             SK_MACES_FLAILS,    1),
    APT(SP_BARACHI,             SK_POLEARMS,        0),
    APT(SP_BARACHI,             SK_STAVES,          1),
    APT(SP_BARACHI,             SK_SLINGS,          0),
    APT(SP_BARACHI,             SK_BOWS,            0),
    APT(SP_BARACHI,             SK_CROSSBOWS,       0),
    APT(SP_BARACHI,             SK_THROWING,        0),
    APT(SP_BARACHI,             SK_ARMOUR,          2),
    APT(SP_BARACHI,             SK_DODGING,         1),
    APT(SP_BARACHI,             SK_STEALTH,         0),
#if TAG_MAJOR_VERSION == 34
    APT(SP_BARACHI,             SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_BARACHI,             SK_SHIELDS,         1),
#if TAG_MAJOR_VERSION == 34
    APT(SP_BARACHI,             SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_BARACHI,             SK_UNARMED_COMBAT,  1),
    APT(SP_BARACHI,             SK_SPELLCASTING,    0),
    APT(SP_BARACHI,             SK_CONJURATIONS,    1),
    APT(SP_BARACHI,             SK_HEXES,           1),
    APT(SP_BARACHI,             SK_CHARMS,          1),
    APT(SP_BARACHI,             SK_SUMMONINGS,      2),
    APT(SP_BARACHI,             SK_NECROMANCY,     -1),
    APT(SP_BARACHI,             SK_TRANSLOCATIONS,  1),
    APT(SP_BARACHI,             SK_TRANSMUTATIONS,  1),
    APT(SP_BARACHI,             SK_FIRE_MAGIC,      1),
    APT(SP_BARACHI,             SK_ICE_MAGIC,       2),
    APT(SP_BARACHI,             SK_AIR_MAGIC,       1),
    APT(SP_BARACHI,             SK_EARTH_MAGIC,     0),
    APT(SP_BARACHI,             SK_POISON_MAGIC,    1),
    APT(SP_BARACHI,             SK_INVOCATIONS,    -1),
    APT(SP_BARACHI,             SK_EVOCATIONS,      1),

    // SP_GNOLL
    APT(SP_GNOLL,           SK_FIGHTING,        8),
    APT(SP_GNOLL,           SK_SHORT_BLADES,    8),
    APT(SP_GNOLL,           SK_LONG_BLADES,     8),
    APT(SP_GNOLL,           SK_AXES,            8),
    APT(SP_GNOLL,           SK_MACES_FLAILS,    8),
    APT(SP_GNOLL,           SK_POLEARMS,        8),
    APT(SP_GNOLL,           SK_STAVES,          8),
    APT(SP_GNOLL,           SK_SLINGS,          8),
    APT(SP_GNOLL,           SK_BOWS,            8),
    APT(SP_GNOLL,           SK_CROSSBOWS,       8),
    APT(SP_GNOLL,           SK_THROWING,        8),
    APT(SP_GNOLL,           SK_ARMOUR,          8),
    APT(SP_GNOLL,           SK_DODGING,         8),
    APT(SP_GNOLL,           SK_STEALTH,         8),
#if TAG_MAJOR_VERSION == 34
    APT(SP_GNOLL,           SK_STABBING,      UNUSABLE_SKILL),
#endif
    APT(SP_GNOLL,           SK_SHIELDS,         8),
#if TAG_MAJOR_VERSION == 34
    APT(SP_GNOLL,           SK_TRAPS,         UNUSABLE_SKILL),
#endif
    APT(SP_GNOLL,           SK_UNARMED_COMBAT,  8),
    APT(SP_GNOLL,           SK_SPELLCASTING,    8),
    APT(SP_GNOLL,           SK_CONJURATIONS,    6),
    APT(SP_GNOLL,           SK_HEXES,           6),
    APT(SP_GNOLL,           SK_CHARMS,          6),
    APT(SP_GNOLL,           SK_SUMMONINGS,      6),
    APT(SP_GNOLL,           SK_NECROMANCY,      6),
    APT(SP_GNOLL,           SK_TRANSLOCATIONS,  6),
    APT(SP_GNOLL,           SK_TRANSMUTATIONS,  6),
    APT(SP_GNOLL,           SK_FIRE_MAGIC,      6),
    APT(SP_GNOLL,           SK_ICE_MAGIC,       6),
    APT(SP_GNOLL,           SK_AIR_MAGIC,       6),
    APT(SP_GNOLL,           SK_EARTH_MAGIC,     6),
    APT(SP_GNOLL,           SK_POISON_MAGIC,    6),
    APT(SP_GNOLL,           SK_INVOCATIONS,     9),
    APT(SP_GNOLL,           SK_EVOCATIONS,      8),
};
COMPILE_CHECK(ARRAYSZ(species_skill_aptitudes) == NUM_SPECIES * NUM_SKILLS);
