mirror of
https://github.com/EQEmu/Server.git
synced 2026-04-02 08:12:25 +00:00
- License was intended to be GPLv3 per earlier commit of GPLv3 LICENSE FILE - This is confirmed by the inclusion of libraries that are incompatible with GPLv2 - This is also confirmed by KLS and the agreement of KLS's predecessors - Added GPLv3 license headers to the compilable source files - Removed Folly licensing in strings.h since the string functions do not match the Folly functions and are standard functions - this must have been left over from previous implementations - Removed individual contributor license headers since the project has been under the "developer" mantle for many years - Removed comments on files that were previously automatically generated since they've been manually modified multiple times and there are no automatic scripts referencing them (removed in 2023)
112 lines
4.5 KiB
C++
112 lines
4.5 KiB
C++
/* EQEmu: EQEmulator
|
|
|
|
Copyright (C) 2001-2026 EQEmu Development Team
|
|
|
|
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; either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; 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, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
#pragma once
|
|
|
|
#include "common/types.h"
|
|
|
|
#include <map>
|
|
#include <string>
|
|
|
|
// body types above 64 make the mob invisible
|
|
namespace BodyType {
|
|
constexpr uint8 Humanoid = 1;
|
|
constexpr uint8 Lycanthrope = 2;
|
|
constexpr uint8 Undead = 3;
|
|
constexpr uint8 Giant = 4;
|
|
constexpr uint8 Construct = 5;
|
|
constexpr uint8 Extraplanar = 6;
|
|
constexpr uint8 Magical = 7; // this name might be a bit off,
|
|
constexpr uint8 SummonedUndead = 8;
|
|
constexpr uint8 RaidGiant = 9; // Velious era Raid Giant
|
|
constexpr uint8 RaidColdain = 10; // Velious era Raid Coldain
|
|
constexpr uint8 NoTarget = 11; // no name, can't target this bodytype
|
|
constexpr uint8 Vampire = 12;
|
|
constexpr uint8 AtenHaRa = 13;
|
|
constexpr uint8 GreaterAkheva = 14;
|
|
constexpr uint8 KhatiSha = 15;
|
|
constexpr uint8 Seru = 16;
|
|
constexpr uint8 GriegVeneficus = 17;
|
|
constexpr uint8 DrazNurakk = 18;
|
|
constexpr uint8 Zek = 19; //"creatures from the Plane of War."
|
|
constexpr uint8 Luggald = 20;
|
|
constexpr uint8 Animal = 21;
|
|
constexpr uint8 Insect = 22;
|
|
constexpr uint8 Monster = 23;
|
|
constexpr uint8 Summoned = 24; // Elemental?
|
|
constexpr uint8 Plant = 25;
|
|
constexpr uint8 Dragon = 26;
|
|
constexpr uint8 Summoned2 = 27;
|
|
constexpr uint8 Summoned3 = 28;
|
|
constexpr uint8 Dragon2 = 29; // database data indicates this is a dragon type (Kunark and DoN?)
|
|
constexpr uint8 VeliousDragon = 30; // might not be a tight set
|
|
constexpr uint8 Familiar = 31;
|
|
constexpr uint8 Dragon3 = 32;
|
|
constexpr uint8 Boxes = 33;
|
|
constexpr uint8 Muramite = 34; // tribal dudes
|
|
constexpr uint8 NoTarget2 = 60;
|
|
constexpr uint8 SwarmPet = 63; // Looks like weapon proc related temp pets and few misc pets, should not be used for checking swarm pets in general.
|
|
constexpr uint8 MonsterSummon = 64;
|
|
constexpr uint8 InvisibleMan = 66; // no name, seen on 'InvisMan', can be /targeted
|
|
constexpr uint8 Special = 67;
|
|
|
|
std::string GetName(uint8 body_type_id);
|
|
bool IsValid(uint8 body_type_id);
|
|
}
|
|
|
|
static std::map<uint8, std::string> body_type_names = {
|
|
{ BodyType::Humanoid, "Humanoid" },
|
|
{ BodyType::Lycanthrope, "Lycanthrope" },
|
|
{ BodyType::Undead, "Undead" },
|
|
{ BodyType::Giant, "Giant" },
|
|
{ BodyType::Construct, "Construct" },
|
|
{ BodyType::Extraplanar, "Extraplanar" },
|
|
{ BodyType::Magical, "Magical" },
|
|
{ BodyType::SummonedUndead, "Summoned Undead" },
|
|
{ BodyType::RaidGiant, "Raid Giant" },
|
|
{ BodyType::RaidColdain, "Raid Coldain" },
|
|
{ BodyType::NoTarget, "Untargetable" },
|
|
{ BodyType::Vampire, "Vampire" },
|
|
{ BodyType::AtenHaRa, "Aten Ha Ra" },
|
|
{ BodyType::GreaterAkheva, "Greater Akheva" },
|
|
{ BodyType::KhatiSha, "Khati Sha" },
|
|
{ BodyType::Seru, "Seru" },
|
|
{ BodyType::GriegVeneficus, "Grieg Veneficus" },
|
|
{ BodyType::DrazNurakk, "Draz Nurakk" },
|
|
{ BodyType::Zek, "Zek" },
|
|
{ BodyType::Luggald, "Luggald" },
|
|
{ BodyType::Animal, "Animal" },
|
|
{ BodyType::Insect, "Insect" },
|
|
{ BodyType::Monster, "Monster" },
|
|
{ BodyType::Summoned, "Summoned" },
|
|
{ BodyType::Plant, "Plant" },
|
|
{ BodyType::Dragon, "Dragon" },
|
|
{ BodyType::Summoned2, "Summoned 2" },
|
|
{ BodyType::Summoned3, "Summoned 3" },
|
|
{ BodyType::Dragon2, "Dragon 2" },
|
|
{ BodyType::VeliousDragon, "Velious Dragon" },
|
|
{ BodyType::Familiar, "Familiar" },
|
|
{ BodyType::Dragon3, "Dragon 3" },
|
|
{ BodyType::Boxes, "Boxes" },
|
|
{ BodyType::Muramite, "Muramite" },
|
|
{ BodyType::NoTarget2, "Untargetable 2" },
|
|
{ BodyType::SwarmPet, "Swarm Pet" },
|
|
{ BodyType::MonsterSummon, "Monster Summon" },
|
|
{ BodyType::InvisibleMan, "Invisible Man" },
|
|
{ BodyType::Special, "Special" },
|
|
};
|