From d9ffcee4837b22bd404589079373c9157ef448bb Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Tue, 8 Mar 2016 23:04:20 +0300
Subject: Rename Sp attributes to server values. Also add missing values for
 hercules.

---
 src/net/eathena/playerhandler.cpp |  67 ++++-----
 src/net/eathena/playerrecv.cpp    |   2 +-
 src/net/eathena/sp.h              | 283 ++++++++++++++++++++++++++++++++------
 src/net/tmwa/playerhandler.cpp    |  64 ++++-----
 src/net/tmwa/sp.h                 |  66 ++++-----
 5 files changed, 340 insertions(+), 142 deletions(-)

(limited to 'src/net')

diff --git a/src/net/eathena/playerhandler.cpp b/src/net/eathena/playerhandler.cpp
index 97d914b21..8a6a7e878 100644
--- a/src/net/eathena/playerhandler.cpp
+++ b/src/net/eathena/playerhandler.cpp
@@ -251,15 +251,15 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
 {
     switch (type)
     {
-        case Sp::WALK_SPEED:
+        case Sp::SPEED:
             localPlayer->setWalkSpeed(base);
             PlayerInfo::setStatBase(Attributes::WALK_SPEED, base);
             PlayerInfo::setStatMod(Attributes::WALK_SPEED, 0);
             break;
-        case Sp::EXP:
+        case Sp::BASEEXP:
             PlayerInfo::setAttribute(Attributes::EXP, base);
             break;
-        case Sp::JOB_EXP:
+        case Sp::JOBEXP:
             PlayerInfo::setStatExperience(Attributes::JOB, base,
                 PlayerInfo::getStatExperience(Attributes::JOB).second);
             break;
@@ -284,7 +284,7 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
                 }
             }
             break;
-        case Sp::MAX_HP:
+        case Sp::MAXHP:
             PlayerInfo::setAttribute(Attributes::MAX_HP, base);
 
             if (localPlayer->isInParty() && Party::getParty(1))
@@ -298,16 +298,16 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
                 }
             }
             break;
-        case Sp::MP:
+        case Sp::SP:
             PlayerInfo::setAttribute(Attributes::MP, base);
             break;
-        case Sp::MAX_MP:
+        case Sp::MAXSP:
             PlayerInfo::setAttribute(Attributes::MAX_MP, base);
             break;
-        case Sp::CHAR_POINTS:
+        case Sp::STATUSPOINT:
             PlayerInfo::setAttribute(Attributes::CHAR_POINTS, base);
             break;
-        case Sp::LEVEL:
+        case Sp::BASELEVEL:
             PlayerInfo::setAttribute(Attributes::LEVEL, base);
             if (localPlayer)
             {
@@ -315,7 +315,7 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
                 localPlayer->updateName();
             }
             break;
-        case Sp::SKILL_POINTS:
+        case Sp::SKILLPOINT:
             PlayerInfo::setAttribute(Attributes::SKILL_POINTS, base);
             if (skillDialog)
                 skillDialog->update();
@@ -338,7 +338,7 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
         case Sp::LUK:
             setStatComplex(Attributes::LUK);
             break;
-        case Sp::MONEY:
+        case Sp::ZENY:
         {
             const int oldMoney = PlayerInfo::getAttribute(Attributes::MONEY);
             const int newMoney = base;
@@ -356,83 +356,84 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
             PlayerInfo::setAttribute(Attributes::MONEY, newMoney);
             break;
         }
-        case Sp::EXP_NEEDED:
+        case Sp::NEXTBASEEXP:
             PlayerInfo::setAttribute(Attributes::EXP_NEEDED, base);
             break;
-        case Sp::JOB_MOD:
+        // ++ here used in wrong way. Need like Sp::NEXTBASEEXP?
+        case Sp::NEXTJOBEXP:
             PlayerInfo::setStatExperience(Attributes::JOB,
                 PlayerInfo::getStatExperience(Attributes::JOB).first, base);
             break;
-        case Sp::TOTAL_WEIGHT:
+        case Sp::WEIGHT:
             PlayerInfo::setAttribute(Attributes::TOTAL_WEIGHT, base);
             break;
-        case Sp::MAX_WEIGHT:
+        case Sp::MAXWEIGHT:
             PlayerInfo::setAttribute(Attributes::MAX_WEIGHT, base);
             break;
-        case Sp::STR_NEEDED:
+        case Sp::USTR:
             statusWindow->setPointsNeeded(Attributes::STR, base);
             break;
-        case Sp::AGI_NEEDED:
+        case Sp::UAGI:
             statusWindow->setPointsNeeded(Attributes::AGI, base);
             break;
-        case Sp::VIT_NEEDED:
+        case Sp::UVIT:
             statusWindow->setPointsNeeded(Attributes::VIT, base);
             break;
-        case Sp::INT_NEEDED:
+        case Sp::UINT:
             statusWindow->setPointsNeeded(Attributes::INT, base);
             break;
-        case Sp::DEX_NEEDED:
+        case Sp::UDEX:
             statusWindow->setPointsNeeded(Attributes::DEX, base);
             break;
-        case Sp::LUK_NEEDED:
+        case Sp::ULUK:
             statusWindow->setPointsNeeded(Attributes::LUK, base);
             break;
 
-        case Sp::ATK:
+        case Sp::ATK1:
             PlayerInfo::setStatBase(Attributes::ATK, base);
             PlayerInfo::updateAttrs();
             break;
-        case Sp::ATK_MOD:
+        case Sp::ATK2:
             PlayerInfo::setStatMod(Attributes::ATK, base);
             PlayerInfo::updateAttrs();
             break;
-        case Sp::MATK:
+        case Sp::MATK1:
             PlayerInfo::setStatBase(Attributes::MATK, base);
             break;
-        case Sp::MATK_MOD:
+        case Sp::MATK2:
             PlayerInfo::setStatMod(Attributes::MATK, base);
             break;
-        case Sp::DEF:
+        case Sp::DEF1:
             PlayerInfo::setStatBase(Attributes::DEF, base);
             break;
-        case Sp::DEF_MOD:
+        case Sp::DEF2:
             PlayerInfo::setStatMod(Attributes::DEF, base);
             break;
-        case Sp::MDEF:
+        case Sp::MDEF1:
             PlayerInfo::setStatBase(Attributes::MDEF, base);
             break;
-        case Sp::MDEF_MOD:
+        case Sp::MDEF2:
             PlayerInfo::setStatMod(Attributes::MDEF, base);
             break;
         case Sp::HIT:
             PlayerInfo::setStatBase(Attributes::HIT, base);
             break;
-        case Sp::FLEE:
+        case Sp::FLEE1:
             PlayerInfo::setStatBase(Attributes::FLEE, base);
             break;
-        case Sp::FLEE_MOD:
+        case Sp::FLEE2:
             PlayerInfo::setStatMod(Attributes::FLEE, base);
             break;
-        case Sp::CRIT:
+        case Sp::CRITICAL:
             PlayerInfo::setStatBase(Attributes::CRIT, base);
             break;
-        case Sp::ATTACK_DELAY:
+        case Sp::ASPD:
             localPlayer->setAttackSpeed(base);
             PlayerInfo::setStatBase(Attributes::ATTACK_DELAY, base);
             PlayerInfo::setStatMod(Attributes::ATTACK_DELAY, 0);
             PlayerInfo::updateAttrs();
             break;
-        case Sp::JOB:
+        case Sp::JOBLEVEL:
             PlayerInfo::setStatBase(Attributes::JOB, base);
             break;
 
diff --git a/src/net/eathena/playerrecv.cpp b/src/net/eathena/playerrecv.cpp
index 2f3f6294c..9b5c50c96 100644
--- a/src/net/eathena/playerrecv.cpp
+++ b/src/net/eathena/playerrecv.cpp
@@ -250,7 +250,7 @@ void PlayerRecv::processPlayerHeal(Net::MessageIn &msg)
         }
         localPlayer->addHpMessage(amount);
     }
-    else if (type == Sp::MP)
+    else if (type == Sp::SP)
     {
         localPlayer->addSpMessage(amount);
     }
diff --git a/src/net/eathena/sp.h b/src/net/eathena/sp.h
index 7342786be..f3f1c7e1d 100644
--- a/src/net/eathena/sp.h
+++ b/src/net/eathena/sp.h
@@ -27,50 +27,245 @@ namespace Sp
 {
     enum
     {
-        WALK_SPEED   = 0,
-        EXP          = 1,
-        JOB_EXP      = 2,
-        KARMA        = 3,
-        MANNER       = 4,
-        HP           = 5,
-        MAX_HP       = 6,
-        MP           = 7,
-        MAX_MP       = 8,
-        CHAR_POINTS  = 9,
-        LEVEL        = 11,
-        SKILL_POINTS = 12,
-        STR          = 13,
-        AGI          = 14,
-        VIT          = 15,
-        INT          = 16,
-        DEX          = 17,
-        LUK          = 18,
-        MONEY        = 20,
-        EXP_NEEDED   = 22,
-        JOB_MOD      = 23,
-        TOTAL_WEIGHT = 24,
-        MAX_WEIGHT   = 25,
-        STR_NEEDED   = 32,
-        AGI_NEEDED   = 33,
-        VIT_NEEDED   = 34,
-        INT_NEEDED   = 35,
-        DEX_NEEDED   = 36,
-        LUK_NEEDED   = 37,
-        ATK          = 41,
-        ATK_MOD      = 42,
-        MATK         = 43,
-        MATK_MOD     = 44,
-        DEF          = 45,
-        DEF_MOD      = 46,
-        MDEF         = 47,
-        MDEF_MOD     = 48,
-        HIT          = 49,
-        FLEE         = 50,
-        FLEE_MOD     = 51,
-        CRIT         = 52,
-        ATTACK_DELAY = 53,
-        JOB          = 55
+        SPEED                   = 0,
+        BASEEXP                 = 1,
+        JOBEXP                  = 2,
+        KARMA                   = 3,
+        MANNER                  = 4,
+        HP                      = 5,
+        MAXHP                   = 6,
+        SP                      = 7,
+        MAXSP                   = 8,
+        STATUSPOINT             = 9,
+        VAL10                   = 10,
+        BASELEVEL               = 11,
+        SKILLPOINT              = 12,
+        STR                     = 13,
+        AGI                     = 14,
+        VIT                     = 15,
+        INT                     = 16,
+        DEX                     = 17,
+        LUK                     = 18,
+        CLASS                   = 19,
+        ZENY                    = 20,
+        SEX                     = 21,
+        NEXTBASEEXP             = 22,
+        NEXTJOBEXP              = 23,
+        WEIGHT                  = 24,
+        MAXWEIGHT               = 25,
+        VAL26                   = 26,
+        VAL27                   = 27,
+        VAL28                   = 28,
+        VAL29                   = 29,
+        VAL30                   = 30,
+        VAL31                   = 31,
+        USTR                    = 32,
+        UAGI                    = 33,
+        UVIT                    = 34,
+        UINT                    = 35,
+        UDEX                    = 36,
+        ULUK                    = 37,
+        VAL38                   = 38,
+        VAL39                   = 39,
+        VAL40                   = 40,
+        ATK1                    = 41,
+        ATK2                    = 42,
+        MATK1                   = 43,
+        MATK2                   = 44,
+        DEF1                    = 45,
+        DEF2                    = 46,
+        MDEF1                   = 47,
+        MDEF2                   = 48,
+        HIT                     = 49,
+        FLEE1                   = 50,
+        FLEE2                   = 51,
+        CRITICAL                = 52,
+        ASPD                    = 53,
+        VAL54                   = 54,
+        JOBLEVEL                = 55,
+        UPPER                   = 56,
+        PARTNER                 = 57,
+        CART                    = 58,
+        FAME                    = 59,
+        UNBREAKABLE             = 60,
+
+        CARTINFO                = 99,
+
+        BASEJOB                 = 119,
+        BASECLASS               = 120,
+        KILLERRID               = 121,
+        KILLEDRID               = 122,
+        SLOTCHANGE              = 123,
+        CHARRENAME              = 124,
+        MOD_EXP                 = 125,
+        MOD_DROP                = 126,
+        MOD_DEATH               = 127,
+
+        SP_MERCFLEE             = 165,
+
+        MERCKILLS               = 189,
+        MERCFAITH               = 190,
+
+        ATTACKRANGE             = 1000,
+        ATKELE                  = 1001,
+        DEFELE                  = 1002,
+        CASTRATE                = 1003,
+        MAXHPRATE               = 1004,
+        MAXSPRATE               = 1005,
+        SPRATE                  = 1006,
+
+        ADDELE                  = 1007,
+        ADDRACE                 = 1008,
+        ADDSIZE                 = 1009,
+        SUBELE                  = 1010,
+        SUBRACE                 = 1011,
+        ADDEFF                  = 1012,
+        RESEFF                  = 1013,
+        BASE_ATK                = 1014,
+        ASPD_RATE               = 1015,
+        HP_RECOV_RATE           = 1016,
+        RECOV_RATE              = 1017,
+        SPEED_RATE              = 1018,
+        CRITICAL_DEF            = 1019,
+        NEAR_ATK_DEF            = 1020,
+        LONG_ATK_DEF            = 1021,
+        DOUBLE_RATE             = 1022,
+        DOUBLE_ADD_RATE         = 1023,
+        SKILL_HEAL              = 1024,
+        MATK_RATE               = 1025,
+        IGNORE_DEF_ELE          = 1026,
+        IGNORE_DEF_RACE         = 1027,
+        ATK_RATE                = 1028,
+        SPEED_ADDRATE           = 1029,
+        REGEN_RATE              = 1030,
+        MAGIC_ATK_DEF           = 1031,
+        MISC_ATK_DEF            = 1032,
+        IGNORE_MDEF_ELE         = 1033,
+        IGNORE_MDEF_RACE        = 1034,
+        MAGIC_ADDELE            = 1035,
+        MAGIC_ADDRACE           = 1036,
+        MAGIC_ADDSIZE           = 1037,
+        PERFECT_HIT_RATE        = 1038,
+        PERFECT_HIT_ADD_RATE    = 1039,
+        CRITICAL_RATE           = 1040,
+        GET_ZENY_NUM            = 1041,
+        ADD_GET_ZENY_NUM        = 1042,
+        ADD_DAMAGE_CLASS        = 1043,
+        ADD_MAGIC_DAMAGE_CLASS  = 1044,
+        ADD_DEF_CLASS           = 1045,
+        ADD_MDEF_CLASS          = 1046,
+        ADD_MONSTER_DROP_ITEM   = 1047,
+        DEF_RATIO_ATK_ELE       = 1048,
+        DEF_RATIO_ATK_RACE      = 1049,
+        UNBREAKABLE_GARMENT     = 1050,
+        HIT_RATE                = 1051,
+        FLEE_RATE               = 1052,
+        FLEE2_RATE              = 1053,
+        DEF_RATE                = 1054,
+        DEF2_RATE               = 1055,
+        MDEF_RATE               = 1056,
+        MDEF2_RATE              = 1057,
+        SPLASH_RANGE            = 1058,
+        SPLASH_ADD_RANGE        = 1059,
+        AUTOSPELL               = 1060,
+        HP_DRAIN_RATE           = 1061,
+        DRAIN_RATE              = 1062,
+        SHORT_WEAPON_DAMAGE_RETURN = 1063,
+        LONG_WEAPON_DAMAGE_RETURN = 1064,
+        WEAPON_COMA_ELE         = 1065,
+        WEAPON_COMA_RACE        = 1066,
+        ADDEFF2                 = 1067,
+        BREAK_WEAPON_RATE       = 1068,
+        BREAK_ARMOR_RATE        = 1069,
+        ADD_STEAL_RATE          = 1070,
+        MAGIC_DAMAGE_RETURN     = 1071,
+
+        ALL_STATS               = 1073,
+        AGI_VIT                 = 1074,
+        AGI_DEX_STR             = 1075,
+        PERFECT_HIDE            = 1076,
+        NO_KNOCKBACK            = 1077,
+        CLASSCHANGE             = 1078,
+        HP_DRAIN_VALUE          = 1079,
+        DRAIN_VALUE             = 1080,
+        WEAPON_ATK              = 1081,
+        WEAPON_ATK_RATE         = 1082,
+        DELAYRATE               = 1083,
+        HP_DRAIN_RATE_RACE      = 1084,
+        DRAIN_RATE_RACE         = 1085,
+        IGNORE_MDEF_RATE        = 1086,
+        IGNORE_DEF_RATE         = 1087,
+        SKILL_HEAL2             = 1088,
+        ADDEFF_ONSKILL          = 1089,
+        ADD_HEAL_RATE           = 1090,
+        ADD_HEAL2_RATE          = 1091,
+        HP_VANISH_RATE          = 1092,
+
+        RESTART_FULL_RECOVER    = 2000,
+        NO_CASTCANCEL           = 2001,
+        NO_SIZEFIX              = 2002,
+        NO_MAGIC_DAMAGE         = 2003,
+        NO_WEAPON_DAMAGE        = 2004,
+        NO_GEMSTONE             = 2005,
+        NO_CASTCANCEL2          = 2006,
+        NO_MISC_DAMAGE          = 2007,
+        UNBREAKABLE_WEAPON      = 2008,
+        UNBREAKABLE_ARMOR       = 2009,
+        UNBREAKABLE_HELM        = 2010,
+        UNBREAKABLE_SHIELD      = 2011,
+        LONG_ATK_RATE           = 2012,
+
+        CRIT_ATK_RATE           = 2013,
+        CRITICAL_ADDRACE        = 2014,
+        NO_REGEN                = 2015,
+        ADDEFF_WHENHIT          = 2016,
+        AUTOSPELL_WHENHIT       = 2017,
+        SKILL_ATK               = 2018,
+        UNSTRIPABLE             = 2019,
+        AUTOSPELL_ONSKILL       = 2020,
+        GAIN_VALUE              = 2021,
+        HP_REGEN_RATE           = 2022,
+        HP_LOSS_RATE            = 2023,
+        ADDRACE2                = 2024,
+        HP_GAIN_VALUE           = 2025,
+        SUBSIZE                 = 2026,
+        HP_DRAIN_VALUE_RACE     = 2027,
+        ADD_ITEM_HEAL_RATE      = 2028,
+        DRAIN_VALUE_RACE        = 2029,
+        EXP_ADDRACE             = 2030,
+        GAIN_RACE               = 2031,
+        SUBRACE2                = 2032,
+        UNBREAKABLE_SHOES       = 2033,
+        UNSTRIPABLE_WEAPON      = 2034,
+        UNSTRIPABLE_ARMOR       = 2035,
+        UNSTRIPABLE_HELM        = 2036,
+        UNSTRIPABLE_SHIELD      = 2037,
+        INTRAVISION             = 2038,
+        ADD_MONSTER_DROP_CHAINITEM = 2039,
+        LOSS_RATE               = 2040,
+        ADD_SKILL_BLOW          = 2041,
+        VANISH_RATE             = 2042,
+        MAGIC_GAIN_VALUE        = 2043,
+        MAGIC_HP_GAIN_VALUE     = 2044,
+        ADD_CLASS_DROP_ITEM     = 2045,
+        EMATK                   = 2046,
+        GAIN_RACE_ATTACK        = 2047,
+        HP_GAIN_RACE_ATTACK     = 2048,
+        SKILL_USE_RATE          = 2049,
+        SKILL_COOLDOWN          = 2050,
+        SKILL_FIXEDCAST         = 2051,
+        SKILL_VARIABLECAST      = 2052,
+        FIXCASTRATE             = 2053,
+        VARCASTRATE             = 2054,
+        SKILL_USE_SP            = 2055,
+        MAGIC_ATK_ELE           = 2056,
+        ADD_FIXEDCAST           = 2057,
+        ADD_VARIABLECAST        = 2058,
+        SET_DEF_RACE            = 2059,
+        SET_MDEF_RACE           = 2060,
+        RACE_TOLERANCE          = 2061,
+        ADDMAXWEIGHT            = 2062
     };
 }  // namespace Sp
 
-#endif  // NET_EATHENA_SP_H
+#endif  // NET_EATHENA_H
diff --git a/src/net/tmwa/playerhandler.cpp b/src/net/tmwa/playerhandler.cpp
index 33481d85a..c34aca907 100644
--- a/src/net/tmwa/playerhandler.cpp
+++ b/src/net/tmwa/playerhandler.cpp
@@ -224,15 +224,15 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
 {
     switch (type)
     {
-        case Sp::WALK_SPEED:
+        case Sp::SPEED:
             localPlayer->setWalkSpeed(base);
             PlayerInfo::setStatBase(Attributes::WALK_SPEED, base);
             PlayerInfo::setStatMod(Attributes::WALK_SPEED, 0);
             break;
-        case Sp::EXP:
+        case Sp::BASEEXP:
             PlayerInfo::setAttribute(Attributes::EXP, base);
             break;
-        case Sp::JOB_EXP:
+        case Sp::JOBEXP:
             PlayerInfo::setStatExperience(Attributes::JOB, base,
                 PlayerInfo::getStatExperience(Attributes::JOB).second);
             break;
@@ -257,7 +257,7 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
                 }
             }
             break;
-        case Sp::MAX_HP:
+        case Sp::MAXHP:
             PlayerInfo::setAttribute(Attributes::MAX_HP, base);
 
             if (localPlayer->isInParty() && Party::getParty(1))
@@ -271,16 +271,16 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
                 }
             }
             break;
-        case Sp::MP:
+        case Sp::SP:
             PlayerInfo::setAttribute(Attributes::MP, base);
             break;
-        case Sp::MAX_MP:
+        case Sp::MAXSP:
             PlayerInfo::setAttribute(Attributes::MAX_MP, base);
             break;
-        case Sp::CHAR_POINTS:
+        case Sp::STATUSPOINT:
             PlayerInfo::setAttribute(Attributes::CHAR_POINTS, base);
             break;
-        case Sp::LEVEL:
+        case Sp::BASELEVEL:
             PlayerInfo::setAttribute(Attributes::LEVEL, base);
             if (localPlayer)
             {
@@ -288,7 +288,7 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
                 localPlayer->updateName();
             }
             break;
-        case Sp::SKILL_POINTS:
+        case Sp::SKILLPOINT:
             PlayerInfo::setAttribute(Attributes::SKILL_POINTS, base);
             if (skillDialog)
                 skillDialog->update();
@@ -311,7 +311,7 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
         case Sp::LUK:
             setStatComplex(Attributes::LUK);
             break;
-        case Sp::MONEY:
+        case Sp::ZENY:
         {
             const int oldMoney = PlayerInfo::getAttribute(Attributes::MONEY);
             const int newMoney = base;
@@ -329,83 +329,83 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
             PlayerInfo::setAttribute(Attributes::MONEY, newMoney);
             break;
         }
-        case Sp::EXP_NEEDED:
+        case Sp::NEXTBASEEXP:
             PlayerInfo::setAttribute(Attributes::EXP_NEEDED, base);
             break;
         case Sp::JOB_MOD:
             PlayerInfo::setStatExperience(Attributes::JOB,
                 PlayerInfo::getStatExperience(Attributes::JOB).first, base);
             break;
-        case Sp::TOTAL_WEIGHT:
+        case Sp::WEIGHT:
             PlayerInfo::setAttribute(Attributes::TOTAL_WEIGHT, base);
             break;
-        case Sp::MAX_WEIGHT:
+        case Sp::MAXWEIGHT:
             PlayerInfo::setAttribute(Attributes::MAX_WEIGHT, base);
             break;
-        case Sp::STR_NEEDED:
+        case Sp::USTR:
             statusWindow->setPointsNeeded(Attributes::STR, base);
             break;
-        case Sp::AGI_NEEDED:
+        case Sp::UAGI:
             statusWindow->setPointsNeeded(Attributes::AGI, base);
             break;
-        case Sp::VIT_NEEDED:
+        case Sp::UVIT:
             statusWindow->setPointsNeeded(Attributes::VIT, base);
             break;
-        case Sp::INT_NEEDED:
+        case Sp::UINT:
             statusWindow->setPointsNeeded(Attributes::INT, base);
             break;
-        case Sp::DEX_NEEDED:
+        case Sp::UDEX:
             statusWindow->setPointsNeeded(Attributes::DEX, base);
             break;
-        case Sp::LUK_NEEDED:
+        case Sp::ULUK:
             statusWindow->setPointsNeeded(Attributes::LUK, base);
             break;
 
-        case Sp::ATK:
+        case Sp::ATK1:
             PlayerInfo::setStatBase(Attributes::ATK, base);
             PlayerInfo::updateAttrs();
             break;
-        case Sp::ATK_MOD:
+        case Sp::ATK2:
             PlayerInfo::setStatMod(Attributes::ATK, base);
             PlayerInfo::updateAttrs();
             break;
-        case Sp::MATK:
+        case Sp::MATK1:
             PlayerInfo::setStatBase(Attributes::MATK, base);
             break;
-        case Sp::MATK_MOD:
+        case Sp::MATK2:
             PlayerInfo::setStatMod(Attributes::MATK, base);
             break;
-        case Sp::DEF:
+        case Sp::DEF1:
             PlayerInfo::setStatBase(Attributes::DEF, base);
             break;
-        case Sp::DEF_MOD:
+        case Sp::DEF2:
             PlayerInfo::setStatMod(Attributes::DEF, base);
             break;
-        case Sp::MDEF:
+        case Sp::MDEF1:
             PlayerInfo::setStatBase(Attributes::MDEF, base);
             break;
-        case Sp::MDEF_MOD:
+        case Sp::MDEF2:
             PlayerInfo::setStatMod(Attributes::MDEF, base);
             break;
         case Sp::HIT:
             PlayerInfo::setStatBase(Attributes::HIT, base);
             break;
-        case Sp::FLEE:
+        case Sp::FLEE1:
             PlayerInfo::setStatBase(Attributes::FLEE, base);
             break;
-        case Sp::FLEE_MOD:
+        case Sp::FLEE2:
             PlayerInfo::setStatMod(Attributes::FLEE, base);
             break;
-        case Sp::CRIT:
+        case Sp::CRITICAL:
             PlayerInfo::setStatBase(Attributes::CRIT, base);
             break;
-        case Sp::ATTACK_DELAY:
+        case Sp::ASPD:
             localPlayer->setAttackSpeed(base);
             PlayerInfo::setStatBase(Attributes::ATTACK_DELAY, base);
             PlayerInfo::setStatMod(Attributes::ATTACK_DELAY, 0);
             PlayerInfo::updateAttrs();
             break;
-        case Sp::JOB:
+        case Sp::JOBLEVEL:
             PlayerInfo::setStatBase(Attributes::JOB, base);
             break;
         case Sp::GM_LEVEL:
diff --git a/src/net/tmwa/sp.h b/src/net/tmwa/sp.h
index 01a552ea5..f4116e1f1 100644
--- a/src/net/tmwa/sp.h
+++ b/src/net/tmwa/sp.h
@@ -27,49 +27,51 @@ namespace Sp
 {
     enum
     {
-        WALK_SPEED   = 0,
-        EXP          = 1,
-        JOB_EXP      = 2,
+        SPEED        = 0,
+        BASEEXP      = 1,
+        JOBEXP       = 2,
         KARMA        = 3,
         MANNER       = 4,
         HP           = 5,
-        MAX_HP       = 6,
-        MP           = 7,
-        MAX_MP       = 8,
-        CHAR_POINTS  = 9,
-        LEVEL        = 11,
-        SKILL_POINTS = 12,
+        MAXHP        = 6,
+        SP           = 7,
+        MAXSP        = 8,
+        STATUSPOINT  = 9,
+        BASELEVEL    = 11,
+        SKILLPOINT   = 12,
         STR          = 13,
         AGI          = 14,
         VIT          = 15,
         INT          = 16,
         DEX          = 17,
         LUK          = 18,
-        MONEY        = 20,
-        EXP_NEEDED   = 22,
+        CLASS        = 19,
+        ZENY         = 20,
+        SEX          = 21,
+        NEXTBASEEXP  = 22,
         JOB_MOD      = 23,
-        TOTAL_WEIGHT = 24,
-        MAX_WEIGHT   = 25,
-        STR_NEEDED   = 32,
-        AGI_NEEDED   = 33,
-        VIT_NEEDED   = 34,
-        INT_NEEDED   = 35,
-        DEX_NEEDED   = 36,
-        LUK_NEEDED   = 37,
-        ATK          = 41,
-        ATK_MOD      = 42,
-        MATK         = 43,
-        MATK_MOD     = 44,
-        DEF          = 45,
-        DEF_MOD      = 46,
-        MDEF         = 47,
-        MDEF_MOD     = 48,
+        WEIGHT       = 24,
+        MAXWEIGHT    = 25,
+        USTR         = 32,
+        UAGI         = 33,
+        UVIT         = 34,
+        UINT         = 35,
+        UDEX         = 36,
+        ULUK         = 37,
+        ATK1         = 41,
+        ATK2         = 42,
+        MATK1        = 43,
+        MATK2        = 44,
+        DEF1         = 45,
+        DEF2         = 46,
+        MDEF1        = 47,
+        MDEF2        = 48,
         HIT          = 49,
-        FLEE         = 50,
-        FLEE_MOD     = 51,
-        CRIT         = 52,
-        ATTACK_DELAY = 53,
-        JOB          = 55,
+        FLEE1        = 50,
+        FLEE2        = 51,
+        CRITICAL     = 52,
+        ASPD         = 53,
+        JOBLEVEL     = 55,
 
         GM_LEVEL     = 500
     };
-- 
cgit v1.2.3-70-g09d2