mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 21:01:29 +00:00
# Perl - Add `$client->GetDeityBitmask()`. - Add `quest::get_class_bitmask(class_id)`. - Add `quest::get_deity_bitmask(deity_id)`. - Add `quest::get_race_bitmask(race_id)`. # Lua - Add `client:GetDeityBitmask()`. - Add `eq.get_class_bitmask(class_id)`. - Add `eq.get_deity_bitmask(deity_id)`. - Add `eq.get_race_bitmask(race_id)`. # Notes - Allows operators to get the class/deity/race bitmask of a class/deity/race by ID. - Allows operators to get a client's deity bitmask.
2304 lines
59 KiB
C++
2304 lines
59 KiB
C++
/* EQEMu: Everquest Server Emulator
|
|
Copyright (C) 2001-2016 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 "../common/races.h"
|
|
#include "data_verification.h"
|
|
|
|
const char* GetRaceIDName(uint16 race_id)
|
|
{
|
|
switch (race_id) {
|
|
// Old Race Labels
|
|
//case HUMAN:
|
|
// return "Human";
|
|
//case BARBARIAN:
|
|
// return "Barbarian";
|
|
//case ERUDITE:
|
|
// return "Erudite";
|
|
//case WOOD_ELF:
|
|
// return "Wood Elf";
|
|
//case HIGH_ELF:
|
|
// return "High Elf";
|
|
//case DARK_ELF:
|
|
// return "Dark Elf";
|
|
//case HALF_ELF:
|
|
// return "Half Elf";
|
|
//case DWARF:
|
|
// return "Dwarf";
|
|
//case TROLL:
|
|
// return "Troll";
|
|
//case OGRE:
|
|
// return "Ogre";
|
|
//case HALFLING:
|
|
// return "Halfling";
|
|
//case GNOME:
|
|
// return "Gnome";
|
|
//case IKSAR:
|
|
// return "Iksar";
|
|
//case WEREWOLF:
|
|
// return "Werewolf";
|
|
//case SKELETON:
|
|
// return "Skeleton";
|
|
//case ELEMENTAL:
|
|
// return "Elemental";
|
|
//case EYE_OF_ZOMM:
|
|
// return "Eye of Zomm";
|
|
//case WOLF_ELEMENTAL:
|
|
// return "Wolf Elemental";
|
|
//case IKSAR_SKELETON:
|
|
// return "Iksar Skeleton";
|
|
//case VAHSHIR:
|
|
// return "Vah Shir";
|
|
//case FROGLOK:
|
|
//case FROGLOK2: // "Piranha"? (low-byte issue..)
|
|
// return "Froglok";
|
|
//case DRAKKIN:
|
|
// return "Drakkin";
|
|
|
|
// RoF2 Race Labels
|
|
case Race::Abhorrent:
|
|
return "Abhorrent";
|
|
case Race::AirElemental:
|
|
case Race::AirElemental2:
|
|
return "Air Elemental";
|
|
case Race::AirMephit:
|
|
return "Air Mephit";
|
|
case Race::Akhevan:
|
|
case Race::Akheva:
|
|
return "Akheva";
|
|
case Race::Alaran:
|
|
return "Alaran";
|
|
case Race::AlaranGhost:
|
|
return "Alaran Ghost";
|
|
case Race::AlaranSentryStone:
|
|
return "Alaran Sentry Stone";
|
|
case Race::Alligator:
|
|
case Race::Alligator2:
|
|
return "Alligator";
|
|
case Race::Denizen:
|
|
case Race::Amygdalan:
|
|
return "Amygdalan";
|
|
case Race::Aneuk:
|
|
return "Aneuk";
|
|
case Race::AnimatedArmor:
|
|
return "Animated Armor";
|
|
case Race::AnimatedHand:
|
|
return "Animated Hand";
|
|
case Race::AnimatedStatue:
|
|
case Race::AnimatedStatue2:
|
|
return "Animated Statue";
|
|
case Race::Apexus:
|
|
return "Apexus";
|
|
case Race::Arachnid:
|
|
return "Arachnid";
|
|
case Race::ArcanistOfHate:
|
|
return "Arcanist of Hate";
|
|
case Race::Armadillo:
|
|
return "Armadillo";
|
|
case Race::ArmorRack:
|
|
return "Armor Rack";
|
|
case Race::Aviak:
|
|
case Race::Aviak2:
|
|
return "Aviak";
|
|
case Race::AviakPullAlong:
|
|
return "Aviak Pull Along";
|
|
case Race::AyonaeRo:
|
|
return "Ayonae Ro";
|
|
case Race::Banner:
|
|
case Race::Banner2:
|
|
case Race::Banner3:
|
|
case Race::Banner4:
|
|
case Race::Banner5:
|
|
case Race::Banner6:
|
|
case Race::Banner7:
|
|
return "Banner";
|
|
case Race::TenthAnniversaryBanner:
|
|
return "10th Anniversary Banner";
|
|
case Race::Banshee:
|
|
case Race::Banshee2:
|
|
case Race::Banshee3:
|
|
return "Banshee";
|
|
case Race::Barbarian:
|
|
case Race::HalasCitizen:
|
|
return "Barbarian";
|
|
case Race::Barrel:
|
|
return "Barrel";
|
|
case Race::UndeadBoat:
|
|
return "Barrel Barge Ship";
|
|
case Race::Basilisk:
|
|
return "Basilisk";
|
|
case Race::GiantBat:
|
|
case Race::Bat:
|
|
case Race::Bat2:
|
|
return "Bat";
|
|
case Race::Bazu:
|
|
return "Bazu";
|
|
case Race::Bear:
|
|
case Race::Bear2:
|
|
case Race::Bear3:
|
|
return "Bear";
|
|
case Race::BearMount:
|
|
return "Bear Mount";
|
|
case Race::BearTrap:
|
|
return "Bear Trap";
|
|
case Race::Beetle:
|
|
case Race::Beetle2:
|
|
case Race::Beetle3:
|
|
return "Beetle";
|
|
case Race::HumanBeggar:
|
|
return "Beggar";
|
|
case Race::Bellikos:
|
|
return "Bellikos";
|
|
case Race::Bertoxxulous:
|
|
case Race::BertoxxulousNew:
|
|
return "Bertoxxulous";
|
|
case Race::Bixie:
|
|
case Race::Bixie2:
|
|
return "Bixie";
|
|
case Race::BlimpShip:
|
|
return "Blimp Ship";
|
|
case Race::BlindDreamer:
|
|
return "Blind Dreamer";
|
|
case Race::BloodRaven:
|
|
return "Blood Raven";
|
|
case Race::Boat:
|
|
case Race::Boat2:
|
|
return "Boat";
|
|
case Race::Bolvirk:
|
|
return "Bolvirk";
|
|
case Race::BoneGolem:
|
|
case Race::BoneGolem2:
|
|
return "Bone Golem";
|
|
case Race::Bones:
|
|
return "Bones";
|
|
case Race::BookDervish:
|
|
return "Book Dervish";
|
|
case Race::Portal:
|
|
return "BoT Portal";
|
|
case Race::Boulder:
|
|
return "Boulder";
|
|
case Race::Box:
|
|
return "Box";
|
|
case Race::Braxi:
|
|
return "Braxi";
|
|
case Race::BraxiMount:
|
|
return "Braxi Mount";
|
|
case Race::Brell:
|
|
return "Brell";
|
|
case Race::BrellsFirstCreation:
|
|
return "Brell's First Creation";
|
|
case Race::Bristlebane:
|
|
return "Bristlebane";
|
|
case Race::BrokenClockwork:
|
|
return "Broken Clockwork";
|
|
case Race::Brontotherium:
|
|
return "Brontotherium";
|
|
case Race::Brownie:
|
|
case Race::Brownie2:
|
|
return "Brownie";
|
|
case Race::Bubonian:
|
|
return "Bubonian";
|
|
case Race::BubonianUnderling:
|
|
return "Bubonian Underling";
|
|
case Race::Burynai:
|
|
case Race::Burynai2:
|
|
return "Burynai";
|
|
case Race::TenthAnniversaryCake:
|
|
return "10th Anniversary Cake";
|
|
case Race::Campfire:
|
|
return "Campfire";
|
|
case Race::CarrierHand:
|
|
return "Carrier Hand";
|
|
case Race::Cat:
|
|
return "Cat";
|
|
case Race::CazicThule:
|
|
case Race::CazicThule2:
|
|
return "Cazic Thule";
|
|
case Race::Centaur:
|
|
case Race::Centaur2:
|
|
return "Centaur";
|
|
case Race::Chest:
|
|
case Race::Chest2:
|
|
case Race::Chest3:
|
|
return "Chest";
|
|
case Race::Chimera:
|
|
case Race::Chimera2:
|
|
return "Chimera";
|
|
case Race::Chokidai:
|
|
return "Chokidai";
|
|
case Race::Clam:
|
|
return "Clam";
|
|
case Race::CliknarMount:
|
|
return "Cliknar Mount";
|
|
case Race::CliknarQueen:
|
|
return "Cliknar Queen";
|
|
case Race::CliknarSoldier:
|
|
return "Cliknar Soldier";
|
|
case Race::CliknarWorker:
|
|
return "Cliknar Worker";
|
|
case Race::ClockworkBeetle:
|
|
return "Clockwork Beetle";
|
|
case Race::ClockworkBoar:
|
|
return "Clockwork Boar";
|
|
case Race::ClockworkBomb:
|
|
return "Clockwork Bomb";
|
|
case Race::ClockworkBrain:
|
|
return "Clockwork Brain";
|
|
case Race::ClockworkGnome:
|
|
return "Clockwork Gnome";
|
|
case Race::ClockworkGolem:
|
|
return "Clockwork Golem";
|
|
case Race::ClockworkGuardian:
|
|
return "Clockwork Guardian";
|
|
case Race::Cockatrice:
|
|
return "Cockatrice";
|
|
case Race::Coffin:
|
|
case Race::Coffin2:
|
|
return "Coffin";
|
|
case Race::CoinPurse:
|
|
return "Coin Purse";
|
|
case Race::Coldain:
|
|
case Race::Coldain2:
|
|
case Race::Coldain3:
|
|
return "Coldain";
|
|
case Race::Coral:
|
|
return "Coral";
|
|
case Race::Corathus:
|
|
return "Corathus";
|
|
case Race::Crab:
|
|
return "Crab";
|
|
case Race::Cragbeast:
|
|
return "Cragbeast";
|
|
case Race::Cragslither:
|
|
return "Cragslither";
|
|
case Race::Crocodile:
|
|
return "Crocodile";
|
|
case Race::Crystal:
|
|
return "Crystal";
|
|
case Race::CrystalShard:
|
|
return "Crystal Shard";
|
|
case Race::CrystalSphere:
|
|
return "Crystal Sphere";
|
|
case Race::CrystalSpider:
|
|
return "Crystal Spider";
|
|
case Race::CrystalskinAmbuloid:
|
|
return "Crystalskin Ambuloid";
|
|
case Race::CrystalskinSessiloid:
|
|
return "Crystalskin Sessiloid";
|
|
case Race::DaisyMan:
|
|
return "Daisy Man";
|
|
case Race::DarkElf:
|
|
case Race::NeriakCitizen:
|
|
return "Dark Elf";
|
|
case Race::DarkLord:
|
|
return "Dark Lord";
|
|
case Race::DemiLich:
|
|
return "Demi Lich";
|
|
case Race::DemonVulture:
|
|
return "Demon Vulture";
|
|
case Race::Dervish:
|
|
case Race::Dervish2:
|
|
case Race::Dervish3:
|
|
case Race::Dervish4:
|
|
return "Dervish";
|
|
case Race::Dervish5:
|
|
return "Dervish(Ver. 5)";
|
|
case Race::Dervish6:
|
|
return "Dervish(Ver. 6)";
|
|
case Race::Devourer:
|
|
return "Devourer";
|
|
case Race::DireWolf:
|
|
return "Dire Wolf";
|
|
case Race::DiscordShip:
|
|
return "Discord Ship";
|
|
case Race::Discordling:
|
|
return "Discordling";
|
|
case Race::DiseasedFiend:
|
|
return "Diseased Fiend";
|
|
case Race::Djinn:
|
|
return "Djinn";
|
|
case Race::Drachnid:
|
|
case Race::Drachnid2:
|
|
return "Drachnid";
|
|
case Race::DrachnidCocoon:
|
|
return "Drachnid Cocoon";
|
|
case Race::Dracolich:
|
|
return "Dracolich";
|
|
case Race::Draglock:
|
|
return "Draglock";
|
|
case Race::LavaDragon:
|
|
case Race::DragonSkeleton:
|
|
case Race::WaterDragon:
|
|
case Race::VeliousDragon:
|
|
case Race::ClockworkDragon:
|
|
case Race::BlackAndWhiteDragon:
|
|
case Race::GhostDragon:
|
|
case Race::PrismaticDragon:
|
|
case Race::Quarm:
|
|
case Race::Dragon:
|
|
case Race::Dragon2:
|
|
case Race::Dragon3:
|
|
case Race::Dragon4:
|
|
case Race::Dragon5:
|
|
case Race::Dragon6:
|
|
case Race::Dragon7:
|
|
return "Dragon";
|
|
case Race::DragonBones:
|
|
return "Dragon Bones";
|
|
case Race::DragonEgg:
|
|
return "Dragon Egg";
|
|
case Race::DragonStatue:
|
|
return "Dragon Statue";
|
|
case Race::Dragorn:
|
|
return "Dragorn";
|
|
case Race::DragornBox:
|
|
return "Dragorn Box";
|
|
case Race::Drake:
|
|
case Race::Drake2:
|
|
case Race::Drake3:
|
|
return "Drake";
|
|
case Race::Drakkin:
|
|
return "Drakkin";
|
|
case Race::Drixie:
|
|
return "Drixie";
|
|
case Race::Drogmor:
|
|
return "Drogmore";
|
|
case Race::Drolvarg:
|
|
return "Drolvarg";
|
|
case Race::Dryad:
|
|
return "Dryad";
|
|
case Race::Dwarf:
|
|
case Race::KaladimCitizen:
|
|
return "Dwarf";
|
|
case Race::DynamiteKeg:
|
|
return "Dynamite Keg";
|
|
case Race::Dynleth:
|
|
return "Dyn'Leth";
|
|
case Race::EarthElemental:
|
|
case Race::EarthElemental2:
|
|
return "Earth Elemental";
|
|
case Race::EarthMephit:
|
|
return "Earth Mephit";
|
|
case Race::GiantEel:
|
|
return "Eel";
|
|
case Race::Efreeti:
|
|
case Race::Efreeti2:
|
|
return "Efreeti";
|
|
case Race::Elddar:
|
|
return "Elddar";
|
|
case Race::Elemental:
|
|
return "Elemental";
|
|
case Race::ElkHead:
|
|
return "Elk Head";
|
|
case Race::ElvenBoat:
|
|
return "Elven Boat";
|
|
case Race::ElvenGhost:
|
|
return "Elven Ghost";
|
|
case Race::EnchantedArmor:
|
|
return "Enchanted Armor";
|
|
case Race::Erollisi:
|
|
return "Erollisi";
|
|
case Race::Erudite:
|
|
case Race::EruditeCitizen:
|
|
case Race::Erudite2:
|
|
return "Erudite";
|
|
case Race::EvanTest:
|
|
return "Evan Test";
|
|
case Race::EvilEye:
|
|
case Race::EvilEye2:
|
|
case Race::EvilEye3:
|
|
return "Evil Eye";
|
|
case Race::Exoskeleton:
|
|
return "Exoskeleton";
|
|
case Race::ExplosiveCart:
|
|
return "Explosive Cart";
|
|
case Race::EyeOfZomm:
|
|
return "Eye";
|
|
case Race::Fairy:
|
|
case Race::Fairy2:
|
|
return "Fairy";
|
|
case Race::FallenKnight:
|
|
return "Fallen Knight";
|
|
case Race::Faun:
|
|
return "Faun";
|
|
case Race::FayDrake:
|
|
return "Fay Drake";
|
|
case Race::FenninRo:
|
|
return "Fennin Ro";
|
|
case Race::Feran:
|
|
return "Feran";
|
|
case Race::FeranMount:
|
|
return "Feran Mount";
|
|
case Race::Fiend:
|
|
return "Fiend";
|
|
case Race::FireElemental:
|
|
case Race::FireElemental2:
|
|
return "Fire Elemental";
|
|
case Race::FireMephit:
|
|
return "Fire Mephit";
|
|
case Race::Fish:
|
|
case Race::KunarkFish:
|
|
return "Fish";
|
|
case Race::Flag:
|
|
return "Flag";
|
|
case Race::FloatingIsland:
|
|
return "Floating Island";
|
|
case Race::FloatingSkull:
|
|
return "Floating Skull";
|
|
case Race::FloatingTower:
|
|
return "Floating Tower";
|
|
case Race::Fly:
|
|
return "Fly";
|
|
case Race::FlyingCarpet:
|
|
return "Flying Carpet";
|
|
case Race::ForestGiant2:
|
|
return "Forest Giant";
|
|
case Race::Frog:
|
|
case Race::Frog2:
|
|
return "Frog";
|
|
case Race::Froglok:
|
|
case Race::FroglokGhoul:
|
|
case Race::Froglok2:
|
|
return "Froglok";
|
|
case Race::FroglokGhost:
|
|
return "Froglok Ghost";
|
|
case Race::FroglokSkeleton:
|
|
return "Froglok Skeleton";
|
|
case Race::FungalFiend:
|
|
return "Fungal Fiend";
|
|
case Race::FungusPatch:
|
|
return "Fungus Patch";
|
|
case Race::Fungusman:
|
|
return "Fungusman";
|
|
case Race::Galorian:
|
|
return "Galorian";
|
|
case Race::Gargoyle:
|
|
case Race::Gargoyle2:
|
|
return "Gargoyle";
|
|
case Race::Gasbag:
|
|
return "Gasbag";
|
|
case Race::GelatinousCube:
|
|
case Race::GelatinousCube2:
|
|
return "Gelatinous Cube";
|
|
case Race::Gelidran:
|
|
return "Gelidran";
|
|
case Race::Genari:
|
|
return "Genari";
|
|
case Race::Geonid:
|
|
return "Geonid";
|
|
case Race::Ghost:
|
|
case Race::DwarfGhost:
|
|
case Race::EruditeGhost:
|
|
case Race::PirateGhost:
|
|
return "Ghost";
|
|
case Race::GhostShip:
|
|
case Race::GhostShip2:
|
|
return "Ghost Ship";
|
|
case Race::Ghoul:
|
|
case Race::Ghoul2:
|
|
return "Ghoul";
|
|
case Race::Giant:
|
|
case Race::ForestGiant:
|
|
case Race::FrostGiant:
|
|
case Race::StormGiant:
|
|
case Race::EarthGolem:
|
|
case Race::IronGolem:
|
|
case Race::StormGolem:
|
|
case Race::AirGolem:
|
|
case Race::WoodGolem:
|
|
case Race::FireGolem:
|
|
case Race::WaterGolem:
|
|
case Race::Giant2:
|
|
case Race::Giant3:
|
|
return "Giant";
|
|
case Race::GiantClockwork:
|
|
return "Giant Clockwork";
|
|
case Race::Giant4:
|
|
return "Giant(Rallosian mats)";
|
|
case Race::GiantShade:
|
|
return "Giant Shade";
|
|
case Race::Gigyn:
|
|
return "Gigyn";
|
|
case Race::GingerbreadMan:
|
|
return "Gingerbread Man";
|
|
case Race::Girplan:
|
|
return "Girplan";
|
|
case Race::Gnoll:
|
|
case Race::Gnoll2:
|
|
case Race::Gnoll3:
|
|
return "Gnoll";
|
|
case Race::Gnome:
|
|
return "Gnome";
|
|
case Race::Gnomework:
|
|
return "Gnomework";
|
|
case Race::GnomishBalloon:
|
|
return "Gnomish Balloon";
|
|
case Race::GnomishBoat:
|
|
return "Gnomish Boat";
|
|
case Race::GnomishHoveringTransport:
|
|
return "Gnomish Hovering Transport";
|
|
case Race::GnomishRocketPack:
|
|
return "Gnomish Rocket Pack";
|
|
case Race::Goblin:
|
|
case Race::Bloodgill:
|
|
case Race::KunarkGoblin:
|
|
case Race::NewGoblin:
|
|
case Race::Goblin2:
|
|
return "Goblin";
|
|
case Race::Luclin2:
|
|
return "God - Luclin(Ver. 2)";
|
|
case Race::Luclin3:
|
|
return "God - Luclin(Ver. 3)";
|
|
case Race::Luclin4:
|
|
return "God - Luclin(Ver. 4)";
|
|
case Race::GodOfDiscord:
|
|
return "God of Discord";
|
|
case Race::Golem:
|
|
case Race::Golem2:
|
|
return "Golem";
|
|
case Race::Goo:
|
|
case Race::Goo2:
|
|
case Race::Goo3:
|
|
case Race::Goo4:
|
|
return "Goo";
|
|
case Race::Goral:
|
|
return "Goral";
|
|
case Race::GoralMount:
|
|
return "Goral Mount";
|
|
case Race::Gorgon:
|
|
return "Gorgon";
|
|
case Race::Gorilla:
|
|
case Race::Gorilla2:
|
|
return "Gorilla";
|
|
case Race::GrandfatherClock:
|
|
return "Grandfather Clock";
|
|
case Race::GrekenYoung:
|
|
return "Greken - Young";
|
|
case Race::GrekenYoungAdult:
|
|
return "Greken - Young Adult";
|
|
case Race::Grendlaen:
|
|
return "Grendlaen";
|
|
case Race::GriegVeneficus:
|
|
return "Grieg Veneficus";
|
|
case Race::Griffin:
|
|
case Race::Griffin2:
|
|
return "Griffin";
|
|
case Race::Grimling:
|
|
return "Grimling";
|
|
case Race::GroundShaker:
|
|
return "Ground Shaker";
|
|
case Race::FreeportGuard:
|
|
case Race::Felguard:
|
|
case Race::Fayguard:
|
|
case Race::VahShirGuard:
|
|
return "Guard";
|
|
case Race::GuardOfJustice:
|
|
return "Guard of Justice";
|
|
case Race::GuardianCpu:
|
|
return "Guardian CPU";
|
|
case Race::Hadal:
|
|
return "Hadal";
|
|
case Race::Hag:
|
|
return "Hag";
|
|
case Race::HalfElf:
|
|
return "Half Elf";
|
|
case Race::Halfling:
|
|
case Race::RivervaleCitizen:
|
|
return "Halfling";
|
|
case Race::Harpy:
|
|
case Race::Harpy2:
|
|
return "Harpy";
|
|
case Race::HighElf:
|
|
return "High Elf";
|
|
case Race::Hippogriff:
|
|
return "Hippogriff";
|
|
case Race::Holgresh:
|
|
case Race::Holgresh2:
|
|
return "Holgresh";
|
|
case Race::HoneyPot:
|
|
return "Honey Pot";
|
|
case Race::Horse:
|
|
case Race::Horse2:
|
|
case Race::Horse3:
|
|
return "Horse";
|
|
case Race::HoveringPlatform:
|
|
return "Hovering Platform";
|
|
case Race::Hraquis:
|
|
return "Hraquis";
|
|
case Race::Human:
|
|
case Race::HighpassCitizen:
|
|
case Race::QeynosCitizen:
|
|
case Race::Human2:
|
|
return "Human";
|
|
case Race::HumanGhost:
|
|
return "Human Ghost";
|
|
case Race::Huvul:
|
|
return "Huvul";
|
|
case Race::HydraCrystal:
|
|
return "Hydra Crystal";
|
|
case Race::HydraMount:
|
|
return "Hydra Mount";
|
|
case Race::Hydra:
|
|
return "Hydra NPC";
|
|
case Race::Hynid:
|
|
return "Hynid";
|
|
case Race::IceSpectre:
|
|
return "Ice Spectre";
|
|
case Race::Ikaav:
|
|
return "Ikaav";
|
|
case Race::Iksar:
|
|
case Race::IksarCitizen:
|
|
return "Iksar";
|
|
case Race::IksarGhost:
|
|
return "Iksar Ghost";
|
|
case Race::IksarGolem:
|
|
return "Iksar Golem";
|
|
case Race::IksarSkeleton:
|
|
return "Iksar Skeleton";
|
|
case Race::IksarSpirit:
|
|
return "Iksar Spirit";
|
|
case Race::Imp:
|
|
return "Imp";
|
|
case Race::Innoruuk:
|
|
return "Innoruuk";
|
|
case Race::Insect:
|
|
return "Insect";
|
|
case Race::InteractiveObject:
|
|
return "Interactive Object";
|
|
case Race::InvisibleMan:
|
|
case Race::InvisibleMan2:
|
|
case Race::InvisibleMan3:
|
|
return "Invisible Man";
|
|
case Race::InvisibleManOfZomm:
|
|
return "Invisible Man of Zomm";
|
|
case Race::Ixt:
|
|
return "Ixt";
|
|
case Race::Jokester:
|
|
return "Jokester";
|
|
case Race::JumJumBucket:
|
|
return "Jum Jum Bucket";
|
|
case Race::JunkBeast:
|
|
return "Junk Beast";
|
|
case Race::Kangon:
|
|
return "Kangon";
|
|
case Race::KangonMount:
|
|
return "Kangon Mount";
|
|
case Race::Karana:
|
|
return "Karana";
|
|
case Race::PhinigelAutropos:
|
|
case Race::Kedge:
|
|
return "Kedge";
|
|
case Race::Kerran:
|
|
case Race::Kerran2:
|
|
return "Kerran";
|
|
case Race::Kirin:
|
|
case Race::Kirin2:
|
|
return "Kirin";
|
|
case Race::KnightOfHate:
|
|
return "Knight of Hate";
|
|
case Race::KnightOfPestilence:
|
|
return "Knight of Pestilence";
|
|
case Race::Kobold:
|
|
case Race::Kobold2:
|
|
return "Kobold";
|
|
case Race::Kraken:
|
|
return "Kraken";
|
|
case Race::Kyv:
|
|
return "Kyv";
|
|
case Race::Launch:
|
|
return "Launch";
|
|
case Race::LavaRock:
|
|
return "Lava Rock";
|
|
case Race::LavaSpider:
|
|
return "Lava Spider";
|
|
case Race::LavaSpiderQueen:
|
|
return "Lava Spider Queen";
|
|
case Race::Leech:
|
|
return "Leech";
|
|
case Race::Lepertoloth:
|
|
return "Lepertoloth";
|
|
case Race::Lightcrawler:
|
|
return "Lightcrawler";
|
|
case Race::LightingWarrior:
|
|
return "Lightning Warrior";
|
|
case Race::Lion:
|
|
return "Lion";
|
|
case Race::LizardMan:
|
|
return "Lizard Man";
|
|
case Race::Luclin:
|
|
return "Luclin";
|
|
case Race::Luggald:
|
|
case Race::Luggald2:
|
|
return "Luggald";
|
|
case Race::Luggald3:
|
|
return "Luggalds";
|
|
case Race::Malarian:
|
|
return "Malarian";
|
|
case Race::Mammoth:
|
|
case Race::Mammoth2:
|
|
return "Mammoth";
|
|
case Race::ManEatingPlant:
|
|
return "Man - Eating Plant";
|
|
case Race::Mansion:
|
|
return "Mansion";
|
|
case Race::Manticore:
|
|
return "Manticore";
|
|
case Race::Unknown5:
|
|
return "Mantrap";
|
|
case Race::Marionette:
|
|
return "Marionette";
|
|
case Race::Mastruq:
|
|
return "Mastruq";
|
|
case Race::MataMuram:
|
|
return "Mata Muram";
|
|
case Race::Toolbox:
|
|
return "Medium Plant";
|
|
case Race::Mephit:
|
|
return "Mephit";
|
|
case Race::MerchantShip:
|
|
return "Merchant Ship";
|
|
case Race::Mermaid:
|
|
return "Mermaid";
|
|
case Race::Mimic:
|
|
return "Mimic";
|
|
case Race::MiniPom:
|
|
return "Mini POM";
|
|
case Race::Minotaur:
|
|
case Race::Minotaur2:
|
|
case Race::Minotaur3:
|
|
case Race::Minotaur4:
|
|
return "Minotaur";
|
|
case Race::MithanielMarr:
|
|
return "Mithaniel Marr";
|
|
case Race::MorellThule:
|
|
return "Morell Thule";
|
|
case Race::Mosquito:
|
|
return "Mosquito";
|
|
case Race::MouthOfInsanity:
|
|
return "Mouth of Insanity";
|
|
case Race::Muddite:
|
|
return "Muddite";
|
|
case Race::Mummy:
|
|
return "Mummy";
|
|
case Race::MuramiteArmorPile:
|
|
return "Muramite Armor Pile";
|
|
case Race::Murkglider:
|
|
return "Murkglider";
|
|
case Race::MurkgliderEggSack:
|
|
return "Murkglider Egg Sac";
|
|
case Race::Mutna:
|
|
return "Mutna";
|
|
case Race::Nekhon:
|
|
return "Nekhon";
|
|
case Race::Netherbian:
|
|
return "Netherbian";
|
|
case Race::Nightmare:
|
|
return "Nightmare";
|
|
case Race::NightmareGargoyle:
|
|
return "Nightmare Gargoyle";
|
|
case Race::NightmareGoblin:
|
|
return "Nightmare Goblin";
|
|
case Race::NightmareMephit:
|
|
return "Nightmare Mephit";
|
|
case Race::Unicorn2:
|
|
case Race::Unicorn3:
|
|
return "Nightmare / Unicorn";
|
|
case Race::NightmareWraith:
|
|
return "Nightmare Wraith";
|
|
case Race::Nihil:
|
|
return "Nihil";
|
|
case Race::Nilborien:
|
|
return "Nilborien";
|
|
case Race::Noc:
|
|
return "Noc";
|
|
case Race::Nymph:
|
|
return "Nymph";
|
|
case Race::Ogre:
|
|
case Race::OggokCitizen:
|
|
return "Ogre";
|
|
case Race::Ogre2:
|
|
return "Ogre NPC - Male";
|
|
case Race::Orb:
|
|
return "Orb";
|
|
case Race::Orc:
|
|
case Race::Orc2:
|
|
return "Orc";
|
|
case Race::Othmir:
|
|
return "Othmir";
|
|
case Race::Owlbear:
|
|
return "Owlbear";
|
|
case Race::ParasiticScavenger:
|
|
return "Parasitic Scavenger";
|
|
case Race::Pegasus:
|
|
case Race::Pegasus2:
|
|
case Race::Pegasus3:
|
|
return "Pegasus";
|
|
case Race::Phoenix:
|
|
return "Phoenix";
|
|
case Race::Piranha:
|
|
return "Piranha";
|
|
case Race::OneArmedPirate:
|
|
case Race::SpiritmasterNadox:
|
|
case Race::BrokenSkullTaskmaster:
|
|
case Race::GnomePirate:
|
|
case Race::DarkElfPirate:
|
|
case Race::OgrePirate:
|
|
case Race::HumanPirate:
|
|
case Race::EruditePirate:
|
|
return "Pirate";
|
|
case Race::PirateShip:
|
|
return "Pirate Ship";
|
|
case Race::Pixie:
|
|
return "Pixie";
|
|
case Race::PoisonFrog:
|
|
return "Poison Frog";
|
|
case Race::Portal2:
|
|
return "Portal";
|
|
case Race::PowderKeg:
|
|
return "Powder Keg";
|
|
case Race::PressurePlate:
|
|
return "Pressure Plate";
|
|
case Race::PufferSpore:
|
|
return "Puffer Spore";
|
|
case Race::Puma:
|
|
case Race::Puma2:
|
|
case Race::Puma3:
|
|
return "Puma";
|
|
case Race::Pusling:
|
|
return "Pusling";
|
|
case Race::Pyrilen:
|
|
return "Pyrilen";
|
|
case Race::Ratuk:
|
|
return "Ra`tuk";
|
|
case Race::Rabbit:
|
|
return "Rabbit";
|
|
case Race::StatueOfRallosZek:
|
|
case Race::NewRallosZek:
|
|
return "Rallos Zek";
|
|
case Race::RallosOgre:
|
|
return "Rallos Zek Minion";
|
|
case Race::Raptor:
|
|
case Race::Raptor2:
|
|
return "Raptor";
|
|
case Race::RaptorMount:
|
|
return "Raptor Mount";
|
|
case Race::GiantRat:
|
|
case Race::Rat:
|
|
return "Rat";
|
|
case Race::RatMount:
|
|
return "Rat Mount";
|
|
case Race::Ratman:
|
|
case Race::Ratman2:
|
|
return "Ratman";
|
|
case Race::ReanimatedHand:
|
|
return "Reanimated Hand";
|
|
case Race::Recuso:
|
|
return "Recuso";
|
|
case Race::RegenerationPool:
|
|
return "Regeneration Pool";
|
|
case Race::RelicCase:
|
|
return "Relic case ";
|
|
case Race::RhinoBeetle:
|
|
return "Rhino Beetle";
|
|
case Race::Rhinoceros:
|
|
return "Rhinoceros";
|
|
case Race::RobocopterOfZomm:
|
|
return "Robocopter of Zomm";
|
|
case Race::RockPile:
|
|
return "Rock Pile";
|
|
case Race::Rockhopper:
|
|
return "Rockhopper";
|
|
case Race::RonnieTest:
|
|
return "Ronnie Test";
|
|
case Race::RootTentacle:
|
|
return "Root Tentacle";
|
|
case Race::RotDogMount:
|
|
return "Rot Dog Mount";
|
|
case Race::RotDog:
|
|
return "Rotdog";
|
|
case Race::Rotocopter:
|
|
return "Rotocopter";
|
|
case Race::Rowboat:
|
|
return "Rowboat";
|
|
case Race::RoyalGuard:
|
|
return "Royal Guard";
|
|
case Race::RujarkianOrc:
|
|
case Race::MasterOrc:
|
|
return "Rujarkian Orc";
|
|
case Race::RunedOrb:
|
|
return "Runed Orb";
|
|
case Race::RunicSymbol:
|
|
return "Runic Symbol";
|
|
case Race::Sabertooth:
|
|
return "Saber - toothed Cat";
|
|
case Race::SaltpetterBomb:
|
|
return "Saltpetter Bomb";
|
|
case Race::SandElf:
|
|
return "Sand Elf";
|
|
case Race::Sandman:
|
|
return "Sandman";
|
|
case Race::Sarnak:
|
|
case Race::Sarnak2:
|
|
return "Sarnak";
|
|
case Race::SarnakGolem:
|
|
return "Sarnak Golem";
|
|
case Race::SarnakSpirit:
|
|
return "Sarnak Spirit";
|
|
case Race::Saryrn:
|
|
return "Saryrn";
|
|
case Race::Satyr:
|
|
return "Satyr";
|
|
case Race::ScaledWolf:
|
|
return "Scaled Wolf";
|
|
case Race::Scarecrow:
|
|
case Race::Scarecrow2:
|
|
return "Scarecrow";
|
|
case Race::ScarletCheetah:
|
|
return "Scarlet Cheetah";
|
|
case Race::ScleraMount:
|
|
return "Sclera Mount";
|
|
case Race::Scorpion:
|
|
case Race::IksarScorpion:
|
|
case Race::Scorpion2:
|
|
return "Scorpion";
|
|
case Race::Scrykin:
|
|
return "Scrykin";
|
|
case Race::SeaTurtle:
|
|
return "Sea Turtle";
|
|
case Race::SeaHorse:
|
|
return "Seahorse";
|
|
case Race::Selyrah:
|
|
return "Selyrah";
|
|
case Race::SelyrahMount:
|
|
return "Selyrah Mount";
|
|
case Race::LordInquisitorSeru:
|
|
return "Seru";
|
|
case Race::ServantOfShadow:
|
|
return "Servant of Shadow";
|
|
case Race::SessiloidMount:
|
|
return "Sessiloid Mount";
|
|
case Race::Shade:
|
|
case Race::Shade2:
|
|
case Race::Shade3:
|
|
return "Shade";
|
|
case Race::KhatiSha:
|
|
return "Shadel";
|
|
case Race::ShamblingMound:
|
|
return "Shambling Mound";
|
|
case Race::Shark:
|
|
return "Shark";
|
|
case Race::Shiknar:
|
|
return "Shik'Nar";
|
|
case Race::Shiliskin:
|
|
return "Shiliskin";
|
|
case Race::Ship:
|
|
return "Ship";
|
|
case Race::ShipInABottle:
|
|
return "Ship in a Bottle";
|
|
case Race::Shissar:
|
|
case Race::Shissar2:
|
|
return "Shissar";
|
|
case Race::Shrieker:
|
|
return "Shrieker";
|
|
case Race::Siren:
|
|
case Race::Siren2:
|
|
return "Siren";
|
|
case Race::SkeletalHorse:
|
|
return "Skeletal Horse";
|
|
case Race::Skeleton:
|
|
case Race::Skeleton2:
|
|
case Race::Skeleton3:
|
|
return "Skeleton";
|
|
case Race::Skunk:
|
|
return "Skunk";
|
|
case Race::Skystrider:
|
|
return "Skystrider";
|
|
case Race::Plant2:
|
|
return "Small Plant";
|
|
case Race::GiantSnake:
|
|
case Race::Snake:
|
|
return "Snake";
|
|
case Race::SnakeElemental:
|
|
return "Snake Elemental";
|
|
case Race::SnowDervish:
|
|
return "Snow Dervish";
|
|
case Race::SnowRabbit:
|
|
return "Snow Rabbit";
|
|
case Race::Sokokar:
|
|
return "Sokokar";
|
|
case Race::SokokarMount:
|
|
return "Sokokar Mount";
|
|
case Race::SokokarMount2:
|
|
return "Sokokar(w saddle)";
|
|
case Race::SolusekRo:
|
|
case Race::SolusekRo2:
|
|
return "Solusek Ro";
|
|
case Race::SolusekRoGuard:
|
|
return "Solusek Ro Guard";
|
|
case Race::SonicWolf:
|
|
return "Sonic Wolf";
|
|
case Race::SoulDevourer:
|
|
return "Soul Devourer";
|
|
case Race::Spectre:
|
|
case Race::Spectre2:
|
|
return "Spectre";
|
|
case Race::SpellParticle:
|
|
return "Spell Particle 1";
|
|
case Race::Sphinx:
|
|
case Race::Sphinx2:
|
|
return "Sphinx";
|
|
case Race::GiantSpider:
|
|
case Race::Spider:
|
|
return "Spider";
|
|
case Race::SpiderEggSack:
|
|
return "Spider Egg Sack";
|
|
case Race::SpiderMount:
|
|
return "Spider Mount";
|
|
case Race::SpiderQueen:
|
|
return "Spider Queen";
|
|
case Race::SpikeTrap:
|
|
return "Spike Trap";
|
|
case Race::SpiritWolf:
|
|
return "Spirit Wolf";
|
|
case Race::Sporali:
|
|
return "Sporali";
|
|
case Race::StoneJug:
|
|
return "Stone Jug";
|
|
case Race::StonePylon:
|
|
return "Stone Pylon";
|
|
case Race::StoneRing:
|
|
return "Stone Ring";
|
|
case Race::StoneWorker:
|
|
case Race::StoneWorker2:
|
|
return "Stone Worker";
|
|
case Race::Stonegrabber:
|
|
return "Stonegrabber";
|
|
case Race::Stonemite:
|
|
return "Stonemite";
|
|
case Race::Stormrider:
|
|
return "Stormrider";
|
|
case Race::Succubus:
|
|
return "Succubus";
|
|
case Race::Succulent:
|
|
return "Succulent";
|
|
case Race::SullonZek:
|
|
return "Sullon Zek";
|
|
case Race::Shadel:
|
|
return "Sun Revenant";
|
|
case Race::Sunflower:
|
|
return "Sunflower";
|
|
case Race::Swinetor:
|
|
return "Swinetor";
|
|
case Race::Swordfish:
|
|
return "Swordfish";
|
|
case Race::Synarcana:
|
|
return "Synarcana";
|
|
case Race::Table:
|
|
return "Table";
|
|
case Race::FroglokTadpole:
|
|
return "Tadpole";
|
|
case Race::Taelosian:
|
|
return "Taelosian";
|
|
case Race::WineCask:
|
|
return "Tall Plant";
|
|
case Race::TallonZek:
|
|
return "Tallon Zek";
|
|
case Race::Taneth:
|
|
return "Taneth";
|
|
case Race::TarewMarr:
|
|
return "Tarew Marr";
|
|
case Race::Tegi:
|
|
return "Tegi";
|
|
case Race::TeleportMan:
|
|
return "Teleport Man";
|
|
case Race::TeleportationStand:
|
|
return "Teleportation Stand";
|
|
case Race::Telmira:
|
|
return "Telmira";
|
|
case Race::TentacleTerror:
|
|
case Race::TentacleTerror2:
|
|
return "Tentacle Terror";
|
|
case Race::TerrisThule:
|
|
return "Terris Thule";
|
|
case Race::TestObject:
|
|
return "Test Object";
|
|
case Race::Rathe:
|
|
return "The Rathe";
|
|
case Race::TribunalNew:
|
|
return "The Tribunal";
|
|
case Race::ThoughtHorror:
|
|
return "Thought Horror";
|
|
case Race::Tiger:
|
|
return "Tiger";
|
|
case Race::TinSoldier:
|
|
return "Tin Soldier";
|
|
case Race::Plant:
|
|
return "Toolbox";
|
|
case Race::TopiaryLion:
|
|
return "Topiary Lion";
|
|
case Race::TopiaryLionMount:
|
|
return "Topiary Lion Mount";
|
|
case Race::Tormentor:
|
|
return "Tormentor";
|
|
case Race::Totem:
|
|
case Race::Totem2:
|
|
return "Totem";
|
|
case Race::Trakanon:
|
|
return "Trakanon";
|
|
case Race::Tranquilion:
|
|
return "Tranquilion";
|
|
case Race::Treant:
|
|
case Race::Treant2:
|
|
case Race::Treant3:
|
|
return "Treant";
|
|
case Race::Tribunal:
|
|
return "Tribunal";
|
|
case Race::Triumvirate:
|
|
return "Triumvirate";
|
|
case Race::Troll:
|
|
case Race::GrobbCitizen:
|
|
case Race::TrollCrewMember:
|
|
case Race::PirateDeckhand:
|
|
case Race::BrokenSkullPirate:
|
|
return "Troll";
|
|
case Race::TrollZombie:
|
|
return "Troll Zombie";
|
|
case Race::Trusik:
|
|
return "Trusik";
|
|
case Race::Tsetsian:
|
|
return "Tsetsian";
|
|
case Race::Tumbleweed:
|
|
return "Tumbleweed";
|
|
case Race::Tunare:
|
|
return "Tunare";
|
|
case Race::Turepta:
|
|
return "Turepta";
|
|
case Race::Ukun:
|
|
return "Ukun";
|
|
case Race::Ulthork:
|
|
return "Ulthork";
|
|
case Race::UndeadChokidai:
|
|
return "Undead Chokidai";
|
|
case Race::UndeadFootman:
|
|
return "Undead Footman";
|
|
case Race::UndeadFroglok:
|
|
return "Undead Froglok";
|
|
case Race::UndeadIksar:
|
|
return "Undead Iksar";
|
|
case Race::UndeadKnight:
|
|
return "Undead Knight";
|
|
case Race::UndeadSarnak:
|
|
return "Undead Sarnak";
|
|
case Race::UndeadVeksar:
|
|
return "Undead Veksar";
|
|
case Race::Underbulk:
|
|
return "Underbulk";
|
|
case Race::Unicorn:
|
|
return "Unicorn";
|
|
case Race::Doug:
|
|
case Race::MinorIllusion:
|
|
case Race::Tree:
|
|
case Race::Unknown:
|
|
case Race::Unknown2:
|
|
case Race::Unknown3:
|
|
case Race::Unknown4:
|
|
return "UNKNOWN RACE";
|
|
case Race::VahShir:
|
|
case Race::VahShirKing:
|
|
return "Vah Shir";
|
|
case Race::VahShirSkeleton:
|
|
return "Vah Shir Skeleton";
|
|
case Race::VallonZek:
|
|
return "Vallon Zek";
|
|
case Race::Valorian:
|
|
case Race::Valorian2:
|
|
return "Valorian";
|
|
case Race::Vampire:
|
|
case Race::ElfVampire:
|
|
case Race::Vampire2:
|
|
case Race::VampireVolatalis:
|
|
case Race::UndeadVampire:
|
|
case Race::Vampire3:
|
|
case Race::MasterVampire:
|
|
case Race::Vampire4:
|
|
return "Vampire";
|
|
case Race::Vase:
|
|
return "Vase";
|
|
case Race::Vegerog:
|
|
return "Vegerog";
|
|
case Race::Veksar:
|
|
case Race::Veksar2:
|
|
case Race::Veksar3:
|
|
return "Veksar";
|
|
case Race::VenrilSathir:
|
|
return "Venril Sathir";
|
|
case Race::VineMaw:
|
|
return "Vine Maw";
|
|
case Race::Wagon:
|
|
return "Wagon";
|
|
case Race::Walrus:
|
|
return "Walrus";
|
|
case Race::WarBoar:
|
|
case Race::WarBoar2:
|
|
return "War Boar";
|
|
case Race::WarWraith:
|
|
return "War Wraith";
|
|
case Race::Wasp:
|
|
return "Wasp";
|
|
case Race::WaterElemental:
|
|
case Race::WaterElemental2:
|
|
return "Water Elemental";
|
|
case Race::WaterMephit:
|
|
return "Water Mephit";
|
|
case Race::WaterSpout:
|
|
return "Water Spout";
|
|
case Race::WeaponRack:
|
|
case Race::WeaponRack2:
|
|
return "Weapon Rack";
|
|
case Race::Web:
|
|
return "Web";
|
|
case Race::WeddingAltar:
|
|
return "Wedding Altar";
|
|
case Race::WeddingArbor:
|
|
return "Wedding Arbor";
|
|
case Race::WeddingFlowers:
|
|
return "Wedding Flowers";
|
|
case Race::Wereorc:
|
|
return "Wereorc";
|
|
case Race::Werewolf:
|
|
case Race::Werewolf2:
|
|
case Race::Werewolf3:
|
|
return "Werewolf";
|
|
case Race::WetfangMinnow:
|
|
return "Wetfang Minnow";
|
|
case Race::Whirligig:
|
|
return "Whirligig";
|
|
case Race::WickerBasket:
|
|
return "Wicker Basket";
|
|
case Race::Wisp:
|
|
return "Will - O - Wisp";
|
|
case Race::StoneJug2:
|
|
case Race::WineCask2:
|
|
return "Wine Cask";
|
|
case Race::Witheran:
|
|
case Race::Witheran2:
|
|
return "Witheran";
|
|
case Race::Wolf:
|
|
case Race::WolfElemental:
|
|
case Race::Wolf2:
|
|
return "Wolf";
|
|
case Race::WoodElf:
|
|
return "Wood Elf";
|
|
case Race::Worg:
|
|
case Race::Worg2:
|
|
return "Worg";
|
|
case Race::Worm:
|
|
return "Worm";
|
|
case Race::Wretch:
|
|
return "Wretch";
|
|
case Race::Wrulon:
|
|
case Race::Wrulon2:
|
|
return "Wrulon";
|
|
case Race::Wurm:
|
|
case Race::Wurm2:
|
|
return "Wurm";
|
|
case Race::WurmMount:
|
|
return "Wurm Mount";
|
|
case Race::Wyvern:
|
|
case Race::Wyvern2:
|
|
return "Wyvern";
|
|
case Race::Xalgoz:
|
|
return "Xalgoz";
|
|
case Race::Xaric:
|
|
return "Xaric the Unspoken";
|
|
case Race::Xegony:
|
|
return "Xegony";
|
|
case Race::Yakkar:
|
|
return "Yakkar";
|
|
case Race::Yeti:
|
|
return "Yeti";
|
|
case Race::Zebuxoruk:
|
|
return "Zebuxoruk";
|
|
case Race::ZebuxoruksCage:
|
|
return "Zebuxoruk's Cage";
|
|
case Race::Zelniak:
|
|
return "Zelniak";
|
|
case Race::Zombie:
|
|
case Race::Zombie2:
|
|
return "Zombie";
|
|
default:
|
|
return "UNKNOWN RACE";
|
|
}
|
|
}
|
|
|
|
const char* GetPlayerRaceName(uint32 player_race_value)
|
|
{
|
|
return GetRaceIDName(GetRaceIDFromPlayerRaceValue(player_race_value));
|
|
}
|
|
|
|
uint32 GetPlayerRaceValue(uint16 race_id) {
|
|
switch (race_id) {
|
|
case HUMAN:
|
|
case BARBARIAN:
|
|
case ERUDITE:
|
|
case WOOD_ELF:
|
|
case HIGH_ELF:
|
|
case DARK_ELF:
|
|
case HALF_ELF:
|
|
case DWARF:
|
|
case TROLL:
|
|
case OGRE:
|
|
case HALFLING:
|
|
case GNOME:
|
|
return race_id;
|
|
case IKSAR:
|
|
return PLAYER_RACE_IKSAR;
|
|
case VAHSHIR:
|
|
return PLAYER_RACE_VAHSHIR;
|
|
case FROGLOK:
|
|
case FROGLOK2:
|
|
return PLAYER_RACE_FROGLOK;
|
|
case DRAKKIN:
|
|
return PLAYER_RACE_DRAKKIN;
|
|
default:
|
|
return PLAYER_RACE_UNKNOWN; // watch
|
|
}
|
|
}
|
|
|
|
uint16 GetPlayerRaceBit(uint16 race_id) {
|
|
switch (race_id) {
|
|
case HUMAN:
|
|
return PLAYER_RACE_HUMAN_BIT;
|
|
case BARBARIAN:
|
|
return PLAYER_RACE_BARBARIAN_BIT;
|
|
case ERUDITE:
|
|
return PLAYER_RACE_ERUDITE_BIT;
|
|
case WOOD_ELF:
|
|
return PLAYER_RACE_WOOD_ELF_BIT;
|
|
case HIGH_ELF:
|
|
return PLAYER_RACE_HIGH_ELF_BIT;
|
|
case DARK_ELF:
|
|
return PLAYER_RACE_DARK_ELF_BIT;
|
|
case HALF_ELF:
|
|
return PLAYER_RACE_HALF_ELF_BIT;
|
|
case DWARF:
|
|
return PLAYER_RACE_DWARF_BIT;
|
|
case TROLL:
|
|
return PLAYER_RACE_TROLL_BIT;
|
|
case OGRE:
|
|
return PLAYER_RACE_OGRE_BIT;
|
|
case HALFLING:
|
|
return PLAYER_RACE_HALFLING_BIT;
|
|
case GNOME:
|
|
return PLAYER_RACE_GNOME_BIT;
|
|
case IKSAR:
|
|
return PLAYER_RACE_IKSAR_BIT;
|
|
case VAHSHIR:
|
|
return PLAYER_RACE_VAHSHIR_BIT;
|
|
case FROGLOK:
|
|
return PLAYER_RACE_FROGLOK_BIT;
|
|
case DRAKKIN:
|
|
return PLAYER_RACE_DRAKKIN_BIT;
|
|
default:
|
|
return PLAYER_RACE_UNKNOWN_BIT;
|
|
}
|
|
}
|
|
|
|
uint16 GetRaceIDFromPlayerRaceValue(uint32 player_race_value) {
|
|
switch (player_race_value) {
|
|
case PLAYER_RACE_HUMAN:
|
|
case PLAYER_RACE_BARBARIAN:
|
|
case PLAYER_RACE_ERUDITE:
|
|
case PLAYER_RACE_WOOD_ELF:
|
|
case PLAYER_RACE_HIGH_ELF:
|
|
case PLAYER_RACE_DARK_ELF:
|
|
case PLAYER_RACE_HALF_ELF:
|
|
case PLAYER_RACE_DWARF:
|
|
case PLAYER_RACE_TROLL:
|
|
case PLAYER_RACE_OGRE:
|
|
case PLAYER_RACE_HALFLING:
|
|
case PLAYER_RACE_GNOME:
|
|
return player_race_value;
|
|
case PLAYER_RACE_IKSAR:
|
|
return IKSAR;
|
|
case PLAYER_RACE_VAHSHIR:
|
|
return VAHSHIR;
|
|
case PLAYER_RACE_FROGLOK:
|
|
return FROGLOK;
|
|
case PLAYER_RACE_DRAKKIN:
|
|
return DRAKKIN;
|
|
default:
|
|
return PLAYER_RACE_UNKNOWN; // watch
|
|
}
|
|
}
|
|
|
|
uint16 GetRaceIDFromPlayerRaceBit(uint32 player_race_bit)
|
|
{
|
|
switch (player_race_bit) {
|
|
case PLAYER_RACE_HUMAN_BIT:
|
|
return HUMAN;
|
|
case PLAYER_RACE_BARBARIAN_BIT:
|
|
return BARBARIAN;
|
|
case PLAYER_RACE_ERUDITE_BIT:
|
|
return ERUDITE;
|
|
case PLAYER_RACE_WOOD_ELF_BIT:
|
|
return WOOD_ELF;
|
|
case PLAYER_RACE_HIGH_ELF_BIT:
|
|
return HIGH_ELF;
|
|
case PLAYER_RACE_DARK_ELF_BIT:
|
|
return DARK_ELF;
|
|
case PLAYER_RACE_HALF_ELF_BIT:
|
|
return HALF_ELF;
|
|
case PLAYER_RACE_DWARF_BIT:
|
|
return DWARF;
|
|
case PLAYER_RACE_TROLL_BIT:
|
|
return TROLL;
|
|
case PLAYER_RACE_OGRE_BIT:
|
|
return OGRE;
|
|
case PLAYER_RACE_HALFLING_BIT:
|
|
return HALFLING;
|
|
case PLAYER_RACE_GNOME_BIT:
|
|
return GNOME;
|
|
case PLAYER_RACE_IKSAR_BIT:
|
|
return IKSAR;
|
|
case PLAYER_RACE_VAHSHIR_BIT:
|
|
return VAHSHIR;
|
|
case PLAYER_RACE_FROGLOK_BIT:
|
|
return FROGLOK;
|
|
case PLAYER_RACE_DRAKKIN_BIT:
|
|
return DRAKKIN;
|
|
default:
|
|
return PLAYER_RACE_UNKNOWN; // watch
|
|
}
|
|
}
|
|
|
|
float GetRaceGenderDefaultHeight(int race, int gender)
|
|
{
|
|
static float male_height[] = {
|
|
6.0f, 6.0f, 7.0f, 6.0f, 5.0f, 6.0f, 5.0f, 5.5f, 4.0f, 8.0f, 9.0f, 3.5f, 3.0f, 6.0f, 6.0f,
|
|
2.0f, 8.5f, 8.0f, 21.0f, 20.0f, 6.0f, 6.0f, 3.5f, 3.0f, 6.0f, 2.0f, 5.0f, 5.0f, 6.0f, 6.0f,
|
|
6.0f, 7.5f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 5.0f, 6.0f, 6.0f, 7.0f, 4.0f, 4.7f, 6.0f,
|
|
8.0f, 3.0f, 12.0f, 5.0f, 21.0f, 6.0f, 6.0f, 3.0f, 9.0f, 6.0f, 6.0f, 2.0f, 6.0f, 3.0f, 6.0f,
|
|
4.0f, 20.0f, 5.0f, 5.0f, 6.0f, 9.0f, 25.0f, 6.0f, 6.0f, 10.0f, 6.0f, 6.0f, 6.0f, 6.0f, 2.5f,
|
|
7.0f, 6.0f, 5.0f, 6.0f, 1.5f, 1.0f, 3.5f, 7.0f, 6.0f, 6.0f, 6.0f, 6.0f, 7.0f, 3.0f, 3.0f,
|
|
7.0f, 12.0f, 8.0f, 9.0f, 4.0f, 11.5f, 8.0f, 6.0f, 6.0f, 12.0f, 6.0f, 6.0f, 6.0f, 20.0f, 10.0f,
|
|
6.5f, 6.0f, 17.0f, 1.0f, 4.0f, 6.0f, 8.0f, 5.0f, 1.0f, 6.0f, 6.0f, 5.0f, 5.0f, 5.0f, 9.0f,
|
|
3.0f, 8.0f, 2.0f, 24.0f, 6.0f, 10.0f, 6.0f, 6.0f, 6.0f, 3.0f, 7.0f, 9.0f, 6.0f, 11.0f, 2.5f,
|
|
14.0f, 8.0f, 7.0f, 12.0f, 6.0f, 27.0f, 6.0f, 6.0f, 6.0f, 6.0f, 2.0f, 9.0f, 9.0f, 6.0f, 9.0f,
|
|
3.0f, 3.0f, 6.0f, 6.0f, 10.0f, 6.0f, 6.0f, 15.0f, 15.0f, 9.0f, 7.0f, 6.0f, 6.0f, 7.0f, 8.0f,
|
|
3.0f, 3.0f, 6.0f, 7.0f, 13.0f, 6.0f, 6.0f, 9.0f, 5.0f, 7.0f, 9.0f, 6.0f, 6.0f, 8.0f, 6.0f,
|
|
6.0f, 5.5f, 6.0f, 4.0f, 25.0f, 6.0f, 6.0f, 6.0f, 22.0f, 20.0f, 6.0f, 10.0f, 13.5f, 12.0f, 3.0f,
|
|
30.0f, 6.0f, 6.0f, 35.0f, 1.5f, 8.0f, 3.0f, 6.0f, 2.0f, 6.0f, 6.0f, 5.0f, 2.0f, 7.0f, 6.0f,
|
|
6.0f, 6.0f, 6.0f, 4.0f, 6.0f, 6.0f, 6.0f, 8.0f, 8.0f, 7.0f, 8.0f, 6.0f, 7.0f, 6.0f, 7.0f,
|
|
6.0f, 10.0f, 3.0f, 6.0f, 8.0f, 9.0f, 15.0f, 5.0f, 10.0f, 7.0f, 6.0f, 7.0f, 6.0f, 7.0f, 7.0f,
|
|
12.0f, 6.0f, 4.0f, 6.0f, 5.0f, 3.0f, 30.0f, 30.0f, 15.0f, 20.0f, 6.0f, 10.0f, 6.0f, 14.0f, 14.0f,
|
|
16.0f, 15.0f, 30.0f, 15.0f, 7.5f, 5.0f, 4.0f, 6.0f, 15.0f, 6.5f, 3.0f, 12.0f, 10.0f, 10.5f, 10.0f,
|
|
7.5f, 6.0f, 6.0f, 12.5f, 9.0f, 20.0f, 2.0f, 10.0f, 25.0f, 8.0f, 6.0f, 6.0f, 10.0f, 18.0f, 45.0f,
|
|
13.0f, 15.0f, 8.0f, 30.0f, 25.0f, 25.0f, 10.0f, 13.0f, 5.0f, 3.5f, 15.0f, 35.0f, 11.0f, 15.0f, 50.0f,
|
|
13.0f, 6.0f, 7.0f, 6.0f, 60.0f, 6.0f, 22.0f, 22.0f, 21.0f, 22.0f, 15.0f, 25.0f, 23.0f, 8.0f, 15.0f,
|
|
10.0f, 6.0f, 7.0f, 6.0f, 12.0f, 9.5f, 6.0f, 12.0f, 12.0f, 12.0f, 15.0f, 4.0f, 5.0f, 105.0f, 20.0f,
|
|
5.0f, 10.0f, 10.0f, 10.0f, 20.0f, 13.5f, 8.0f, 10.0f, 3.0f, 5.0f, 9.0f, 6.0f, 6.0f, 6.0f, 10.0f,
|
|
8.0f, 8.0f, 8.0f, 6.0f, 6.0f, 5.0f, 5.0f, 5.0f, 9.0f, 9.0f, 9.0f, 6.0f, 8.5f, 6.0f, 7.0f,
|
|
8.0f, 7.0f, 11.0f, 6.0f, 7.0f, 9.0f, 8.0f, 6.0f, 8.0f, 6.0f, 6.0f, 6.0f, 6.0f, 9.0f, 10.0f,
|
|
6.0f, 3.0f, 4.0f, 3.0f, 3.0f, 4.0f, 10.0f, 10.0f, 2.0f, 8.0f, 6.0f, 6.0f, 14.0f, 7.0f, 5.0f,
|
|
9.0f, 7.0f, 7.0f, 10.0f, 10.0f, 12.0f, 9.0f, 7.0f, 12.0f, 13.0f, 16.0f, 6.0f, 9.0f, 6.0f, 6.0f,
|
|
10.0f, 25.0f, 15.0f, 6.0f, 25.0f, 6.0f, 6.0f, 8.0f, 11.0f, 6.0f, 9.0f, 2.0f, 6.0f, 5.0f, 4.0f,
|
|
8.5f, 6.0f, 6.0f, 6.0f, 4.0f, 6.0f, 15.0f, 1.0f, 2.0f, 6.0f, 40.0f, 8.0f, 12.0f, 3.0f, 8.0f,
|
|
99.0f, 9.0f, 100.0f, 100.0f, 10.0f, 6.0f, 27.5f, 20.0f, 6.0f, 6.0f, 5.0f, 6.0f, 8.0f, 5.0f, 3.0f,
|
|
11.5f, 25.0f, 80.0f, 20.0f, 9.0f, 8.0f, 5.0f, 4.0f, 7.0f, 10.0f, 6.0f, 11.0f, 8.0f, 5.0f, 6.0f,
|
|
6.0f, 30.0f, 7.0f, 15.0f, 9.0f, 6.0f, 9.0f, 6.0f, 3.0f, 32.5f, 15.0f, 7.5f, 10.0f, 10.0f, 6.0f,
|
|
6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 9.0f, 20.0f, 6.0f, 6.0f, 6.0f, 25.0f, 12.0f, 6.0f, 8.0f, 6.0f,
|
|
6.0f, 20.0f, 10.0f, 8.0f, 12.0f, 8.0f, 2.0f, 6.0f, 3.0f, 6.0f, 7.0f, 1.5f, 6.0f, 3.0f, 3.0f,
|
|
3.0f, 3.0f, 2.0f, 3.0f, 3.0f, 6.0f, 6.0f, 6.0f, 4.5f, 7.0f, 6.0f, 7.0f, 6.0f, 22.0f, 8.0f,
|
|
15.0f, 22.0f, 8.0f, 15.0f, 6.0f, 80.0f, 150.0f, 7.0f, 6.0f, 6.0f, 6.0f, 12.0f, 6.0f, 6.0f, 6.0f,
|
|
6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 35.0f, 20.0f, 9.0f, 6.0f, 6.0f, 6.0f, 20.0f, 20.0f,
|
|
20.0f, 20.0f, 20.0f, 9.0f, 4.0f, 4.0f, 10.0f, 5.0f, 8.0f, 6.0f, 10.0f, 6.0f, 6.0f, 2.0f, 36.0f,
|
|
14.0f, 7.0f, 250.0f, 6.0f, 9.0f, 6.0f, 7.0f, 4.0f, 6.0f, 8.0f, 6.0f, 23.0f, 6.0f, 6.0f, 6.0f,
|
|
70.0f, 6.0f, 7.0f, 6.0f, 6.0f, 6.0f, 20.0f, 6.0f, 6.0f, 6.0f, 5.0f, 1.0f, 6.0f, 6.0f, 6.0f,
|
|
6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f,
|
|
6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f,
|
|
6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f,
|
|
4.0f, 4.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 10.0f, 6.0f, 6.0f, 6.0f,
|
|
6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f,
|
|
6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f,
|
|
6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 7.0f, 7.0f, 7.0f, 7.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 8.0f,
|
|
6.0f, 6.0f, 6.0f, 7.0f, 6.0f, 6.0f, 6.0f, 7.5f, 6.0f, 6.0f, 4.0f, 6.0f, 3.0f, 6.0f, 6.0f,
|
|
1.0f, 9.0f, 7.0f, 8.0f, 7.0f, 8.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 8.0f,
|
|
};
|
|
|
|
static float female_height[] = {
|
|
6.0f, 6.0f, 7.0f, 6.0f, 5.0f, 6.0f, 5.0f, 5.5f, 4.0f, 8.0f, 9.0f, 3.5f, 3.0f, 6.0f, 6.0f,
|
|
2.0f, 8.5f, 8.0f, 21.0f, 20.0f, 6.0f, 6.0f, 3.5f, 3.0f, 6.0f, 2.0f, 5.0f, 5.0f, 6.0f, 6.0f,
|
|
6.0f, 7.5f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 5.0f, 6.0f, 6.0f, 7.0f, 4.0f, 4.7f, 6.0f,
|
|
8.0f, 3.0f, 12.0f, 5.0f, 21.0f, 6.0f, 6.0f, 3.0f, 9.0f, 6.0f, 6.0f, 2.0f, 6.0f, 3.0f, 6.0f,
|
|
4.0f, 20.0f, 5.0f, 5.0f, 6.0f, 9.0f, 25.0f, 6.0f, 6.0f, 10.0f, 6.0f, 6.0f, 6.0f, 6.0f, 2.5f,
|
|
7.0f, 6.0f, 5.0f, 6.0f, 1.5f, 1.0f, 3.5f, 7.0f, 6.0f, 6.0f, 6.0f, 6.0f, 7.0f, 3.0f, 3.0f,
|
|
7.0f, 12.0f, 8.0f, 9.0f, 4.0f, 11.5f, 8.0f, 6.0f, 6.0f, 12.0f, 6.0f, 6.0f, 6.0f, 20.0f, 10.0f,
|
|
6.5f, 6.0f, 17.0f, 1.0f, 4.0f, 6.0f, 8.0f, 5.0f, 1.0f, 6.0f, 6.0f, 5.0f, 5.0f, 5.0f, 9.0f,
|
|
3.0f, 8.0f, 2.0f, 24.0f, 6.0f, 10.0f, 6.0f, 6.0f, 6.0f, 3.0f, 7.0f, 9.0f, 6.0f, 11.0f, 2.5f,
|
|
14.0f, 8.0f, 7.0f, 12.0f, 6.0f, 27.0f, 6.0f, 6.0f, 6.0f, 6.0f, 2.0f, 9.0f, 9.0f, 6.0f, 9.0f,
|
|
3.0f, 3.0f, 6.0f, 6.0f, 10.0f, 6.0f, 6.0f, 15.0f, 15.0f, 9.0f, 7.0f, 6.0f, 6.0f, 7.0f, 8.0f,
|
|
3.0f, 3.0f, 6.0f, 7.0f, 13.0f, 6.0f, 6.0f, 9.0f, 5.0f, 7.0f, 9.0f, 6.0f, 6.0f, 8.0f, 6.0f,
|
|
6.0f, 5.5f, 6.0f, 4.0f, 25.0f, 6.0f, 6.0f, 6.0f, 22.0f, 20.0f, 6.0f, 10.0f, 13.5f, 12.0f, 3.0f,
|
|
30.0f, 6.0f, 6.0f, 35.0f, 1.5f, 8.0f, 3.0f, 6.0f, 2.0f, 6.0f, 6.0f, 5.0f, 2.0f, 7.0f, 6.0f,
|
|
6.0f, 6.0f, 6.0f, 4.0f, 6.0f, 6.0f, 6.0f, 8.0f, 8.0f, 7.0f, 8.0f, 6.0f, 7.0f, 6.0f, 7.0f,
|
|
6.0f, 10.0f, 3.0f, 6.0f, 8.0f, 9.0f, 15.0f, 5.0f, 10.0f, 7.0f, 6.0f, 7.0f, 6.0f, 7.0f, 7.0f,
|
|
12.0f, 6.0f, 4.0f, 6.0f, 5.0f, 3.0f, 30.0f, 30.0f, 15.0f, 20.0f, 6.0f, 10.0f, 6.0f, 14.0f, 14.0f,
|
|
16.0f, 15.0f, 30.0f, 15.0f, 7.5f, 5.0f, 4.0f, 6.0f, 15.0f, 6.5f, 3.0f, 12.0f, 10.0f, 10.5f, 10.0f,
|
|
7.5f, 6.0f, 6.0f, 12.5f, 9.0f, 20.0f, 2.0f, 10.0f, 25.0f, 8.0f, 6.0f, 6.0f, 10.0f, 18.0f, 45.0f,
|
|
13.0f, 15.0f, 8.0f, 30.0f, 25.0f, 25.0f, 10.0f, 13.0f, 5.0f, 3.5f, 15.0f, 35.0f, 11.0f, 15.0f, 50.0f,
|
|
13.0f, 6.0f, 7.0f, 6.0f, 60.0f, 6.0f, 22.0f, 22.0f, 21.0f, 22.0f, 15.0f, 25.0f, 23.0f, 8.0f, 15.0f,
|
|
10.0f, 6.0f, 7.0f, 6.0f, 12.0f, 9.5f, 6.0f, 12.0f, 12.0f, 12.0f, 15.0f, 4.0f, 5.0f, 105.0f, 20.0f,
|
|
5.0f, 10.0f, 10.0f, 10.0f, 20.0f, 13.5f, 8.0f, 10.0f, 3.0f, 5.0f, 9.0f, 6.0f, 6.0f, 6.0f, 10.0f,
|
|
8.0f, 8.0f, 8.0f, 6.0f, 6.0f, 5.0f, 5.0f, 5.0f, 9.0f, 9.0f, 9.0f, 6.0f, 8.5f, 6.0f, 7.0f,
|
|
8.0f, 7.0f, 11.0f, 6.0f, 7.0f, 9.0f, 8.0f, 6.0f, 8.0f, 6.0f, 6.0f, 6.0f, 6.0f, 9.0f, 10.0f,
|
|
6.0f, 3.0f, 4.0f, 3.0f, 3.0f, 4.0f, 10.0f, 10.0f, 2.0f, 8.0f, 6.0f, 6.0f, 14.0f, 7.0f, 5.0f,
|
|
9.0f, 7.0f, 7.0f, 10.0f, 10.0f, 12.0f, 9.0f, 7.0f, 12.0f, 13.0f, 16.0f, 6.0f, 9.0f, 6.0f, 6.0f,
|
|
10.0f, 25.0f, 15.0f, 6.0f, 25.0f, 6.0f, 6.0f, 8.0f, 11.0f, 6.0f, 9.0f, 2.0f, 6.0f, 5.0f, 4.0f,
|
|
8.5f, 6.0f, 6.0f, 6.0f, 4.0f, 6.0f, 15.0f, 1.0f, 2.0f, 6.0f, 40.0f, 8.0f, 12.0f, 3.0f, 8.0f,
|
|
99.0f, 9.0f, 100.0f, 100.0f, 10.0f, 6.0f, 27.5f, 20.0f, 6.0f, 6.0f, 5.0f, 6.0f, 8.0f, 5.0f, 3.0f,
|
|
11.5f, 25.0f, 80.0f, 20.0f, 9.0f, 8.0f, 5.0f, 4.0f, 7.0f, 10.0f, 6.0f, 11.0f, 8.0f, 5.0f, 6.0f,
|
|
6.0f, 30.0f, 7.0f, 15.0f, 9.0f, 6.0f, 9.0f, 6.0f, 3.0f, 32.5f, 15.0f, 7.5f, 10.0f, 10.0f, 6.0f,
|
|
6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 9.0f, 20.0f, 6.0f, 6.0f, 6.0f, 25.0f, 12.0f, 6.0f, 8.0f, 6.0f,
|
|
6.0f, 20.0f, 9.0f, 8.0f, 12.0f, 8.0f, 2.0f, 6.0f, 3.0f, 6.0f, 7.0f, 1.5f, 6.0f, 3.0f, 3.0f,
|
|
3.0f, 3.0f, 2.0f, 3.0f, 3.0f, 6.0f, 6.0f, 6.0f, 4.5f, 7.0f, 6.0f, 7.0f, 5.7f, 22.0f, 8.0f,
|
|
15.0f, 22.0f, 8.0f, 15.0f, 6.0f, 80.0f, 150.0f, 7.0f, 6.0f, 6.0f, 6.0f, 12.0f, 6.0f, 6.0f, 6.0f,
|
|
6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 35.0f, 20.0f, 9.0f, 6.0f, 6.0f, 6.0f, 20.0f, 20.0f,
|
|
20.0f, 20.0f, 20.0f, 9.0f, 4.0f, 4.0f, 10.0f, 5.0f, 8.0f, 6.0f, 10.0f, 5.7f, 6.0f, 2.0f, 36.0f,
|
|
14.0f, 7.0f, 250.0f, 6.0f, 9.0f, 6.0f, 7.0f, 4.0f, 6.0f, 8.0f, 6.0f, 23.0f, 6.0f, 6.0f, 6.0f,
|
|
70.0f, 6.0f, 7.0f, 6.0f, 6.0f, 6.0f, 20.0f, 6.0f, 6.0f, 6.0f, 5.0f, 1.0f, 6.0f, 6.0f, 6.0f,
|
|
6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f,
|
|
6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f,
|
|
6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f,
|
|
4.0f, 4.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 10.0f, 6.0f, 6.0f, 6.0f,
|
|
6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f,
|
|
6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f,
|
|
6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 7.0f, 7.0f, 7.0f, 7.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 8.0f,
|
|
6.0f, 6.0f, 6.0f, 7.0f, 6.0f, 6.0f, 6.0f, 7.5f, 6.0f, 6.0f, 4.0f, 6.0f, 3.0f, 6.0f, 6.0f,
|
|
1.0f, 9.0f, 7.0f, 8.0f, 7.0f, 8.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 8.0f,
|
|
};
|
|
|
|
const auto size = sizeof(male_height) / sizeof(male_height[0]);
|
|
|
|
if (race >= size) {
|
|
return 6.0f;
|
|
}
|
|
|
|
if (gender == Gender::Female) {
|
|
return female_height[race];
|
|
}
|
|
|
|
return male_height[race];
|
|
}
|
|
|
|
// PlayerAppearance prep
|
|
#define HUMAN_MALE ((HUMAN << 8) | Gender::Male)
|
|
#define HUMAN_FEMALE ((HUMAN << 8) | Gender::Female)
|
|
#define BARBARIAN_MALE ((BARBARIAN << 8) | Gender::Male)
|
|
#define BARBARIAN_FEMALE ((BARBARIAN << 8) | Gender::Female)
|
|
#define ERUDITE_MALE ((ERUDITE << 8) | Gender::Male)
|
|
#define ERUDITE_FEMALE ((ERUDITE << 8) | Gender::Female)
|
|
#define WOOD_ELF_MALE ((WOOD_ELF << 8) | Gender::Male)
|
|
#define WOOD_ELF_FEMALE ((WOOD_ELF << 8) | Gender::Female)
|
|
#define HIGH_ELF_MALE ((HIGH_ELF << 8) | Gender::Male)
|
|
#define HIGH_ELF_FEMALE ((HIGH_ELF << 8) | Gender::Female)
|
|
#define DARK_ELF_MALE ((DARK_ELF << 8) | Gender::Male)
|
|
#define DARK_ELF_FEMALE ((DARK_ELF << 8) | Gender::Female)
|
|
#define HALF_ELF_MALE ((HALF_ELF << 8) | Gender::Male)
|
|
#define HALF_ELF_FEMALE ((HALF_ELF << 8) | Gender::Female)
|
|
#define DWARF_MALE ((DWARF << 8) | Gender::Male)
|
|
#define DWARF_FEMALE ((DWARF << 8) | Gender::Female)
|
|
#define TROLL_MALE ((TROLL << 8) | Gender::Male)
|
|
#define TROLL_FEMALE ((TROLL << 8) | Gender::Female)
|
|
#define OGRE_MALE ((OGRE << 8) | Gender::Male)
|
|
#define OGRE_FEMALE ((OGRE << 8) | Gender::Female)
|
|
#define HALFLING_MALE ((HALFLING << 8) | Gender::Male)
|
|
#define HALFLING_FEMALE ((HALFLING << 8) | Gender::Female)
|
|
#define GNOME_MALE ((GNOME << 8) | Gender::Male)
|
|
#define GNOME_FEMALE ((GNOME << 8) | Gender::Female)
|
|
#define IKSAR_MALE ((IKSAR << 8) | Gender::Male)
|
|
#define IKSAR_FEMALE ((IKSAR << 8) | Gender::Female)
|
|
#define VAHSHIR_MALE ((VAHSHIR << 8) | Gender::Male)
|
|
#define VAHSHIR_FEMALE ((VAHSHIR << 8) | Gender::Female)
|
|
#define FROGLOK_MALE ((FROGLOK << 8) | Gender::Male)
|
|
#define FROGLOK_FEMALE ((FROGLOK << 8) | Gender::Female)
|
|
#define DRAKKIN_MALE ((DRAKKIN << 8) | Gender::Male)
|
|
#define DRAKKIN_FEMALE ((DRAKKIN << 8) | Gender::Female)
|
|
|
|
#define BINDRG(r, g) (((int)r << 8) | g)
|
|
|
|
|
|
bool PlayerAppearance::IsValidBeard(uint16 race_id, uint8 gender_id, uint8 beard_value, bool use_luclin)
|
|
{
|
|
if (beard_value == 0xFF)
|
|
return true;
|
|
|
|
if (use_luclin) {
|
|
switch (BINDRG(race_id, gender_id)) {
|
|
case DWARF_FEMALE:
|
|
if (beard_value <= 1)
|
|
return true;
|
|
break;
|
|
case HIGH_ELF_MALE:
|
|
case DARK_ELF_MALE:
|
|
case HALF_ELF_MALE:
|
|
case DRAKKIN_FEMALE:
|
|
if (beard_value <= 3)
|
|
return true;
|
|
break;
|
|
case HUMAN_MALE:
|
|
case BARBARIAN_MALE:
|
|
case ERUDITE_MALE:
|
|
case DWARF_MALE:
|
|
case HALFLING_MALE:
|
|
case GNOME_MALE:
|
|
if (beard_value <= 5)
|
|
return true;
|
|
break;
|
|
case DRAKKIN_MALE:
|
|
if (beard_value <= 11)
|
|
return true;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return false;
|
|
}
|
|
else {
|
|
switch (BINDRG(race_id, gender_id)) {
|
|
case DRAKKIN_FEMALE:
|
|
if (beard_value <= 3)
|
|
return true;
|
|
break;
|
|
case DRAKKIN_MALE:
|
|
if (beard_value <= 11)
|
|
return true;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool PlayerAppearance::IsValidBeardColor(uint16 race_id, uint8 gender_id, uint8 beard_color_value, bool use_luclin)
|
|
{
|
|
if (beard_color_value == 0xFF)
|
|
return true;
|
|
|
|
switch (BINDRG(race_id, gender_id)) {
|
|
case GNOME_MALE:
|
|
if (beard_color_value <= 24)
|
|
return true;
|
|
break;
|
|
case HUMAN_MALE:
|
|
case BARBARIAN_MALE:
|
|
case ERUDITE_MALE:
|
|
case HALF_ELF_MALE:
|
|
case DWARF_MALE:
|
|
case DWARF_FEMALE:
|
|
case HALFLING_MALE:
|
|
if (beard_color_value <= 19)
|
|
return true;
|
|
break;
|
|
case DARK_ELF_MALE:
|
|
if (beard_color_value >= 13 && beard_color_value <= 18)
|
|
return true;
|
|
break;
|
|
case HIGH_ELF_MALE:
|
|
if (beard_color_value <= 14)
|
|
return true;
|
|
break;
|
|
case FROGLOK_MALE:
|
|
case FROGLOK_FEMALE:
|
|
case DRAKKIN_MALE:
|
|
case DRAKKIN_FEMALE:
|
|
if (beard_color_value <= 3)
|
|
return true;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
bool PlayerAppearance::IsValidDetail(uint16 race_id, uint8 gender_id, uint32 detail_value, bool use_luclin)
|
|
{
|
|
if (detail_value == 0xFFFFFFFF)
|
|
return true;
|
|
|
|
switch (BINDRG(race_id, gender_id)) {
|
|
case DRAKKIN_MALE:
|
|
case DRAKKIN_FEMALE:
|
|
if (detail_value <= 7)
|
|
return true;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
bool PlayerAppearance::IsValidEyeColor(uint16 race_id, uint8 gender_id, uint8 eye_color_value, bool use_luclin)
|
|
{
|
|
return true; // need valid criteria
|
|
|
|
switch (BINDRG(race_id, gender_id)) {
|
|
case HUMAN_MALE:
|
|
case HUMAN_FEMALE:
|
|
case BARBARIAN_MALE:
|
|
case BARBARIAN_FEMALE:
|
|
case ERUDITE_MALE:
|
|
case ERUDITE_FEMALE:
|
|
case WOOD_ELF_MALE:
|
|
case WOOD_ELF_FEMALE:
|
|
case HIGH_ELF_MALE:
|
|
case HIGH_ELF_FEMALE:
|
|
case DARK_ELF_MALE:
|
|
case DARK_ELF_FEMALE:
|
|
case HALF_ELF_MALE:
|
|
case HALF_ELF_FEMALE:
|
|
case DWARF_MALE:
|
|
case DWARF_FEMALE:
|
|
case OGRE_MALE:
|
|
case OGRE_FEMALE:
|
|
case HALFLING_MALE:
|
|
case HALFLING_FEMALE:
|
|
case GNOME_MALE:
|
|
case GNOME_FEMALE:
|
|
case IKSAR_MALE:
|
|
case IKSAR_FEMALE:
|
|
case VAHSHIR_MALE:
|
|
case VAHSHIR_FEMALE:
|
|
if (eye_color_value <= 9)
|
|
return true;
|
|
break;
|
|
case TROLL_MALE:
|
|
case TROLL_FEMALE:
|
|
if (eye_color_value <= 10)
|
|
return true;
|
|
break;
|
|
case FROGLOK_MALE:
|
|
case FROGLOK_FEMALE:
|
|
case DRAKKIN_MALE:
|
|
case DRAKKIN_FEMALE:
|
|
if (eye_color_value <= 11)
|
|
return true;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
bool PlayerAppearance::IsValidFace(uint16 race_id, uint8 gender_id, uint8 face_value, bool use_luclin)
|
|
{
|
|
if (face_value == 0xFF)
|
|
return true;
|
|
|
|
switch (BINDRG(race_id, gender_id)) {
|
|
case DRAKKIN_MALE:
|
|
case DRAKKIN_FEMALE:
|
|
if (face_value <= 6)
|
|
return true;
|
|
break;
|
|
case HUMAN_MALE:
|
|
case HUMAN_FEMALE:
|
|
case BARBARIAN_MALE:
|
|
case BARBARIAN_FEMALE:
|
|
case ERUDITE_MALE:
|
|
case ERUDITE_FEMALE:
|
|
case WOOD_ELF_MALE:
|
|
case WOOD_ELF_FEMALE:
|
|
case HIGH_ELF_MALE:
|
|
case HIGH_ELF_FEMALE:
|
|
case DARK_ELF_MALE:
|
|
case DARK_ELF_FEMALE:
|
|
case HALF_ELF_MALE:
|
|
case HALF_ELF_FEMALE:
|
|
case DWARF_MALE:
|
|
case DWARF_FEMALE:
|
|
case TROLL_MALE:
|
|
case TROLL_FEMALE:
|
|
case OGRE_MALE:
|
|
case OGRE_FEMALE:
|
|
case HALFLING_MALE:
|
|
case HALFLING_FEMALE:
|
|
case GNOME_MALE:
|
|
case GNOME_FEMALE:
|
|
case IKSAR_MALE:
|
|
case IKSAR_FEMALE:
|
|
case VAHSHIR_MALE:
|
|
case VAHSHIR_FEMALE:
|
|
if (face_value <= 7)
|
|
return true;
|
|
break;
|
|
case FROGLOK_MALE:
|
|
case FROGLOK_FEMALE:
|
|
if (face_value <= 9)
|
|
return true;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
bool PlayerAppearance::IsValidHair(uint16 race_id, uint8 gender_id, uint8 hair_value, bool use_luclin)
|
|
{
|
|
if (hair_value == 0xFF)
|
|
return true;
|
|
|
|
if (use_luclin) {
|
|
switch (BINDRG(race_id, gender_id)) {
|
|
case HUMAN_MALE:
|
|
case HUMAN_FEMALE:
|
|
case BARBARIAN_MALE:
|
|
case BARBARIAN_FEMALE:
|
|
case WOOD_ELF_MALE:
|
|
case WOOD_ELF_FEMALE:
|
|
case HIGH_ELF_MALE:
|
|
case HIGH_ELF_FEMALE:
|
|
case DARK_ELF_MALE:
|
|
case DARK_ELF_FEMALE:
|
|
case HALF_ELF_MALE:
|
|
case HALF_ELF_FEMALE:
|
|
case DWARF_MALE:
|
|
case DWARF_FEMALE:
|
|
case TROLL_FEMALE:
|
|
case OGRE_FEMALE:
|
|
case HALFLING_MALE:
|
|
case HALFLING_FEMALE:
|
|
case GNOME_MALE:
|
|
case GNOME_FEMALE:
|
|
if (hair_value <= 3)
|
|
return true;
|
|
break;
|
|
case ERUDITE_MALE:
|
|
if (hair_value <= 5)
|
|
return true;
|
|
break;
|
|
case DRAKKIN_FEMALE:
|
|
if (hair_value <= 7)
|
|
return true;
|
|
break;
|
|
case ERUDITE_FEMALE:
|
|
case DRAKKIN_MALE:
|
|
if (hair_value <= 8)
|
|
return true;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return false;
|
|
}
|
|
else {
|
|
switch (BINDRG(race_id, gender_id)) {
|
|
case DRAKKIN_FEMALE:
|
|
if (hair_value <= 7)
|
|
return true;
|
|
break;
|
|
case DRAKKIN_MALE:
|
|
if (hair_value <= 8)
|
|
return true;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool PlayerAppearance::IsValidHairColor(uint16 race_id, uint8 gender_id, uint8 hair_color_value, bool use_luclin)
|
|
{
|
|
if (hair_color_value == 0xFF)
|
|
return true;
|
|
|
|
switch (BINDRG(race_id, gender_id)) {
|
|
case GNOME_MALE:
|
|
case GNOME_FEMALE:
|
|
if (hair_color_value <= 24)
|
|
return true;
|
|
break;
|
|
case TROLL_FEMALE:
|
|
case OGRE_FEMALE:
|
|
if (hair_color_value <= 23)
|
|
return true;
|
|
break;
|
|
case HUMAN_MALE:
|
|
case HUMAN_FEMALE:
|
|
case BARBARIAN_MALE:
|
|
case BARBARIAN_FEMALE:
|
|
case WOOD_ELF_MALE:
|
|
case WOOD_ELF_FEMALE:
|
|
case HALF_ELF_MALE:
|
|
case HALF_ELF_FEMALE:
|
|
case DWARF_MALE:
|
|
case DWARF_FEMALE:
|
|
case HALFLING_MALE:
|
|
case HALFLING_FEMALE:
|
|
if (hair_color_value <= 19)
|
|
return true;
|
|
break;
|
|
case DARK_ELF_MALE:
|
|
case DARK_ELF_FEMALE:
|
|
if (hair_color_value >= 13 && hair_color_value <= 18)
|
|
return true;
|
|
break;
|
|
case HIGH_ELF_MALE:
|
|
case HIGH_ELF_FEMALE:
|
|
if (hair_color_value <= 14)
|
|
return true;
|
|
break;
|
|
case FROGLOK_MALE:
|
|
case FROGLOK_FEMALE:
|
|
case DRAKKIN_MALE:
|
|
case DRAKKIN_FEMALE:
|
|
if (hair_color_value <= 3)
|
|
return true;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
bool PlayerAppearance::IsValidHead(uint16 race_id, uint8 gender_id, uint8 head_value, bool use_luclin)
|
|
{
|
|
if (head_value == 0xFF)
|
|
return true;
|
|
|
|
if (use_luclin) {
|
|
switch (BINDRG(race_id, gender_id)) {
|
|
case HUMAN_MALE:
|
|
case HUMAN_FEMALE:
|
|
case BARBARIAN_MALE:
|
|
case BARBARIAN_FEMALE:
|
|
case WOOD_ELF_MALE:
|
|
case WOOD_ELF_FEMALE:
|
|
case HIGH_ELF_MALE:
|
|
case HIGH_ELF_FEMALE:
|
|
case DARK_ELF_MALE:
|
|
case DARK_ELF_FEMALE:
|
|
case HALF_ELF_MALE:
|
|
case HALF_ELF_FEMALE:
|
|
case DWARF_MALE:
|
|
case DWARF_FEMALE:
|
|
case TROLL_MALE:
|
|
case TROLL_FEMALE:
|
|
case OGRE_MALE:
|
|
case OGRE_FEMALE:
|
|
case HALFLING_MALE:
|
|
case HALFLING_FEMALE:
|
|
case GNOME_MALE:
|
|
case GNOME_FEMALE:
|
|
case IKSAR_MALE:
|
|
case IKSAR_FEMALE:
|
|
case VAHSHIR_MALE:
|
|
case VAHSHIR_FEMALE:
|
|
case FROGLOK_MALE:
|
|
case FROGLOK_FEMALE:
|
|
case DRAKKIN_MALE:
|
|
case DRAKKIN_FEMALE:
|
|
if (head_value <= 3)
|
|
return true;
|
|
break;
|
|
case ERUDITE_MALE:
|
|
case ERUDITE_FEMALE:
|
|
if (head_value <= 4)
|
|
return true;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return false;
|
|
}
|
|
else {
|
|
switch (BINDRG(race_id, gender_id)) {
|
|
case HUMAN_MALE:
|
|
case HUMAN_FEMALE:
|
|
case BARBARIAN_MALE:
|
|
case BARBARIAN_FEMALE:
|
|
case ERUDITE_MALE:
|
|
case ERUDITE_FEMALE:
|
|
case WOOD_ELF_MALE:
|
|
case WOOD_ELF_FEMALE:
|
|
case HIGH_ELF_MALE:
|
|
case HIGH_ELF_FEMALE:
|
|
case DARK_ELF_MALE:
|
|
case DARK_ELF_FEMALE:
|
|
case HALF_ELF_MALE:
|
|
case HALF_ELF_FEMALE:
|
|
case DWARF_MALE:
|
|
case DWARF_FEMALE:
|
|
case TROLL_MALE:
|
|
case TROLL_FEMALE:
|
|
case OGRE_MALE:
|
|
case OGRE_FEMALE:
|
|
case HALFLING_MALE:
|
|
case HALFLING_FEMALE:
|
|
case IKSAR_MALE:
|
|
case IKSAR_FEMALE:
|
|
case VAHSHIR_MALE:
|
|
case VAHSHIR_FEMALE:
|
|
case FROGLOK_MALE:
|
|
case FROGLOK_FEMALE:
|
|
case DRAKKIN_MALE:
|
|
case DRAKKIN_FEMALE:
|
|
if (head_value <= 3)
|
|
return true;
|
|
break;
|
|
case GNOME_MALE:
|
|
case GNOME_FEMALE:
|
|
if (head_value <= 4)
|
|
return true;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool PlayerAppearance::IsValidHeritage(uint16 race_id, uint8 gender_id, uint32 heritage_value, bool use_luclin)
|
|
{
|
|
if (heritage_value == 0xFFFFFFFF)
|
|
return true;
|
|
|
|
switch (BINDRG(race_id, gender_id)) {
|
|
case DRAKKIN_MALE:
|
|
case DRAKKIN_FEMALE:
|
|
if (heritage_value <= 7) // > 5 seems to jumble other features..else, some heritages have 'specialized' features
|
|
return true;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
bool PlayerAppearance::IsValidTattoo(uint16 race_id, uint8 gender_id, uint32 tattoo_value, bool use_luclin)
|
|
{
|
|
if (tattoo_value == 0xFFFFFFFF)
|
|
return true;
|
|
|
|
switch (BINDRG(race_id, gender_id)) {
|
|
case DRAKKIN_MALE:
|
|
case DRAKKIN_FEMALE:
|
|
if (tattoo_value <= 7)
|
|
return true;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
bool PlayerAppearance::IsValidTexture(uint16 race_id, uint8 gender_id, uint8 texture_value, bool use_luclin)
|
|
{
|
|
if (texture_value == 0xFF)
|
|
return true;
|
|
|
|
if (use_luclin) {
|
|
switch (BINDRG(race_id, gender_id)) {
|
|
case HUMAN_MALE:
|
|
case HUMAN_FEMALE:
|
|
case IKSAR_MALE:
|
|
case IKSAR_FEMALE:
|
|
case DRAKKIN_MALE:
|
|
case DRAKKIN_FEMALE:
|
|
if ((texture_value >= 10 && texture_value <= 16) || texture_value <= 4)
|
|
return true;
|
|
break;
|
|
case ERUDITE_MALE:
|
|
case ERUDITE_FEMALE:
|
|
case HIGH_ELF_MALE:
|
|
case HIGH_ELF_FEMALE:
|
|
case DARK_ELF_MALE:
|
|
case DARK_ELF_FEMALE:
|
|
case GNOME_MALE:
|
|
case GNOME_FEMALE:
|
|
case FROGLOK_MALE:
|
|
case FROGLOK_FEMALE:
|
|
if ((texture_value >= 10 && texture_value <= 16) || texture_value <= 3)
|
|
return true;
|
|
break;
|
|
case BARBARIAN_MALE:
|
|
case BARBARIAN_FEMALE:
|
|
case WOOD_ELF_MALE:
|
|
case WOOD_ELF_FEMALE:
|
|
case HALF_ELF_MALE:
|
|
case HALF_ELF_FEMALE:
|
|
case DWARF_MALE:
|
|
case DWARF_FEMALE:
|
|
case TROLL_MALE:
|
|
case TROLL_FEMALE:
|
|
case OGRE_MALE:
|
|
case OGRE_FEMALE:
|
|
case HALFLING_MALE:
|
|
case HALFLING_FEMALE:
|
|
case VAHSHIR_MALE:
|
|
case VAHSHIR_FEMALE:
|
|
if (texture_value <= 3)
|
|
return true;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return false;
|
|
}
|
|
else {
|
|
switch (BINDRG(race_id, gender_id)) {
|
|
case HUMAN_MALE:
|
|
case HUMAN_FEMALE:
|
|
case ERUDITE_MALE:
|
|
case ERUDITE_FEMALE:
|
|
case DRAKKIN_MALE:
|
|
case DRAKKIN_FEMALE:
|
|
if ((texture_value >= 10 && texture_value <= 16) || texture_value <= 4)
|
|
return true;
|
|
break;
|
|
case HIGH_ELF_MALE:
|
|
case HIGH_ELF_FEMALE:
|
|
case DARK_ELF_MALE:
|
|
case DARK_ELF_FEMALE:
|
|
case GNOME_MALE:
|
|
case GNOME_FEMALE:
|
|
case FROGLOK_MALE:
|
|
case FROGLOK_FEMALE:
|
|
if ((texture_value >= 10 && texture_value <= 16) || texture_value <= 3)
|
|
return true;
|
|
break;
|
|
case VAHSHIR_MALE:
|
|
case VAHSHIR_FEMALE:
|
|
if (texture_value == 50 || texture_value <= 3)
|
|
return true;
|
|
break;
|
|
case IKSAR_MALE:
|
|
case IKSAR_FEMALE:
|
|
if (texture_value == 10 || texture_value <= 4)
|
|
return true;
|
|
break;
|
|
case BARBARIAN_MALE:
|
|
case BARBARIAN_FEMALE:
|
|
case WOOD_ELF_MALE:
|
|
case WOOD_ELF_FEMALE:
|
|
case HALF_ELF_MALE:
|
|
case HALF_ELF_FEMALE:
|
|
case DWARF_MALE:
|
|
case DWARF_FEMALE:
|
|
case TROLL_MALE:
|
|
case TROLL_FEMALE:
|
|
case OGRE_MALE:
|
|
case OGRE_FEMALE:
|
|
case HALFLING_MALE:
|
|
case HALFLING_FEMALE:
|
|
if (texture_value <= 3)
|
|
return true;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool PlayerAppearance::IsValidWoad(uint16 race_id, uint8 gender_id, uint8 woad_value, bool use_luclin)
|
|
{
|
|
if (woad_value == 0xFF)
|
|
return true;
|
|
|
|
if (use_luclin) {
|
|
switch (BINDRG(race_id, gender_id)) {
|
|
case BARBARIAN_MALE:
|
|
case BARBARIAN_FEMALE:
|
|
if (woad_value <= 8)
|
|
return true;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
const char* GetGenderName(uint32 gender_id) {
|
|
const char* gender_name = "Unknown";
|
|
if (gender_id == Gender::Male) {
|
|
gender_name = "Male";
|
|
} else if (gender_id == Gender::Female) {
|
|
gender_name = "Female";
|
|
} else if (gender_id == Gender::Neuter) {
|
|
gender_name = "Neuter";
|
|
}
|
|
return gender_name;
|
|
}
|
|
|
|
const std::string GetPlayerRaceAbbreviation(uint16 race_id)
|
|
{
|
|
if (!IsPlayerRace(race_id)) {
|
|
return std::string("UNK");
|
|
}
|
|
|
|
switch (race_id) {
|
|
case Race::Human:
|
|
return "HUM";
|
|
case Race::Barbarian:
|
|
return "BAR";
|
|
case Race::Erudite:
|
|
return "ERU";
|
|
case Race::WoodElf:
|
|
return "ELF";
|
|
case Race::HighElf:
|
|
return "HIE";
|
|
case Race::DarkElf:
|
|
return "DEF";
|
|
case Race::HalfElf:
|
|
return "HEF";
|
|
case Race::Dwarf:
|
|
return "DWF";
|
|
case Race::Troll:
|
|
return "TRL";
|
|
case Race::Ogre:
|
|
return "OGR";
|
|
case Race::Halfling:
|
|
return "HFL";
|
|
case Race::Gnome:
|
|
return "GNM";
|
|
case Race::Iksar:
|
|
return "IKS";
|
|
case Race::VahShir:
|
|
return "VAH";
|
|
case Race::Froglok2:
|
|
return "FRG";
|
|
case Race::Drakkin:
|
|
return "DRK";
|
|
}
|
|
|
|
return std::string("UNK");
|
|
}
|
|
|
|
bool IsPlayerRace(uint16 race_id) {
|
|
return (
|
|
EQ::ValueWithin(race_id, Race::Human, Race::Gnome) ||
|
|
race_id == Race::Iksar ||
|
|
race_id == Race::VahShir ||
|
|
race_id == Race::Froglok2 ||
|
|
race_id == Race::Drakkin
|
|
);
|
|
}
|