From a73ac9cfe85beef94c94e0f578e2bbe1718ea936 Mon Sep 17 00:00:00 2001 From: "Michael Cook (mackal)" Date: Wed, 24 Sep 2014 23:35:10 -0400 Subject: [PATCH] Added helper function bool EQEmu::IsTradeskill(uint32 skill) Returns true if you pass a tradeskill to it, otherwise false --- changelog.txt | 1 + common/CMakeLists.txt | 3 ++- common/skills.cpp | 40 ++++++++++++++++++++++++++++++++++++++++ common/skills.h | 5 +++++ world/client.cpp | 23 +++++------------------ 5 files changed, 53 insertions(+), 19 deletions(-) create mode 100644 common/skills.cpp diff --git a/changelog.txt b/changelog.txt index f5ada28d5..fdc882932 100644 --- a/changelog.txt +++ b/changelog.txt @@ -2,6 +2,7 @@ EQEMu Changelog (Started on Sept 24, 2003 15:50) ------------------------------------------------------- == 09/24/2014 == Uleat: Re-ordered server opcodes and handlers to give them some predictability of location (I need this for the inventory re-enumeration.) +demonstar55: Added helper function bool EQEmu::IsTradeskill(uint32 skill) == 09/22/2014 == Akkadius: #resetaa now covers the function of #resetaa and #refundaa diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index 6047e2712..65d5e9caf 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -55,8 +55,9 @@ SET(common_sources rulesys.cpp serverinfo.cpp shareddb.cpp + skills.cpp spdat.cpp - string_util.cpp + string_util.cpp struct_strategy.cpp tcp_connection.cpp tcp_server.cpp diff --git a/common/skills.cpp b/common/skills.cpp new file mode 100644 index 000000000..96b87c4a9 --- /dev/null +++ b/common/skills.cpp @@ -0,0 +1,40 @@ +/* EQEMu: Everquest Server Emulator + Copyright (C) 2001-2002 EQEMu Development Team (http://eqemu.org) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY except by those people which sell it, which + are required to give you total support for your newly bought product; + without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ +#include "types.h" +#include "skills.h" + +bool EQEmu::IsTradeskill(uint32 skill) +{ + switch (skill) { + case SkillFishing: + case SkillMakePoison: + case SkillTinkering: + case SkillResearch: + case SkillAlchemy: + case SkillBaking: + case SkillTailoring: + case SkillBlacksmithing: + case SkillFletching: + case SkillBrewing: + case SkillPottery: + case SkillJewelryMaking: + return true; + default: + return false; + } +} diff --git a/common/skills.h b/common/skills.h index 88b05967f..15876cedc 100644 --- a/common/skills.h +++ b/common/skills.h @@ -260,4 +260,9 @@ typedef enum { #define HIGHEST_SKILL FRENZY */ +// for skill related helper functions +namespace EQEmu { + bool IsTradeskill(uint32 skill); +} + #endif diff --git a/world/client.cpp b/world/client.cpp index ca90b1f46..9120ce70b 100644 --- a/world/client.cpp +++ b/world/client.cpp @@ -1790,28 +1790,15 @@ bool CheckCharCreateInfoTitanium(CharCreate_Struct *cc) return Charerrors == 0; } -void Client::SetClassStartingSkills( PlayerProfile_Struct *pp ) +void Client::SetClassStartingSkills(PlayerProfile_Struct *pp) { - for(uint32 i = 0; i <= HIGHEST_SKILL; ++i) { - if(pp->skills[i] == 0) { - if(i >= SkillSpecializeAbjure && i <= SkillSpecializeEvocation) { + for (uint32 i = 0; i <= HIGHEST_SKILL; ++i) { + if (pp->skills[i] == 0) { + if (i >= SkillSpecializeAbjure && i <= SkillSpecializeEvocation) continue; - } - if(i == SkillMakePoison || - i == SkillTinkering || - i == SkillResearch || - i == SkillAlchemy || - i == SkillBaking || - i == SkillTailoring || - i == SkillBlacksmithing || - i == SkillFletching || - i == SkillBrewing || - i == SkillPottery || - i == SkillJewelryMaking || - i == SkillBegging) { + if (EQEmu::IsTradeskill(i) || i == SkillBegging) continue; - } pp->skills[i] = database.GetSkillCap(pp->class_, (SkillUseTypes)i, 1); }