aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2019-07-29 21:37:15 +0200
committerShauren <shauren.trinity@gmail.com>2021-12-17 22:36:55 +0100
commit2b65dbbeabc3cde156d43e8e2657195e813821f1 (patch)
treeed5a86880c67a560937c2725a7e1ae86467754f3 /src
parent3388cea685d754fae8b7495473978f9e4f7cfed6 (diff)
Core/Misc: Kick a Totem error log upstairs one stack frame to give it access to various debug info and make Aokromes happy.
(cherry picked from commit e813200e5ef3eaade089cb0e8382905c80b6130d)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Totem/Totem.cpp4
-rw-r--r--src/server/game/Maps/enuminfo_SpawnData.cpp2
-rw-r--r--src/server/game/Miscellaneous/RaceMask.h53
-rw-r--r--src/server/game/Miscellaneous/SharedDefines.h27
-rw-r--r--src/server/game/Miscellaneous/enuminfo_RaceMask.cpp102
-rw-r--r--src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp48
-rw-r--r--src/server/game/Spells/SpellMgr.cpp3
7 files changed, 197 insertions, 42 deletions
diff --git a/src/server/game/Entities/Totem/Totem.cpp b/src/server/game/Entities/Totem/Totem.cpp
index 2f2c9b354bf..59c7b2b0d1f 100644
--- a/src/server/game/Entities/Totem/Totem.cpp
+++ b/src/server/game/Entities/Totem/Totem.cpp
@@ -17,6 +17,7 @@
#include "Totem.h"
#include "Group.h"
+#include "Log.h"
#include "Map.h"
#include "Player.h"
#include "SpellHistory.h"
@@ -68,6 +69,9 @@ void Totem::InitStats(uint32 duration)
// set display id depending on caster's race
if (uint32 totemDisplayId = sSpellMgr->GetModelForTotem(m_unitData->CreatedBySpell, owner->GetRace()))
SetDisplayId(totemDisplayId);
+ else
+ TC_LOG_ERROR("misc", "Totem with entry %u, does not have a specialized model for spell %u and race %s. Set to default.",
+ GetEntry(), *m_unitData->CreatedBySpell, EnumUtils::ToTitle(Races(owner->GetRace())));
}
Minion::InitStats(duration);
diff --git a/src/server/game/Maps/enuminfo_SpawnData.cpp b/src/server/game/Maps/enuminfo_SpawnData.cpp
index 55487a8d50b..92226f25572 100644
--- a/src/server/game/Maps/enuminfo_SpawnData.cpp
+++ b/src/server/game/Maps/enuminfo_SpawnData.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008-2019 TrinityCore <https://www.trinitycore.org/>
+ * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* 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
diff --git a/src/server/game/Miscellaneous/RaceMask.h b/src/server/game/Miscellaneous/RaceMask.h
index 046c2b2e584..7e6d38d277f 100644
--- a/src/server/game/Miscellaneous/RaceMask.h
+++ b/src/server/game/Miscellaneous/RaceMask.h
@@ -21,20 +21,21 @@
#include "Define.h"
#include <type_traits>
+// EnumUtils: DESCRIBE THIS
enum Races
{
- RACE_NONE = 0,
- RACE_HUMAN = 1,
- RACE_ORC = 2,
- RACE_DWARF = 3,
- RACE_NIGHTELF = 4,
- RACE_UNDEAD_PLAYER = 5,
- RACE_TAUREN = 6,
- RACE_GNOME = 7,
- RACE_TROLL = 8,
- RACE_GOBLIN = 9,
- RACE_BLOODELF = 10,
- RACE_DRAENEI = 11,
+ RACE_NONE = 0, // SKIP
+ RACE_HUMAN = 1, // TITLE Human
+ RACE_ORC = 2, // TITLE Orc
+ RACE_DWARF = 3, // TITLE Dwarf
+ RACE_NIGHTELF = 4, // TITLE Night Elf
+ RACE_UNDEAD_PLAYER = 5, // TITLE Undead
+ RACE_TAUREN = 6, // TITLE Tauren
+ RACE_GNOME = 7, // TITLE Gnome
+ RACE_TROLL = 8, // TITLE Troll
+ RACE_GOBLIN = 9, // TITLE Goblin
+ RACE_BLOODELF = 10, // TITLE Blood Elf
+ RACE_DRAENEI = 11, // TITLE Draenei
//RACE_FEL_ORC = 12,
//RACE_NAGA = 13,
//RACE_BROKEN = 14,
@@ -45,22 +46,22 @@ enum Races
//RACE_TAUNKA = 19,
//RACE_NORTHREND_SKELETON = 20,
//RACE_ICE_TROLL = 21,
- RACE_WORGEN = 22,
+ RACE_WORGEN = 22, // TITLE Worgen
//RACE_GILNEAN = 23,
- RACE_PANDAREN_NEUTRAL = 24,
- RACE_PANDAREN_ALLIANCE = 25,
- RACE_PANDAREN_HORDE = 26,
- RACE_NIGHTBORNE = 27,
- RACE_HIGHMOUNTAIN_TAUREN = 28,
- RACE_VOID_ELF = 29,
- RACE_LIGHTFORGED_DRAENEI = 30,
- RACE_ZANDALARI_TROLL = 31,
- RACE_KUL_TIRAN = 32,
+ RACE_PANDAREN_NEUTRAL = 24, // TITLE Pandaren DESCRIPTION Pandaren (Neutral)
+ RACE_PANDAREN_ALLIANCE = 25, // TITLE Pandaren DESCRIPTION Pandaren (Alliance)
+ RACE_PANDAREN_HORDE = 26, // TITLE Pandaren DESCRIPTION Pandaren (Horde)
+ RACE_NIGHTBORNE = 27, // TITLE Nightborne
+ RACE_HIGHMOUNTAIN_TAUREN = 28, // TITLE Highmountain Tauren
+ RACE_VOID_ELF = 29, // TITLE Void Elf
+ RACE_LIGHTFORGED_DRAENEI = 30, // TITLE Lightforged Draenei
+ RACE_ZANDALARI_TROLL = 31, // TITLE Zandalari Troll
+ RACE_KUL_TIRAN = 32, // TITLE Kul Tiran
//RACE_THIN_HUMAN = 33,
- RACE_DARK_IRON_DWARF = 34, // RaceMask bit 11
- RACE_VULPERA = 35, // RaceMask bit 12
- RACE_MAGHAR_ORC = 36, // RaceMask bit 13
- RACE_MECHAGNOME = 37 // RaceMask bit 14
+ RACE_DARK_IRON_DWARF = 34, // TITLE Dark Iron Dwarf DESCRIPTION Dark Iron Dwarf (RaceMask bit 11)
+ RACE_VULPERA = 35, // TITLE Vulpera DESCRIPTION Vulpera (RaceMask bit 12)
+ RACE_MAGHAR_ORC = 36, // TITLE Mag'har Orc DESCRIPTION Mag'har Orc (RaceMask bit 13)
+ RACE_MECHAGNOME = 37 // TITLE Mechagnome DESCRIPTION Mechagnome (RaceMask bit 14)
};
// max+1 for player race
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h
index 1c7f9a27f9c..008aad2f47a 100644
--- a/src/server/game/Miscellaneous/SharedDefines.h
+++ b/src/server/game/Miscellaneous/SharedDefines.h
@@ -133,21 +133,22 @@ enum Gender
};
// Class value is index in ChrClasses.db2
+// EnumUtils: DESCRIBE THIS
enum Classes : uint8
{
- CLASS_NONE = 0,
- CLASS_WARRIOR = 1,
- CLASS_PALADIN = 2,
- CLASS_HUNTER = 3,
- CLASS_ROGUE = 4,
- CLASS_PRIEST = 5,
- CLASS_DEATH_KNIGHT = 6,
- CLASS_SHAMAN = 7,
- CLASS_MAGE = 8,
- CLASS_WARLOCK = 9,
- CLASS_MONK = 10,
- CLASS_DRUID = 11,
- CLASS_DEMON_HUNTER = 12
+ CLASS_NONE = 0, // SKIP
+ CLASS_WARRIOR = 1, // TITLE Warrior
+ CLASS_PALADIN = 2, // TITLE Paladin
+ CLASS_HUNTER = 3, // TITLE Hunter
+ CLASS_ROGUE = 4, // TITLE Rogue
+ CLASS_PRIEST = 5, // TITLE Priest
+ CLASS_DEATH_KNIGHT = 6, // TITLE Death Knight
+ CLASS_SHAMAN = 7, // TITLE Shaman
+ CLASS_MAGE = 8, // TITLE Mage
+ CLASS_WARLOCK = 9, // TITLE Warlock
+ CLASS_MONK = 10, // TITLE Monk
+ CLASS_DRUID = 11, // TITLE Druid
+ CLASS_DEMON_HUNTER = 12 // TITLE Demon Hunter
};
// max+1 for player class
diff --git a/src/server/game/Miscellaneous/enuminfo_RaceMask.cpp b/src/server/game/Miscellaneous/enuminfo_RaceMask.cpp
new file mode 100644
index 00000000000..9b7a825426d
--- /dev/null
+++ b/src/server/game/Miscellaneous/enuminfo_RaceMask.cpp
@@ -0,0 +1,102 @@
+/*
+ * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
+ *
+ * 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 2 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/>.
+ */
+
+#include "RaceMask.h"
+#include "Define.h"
+#include "SmartEnum.h"
+#include <stdexcept>
+
+namespace Trinity
+{
+namespace Impl
+{
+
+/********************************************************\
+|* data for enum 'Races' in 'RaceMask.h' auto-generated *|
+\********************************************************/
+template <>
+TC_API_EXPORT EnumText EnumUtils<Races>::ToString(Races value)
+{
+ switch (value)
+ {
+ case RACE_HUMAN: return { "RACE_HUMAN", "Human", "" };
+ case RACE_ORC: return { "RACE_ORC", "Orc", "" };
+ case RACE_DWARF: return { "RACE_DWARF", "Dwarf", "" };
+ case RACE_NIGHTELF: return { "RACE_NIGHTELF", "Night Elf", "" };
+ case RACE_UNDEAD_PLAYER: return { "RACE_UNDEAD_PLAYER", "Undead", "" };
+ case RACE_TAUREN: return { "RACE_TAUREN", "Tauren", "" };
+ case RACE_GNOME: return { "RACE_GNOME", "Gnome", "" };
+ case RACE_TROLL: return { "RACE_TROLL", "Troll", "" };
+ case RACE_GOBLIN: return { "RACE_GOBLIN", "Goblin", "" };
+ case RACE_BLOODELF: return { "RACE_BLOODELF", "Blood Elf", "" };
+ case RACE_DRAENEI: return { "RACE_DRAENEI", "Draenei", "" };
+ case RACE_WORGEN: return { "RACE_WORGEN", "Worgen", "" };
+ case RACE_PANDAREN_NEUTRAL: return { "RACE_PANDAREN_NEUTRAL", "Pandaren", "Pandaren (Neutral)" };
+ case RACE_PANDAREN_ALLIANCE: return { "RACE_PANDAREN_ALLIANCE", "Pandaren", "Pandaren (Alliance)" };
+ case RACE_PANDAREN_HORDE: return { "RACE_PANDAREN_HORDE", "Pandaren", "Pandaren (Horde)" };
+ case RACE_NIGHTBORNE: return { "RACE_NIGHTBORNE", "Nightborne", "" };
+ case RACE_HIGHMOUNTAIN_TAUREN: return { "RACE_HIGHMOUNTAIN_TAUREN", "Highmountain Tauren", "" };
+ case RACE_VOID_ELF: return { "RACE_VOID_ELF", "Void Elf", "" };
+ case RACE_LIGHTFORGED_DRAENEI: return { "RACE_LIGHTFORGED_DRAENEI", "Lightforged Draenei", "" };
+ case RACE_ZANDALARI_TROLL: return { "RACE_ZANDALARI_TROLL", "Zandalari Troll", "" };
+ case RACE_KUL_TIRAN: return { "RACE_KUL_TIRAN", "Kul Tiran", "" };
+ case RACE_DARK_IRON_DWARF: return { "RACE_DARK_IRON_DWARF", "Dark Iron Dwarf", "Dark Iron Dwarf (RaceMask bit 11)" };
+ case RACE_VULPERA: return { "RACE_VULPERA", "Vulpera", "Vulpera (RaceMask bit 12)" };
+ case RACE_MAGHAR_ORC: return { "RACE_MAGHAR_ORC", "Mag'har Orc", "Mag'har Orc (RaceMask bit 13)" };
+ case RACE_MECHAGNOME: return { "RACE_MECHAGNOME", "Mechagnome", "Mechagnome (RaceMask bit 14)" };
+ default: throw std::out_of_range("value");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<Races>::Count() { return 25; }
+
+template <>
+TC_API_EXPORT Races EnumUtils<Races>::FromIndex(size_t index)
+{
+ switch (index)
+ {
+ case 0: return RACE_HUMAN;
+ case 1: return RACE_ORC;
+ case 2: return RACE_DWARF;
+ case 3: return RACE_NIGHTELF;
+ case 4: return RACE_UNDEAD_PLAYER;
+ case 5: return RACE_TAUREN;
+ case 6: return RACE_GNOME;
+ case 7: return RACE_TROLL;
+ case 8: return RACE_GOBLIN;
+ case 9: return RACE_BLOODELF;
+ case 10: return RACE_DRAENEI;
+ case 11: return RACE_WORGEN;
+ case 12: return RACE_PANDAREN_NEUTRAL;
+ case 13: return RACE_PANDAREN_ALLIANCE;
+ case 14: return RACE_PANDAREN_HORDE;
+ case 15: return RACE_NIGHTBORNE;
+ case 16: return RACE_HIGHMOUNTAIN_TAUREN;
+ case 17: return RACE_VOID_ELF;
+ case 18: return RACE_LIGHTFORGED_DRAENEI;
+ case 19: return RACE_ZANDALARI_TROLL;
+ case 20: return RACE_KUL_TIRAN;
+ case 21: return RACE_DARK_IRON_DWARF;
+ case 22: return RACE_VULPERA;
+ case 23: return RACE_MAGHAR_ORC;
+ case 24: return RACE_MECHAGNOME;
+ default: throw std::out_of_range("index");
+ }
+}
+}
+}
diff --git a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp
index 097459d399c..247f678f481 100644
--- a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp
+++ b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp
@@ -25,6 +25,54 @@ namespace Trinity
namespace Impl
{
+/***************************************************************\
+|* data for enum 'Classes' in 'SharedDefines.h' auto-generated *|
+\***************************************************************/
+template <>
+TC_API_EXPORT EnumText EnumUtils<Classes>::ToString(Classes value)
+{
+ switch (value)
+ {
+ case CLASS_WARRIOR: return { "CLASS_WARRIOR", "Warrior", "" };
+ case CLASS_PALADIN: return { "CLASS_PALADIN", "Paladin", "" };
+ case CLASS_HUNTER: return { "CLASS_HUNTER", "Hunter", "" };
+ case CLASS_ROGUE: return { "CLASS_ROGUE", "Rogue", "" };
+ case CLASS_PRIEST: return { "CLASS_PRIEST", "Priest", "" };
+ case CLASS_DEATH_KNIGHT: return { "CLASS_DEATH_KNIGHT", "Death Knight", "" };
+ case CLASS_SHAMAN: return { "CLASS_SHAMAN", "Shaman", "" };
+ case CLASS_MAGE: return { "CLASS_MAGE", "Mage", "" };
+ case CLASS_WARLOCK: return { "CLASS_WARLOCK", "Warlock", "" };
+ case CLASS_MONK: return { "CLASS_MONK", "Monk", "" };
+ case CLASS_DRUID: return { "CLASS_DRUID", "Druid", "" };
+ case CLASS_DEMON_HUNTER: return { "CLASS_DEMON_HUNTER", "Demon Hunter", "" };
+ default: throw std::out_of_range("value");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<Classes>::Count() { return 12; }
+
+template <>
+TC_API_EXPORT Classes EnumUtils<Classes>::FromIndex(size_t index)
+{
+ switch (index)
+ {
+ case 0: return CLASS_WARRIOR;
+ case 1: return CLASS_PALADIN;
+ case 2: return CLASS_HUNTER;
+ case 3: return CLASS_ROGUE;
+ case 4: return CLASS_PRIEST;
+ case 5: return CLASS_DEATH_KNIGHT;
+ case 6: return CLASS_SHAMAN;
+ case 7: return CLASS_MAGE;
+ case 8: return CLASS_WARLOCK;
+ case 9: return CLASS_MONK;
+ case 10: return CLASS_DRUID;
+ case 11: return CLASS_DEMON_HUNTER;
+ default: throw std::out_of_range("index");
+ }
+}
+
/**************************************************************\
|* data for enum 'Powers' in 'SharedDefines.h' auto-generated *|
\**************************************************************/
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index 1c990e4bce7..7ba26b06c90 100644
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -4591,7 +4591,7 @@ void SpellMgr::LoadSpellInfoCorrections()
{
spellInfo->AttributesEx3 |= SPELL_ATTR3_NO_INITIAL_AGGRO;
});
-
+
// Spore - Spore Visual
ApplySpellFix({ 42525 }, [](SpellInfo* spellInfo)
{
@@ -4848,7 +4848,6 @@ uint32 SpellMgr::GetModelForTotem(uint32 spellId, uint8 race) const
if (itr != mSpellTotemModel.end())
return itr->second;
- TC_LOG_ERROR("spells", "Spell %u with RaceID (%u) have no totem model data defined, set to default model.", spellId, race);
return 0;
}