fix(gobject): elevator bug + prevent bugs related to faction and flags (#1402)

- Closes #1396
This commit is contained in:
Francesco Borzì
2019-02-02 14:34:50 +01:00
committed by GitHub
parent 002f24aadb
commit 264dd0c65a
3 changed files with 6 additions and 5 deletions

View File

@@ -1890,7 +1890,7 @@ void GameObject::CastSpell(Unit* target, uint32 spellId)
else
{
// xinef: set faction of gameobject, if no faction - assume hostile
trigger->setFaction(GetGOInfo()->faction ? GetGOInfo()->faction : 14);
trigger->setFaction(GetTemplateAddon() && GetTemplateAddon()->faction ? GetTemplateAddon()->faction : 14);
// Set owner guid for target if no owner availble - needed by trigger auras
// - trigger gets despawned and there's no caster avalible (see AuraEffect::TriggerSpell())
// xinef: set proper orientation, fixes cast against stealthed targets

View File

@@ -32,8 +32,6 @@ struct GameObjectTemplate
std::string IconName;
std::string castBarCaption;
std::string unk1;
uint32 faction;
uint32 flags;
float size;
union // different GO types have different data field
{

View File

@@ -700,8 +700,11 @@ bool StaticTransport::Create(uint32 guidlow, uint32 name_id, Map* map, uint32 ph
SetObjectScale(goinfo->size);
SetUInt32Value(GAMEOBJECT_FACTION, goinfo->faction);
SetUInt32Value(GAMEOBJECT_FLAGS, goinfo->flags);
if (GameObjectTemplateAddon const* addon = GetTemplateAddon())
{
SetUInt32Value(GAMEOBJECT_FACTION, addon->faction);
SetUInt32Value(GAMEOBJECT_FLAGS, addon->flags);
}
SetEntry(goinfo->entry);
SetName(goinfo->name);