diff options
| author | Traesh <Traesh@users.noreply.github.com> | 2018-11-07 20:23:30 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2018-11-07 20:23:30 +0100 |
| commit | 9d210476e57949094fdd286001ef4900564edca5 (patch) | |
| tree | 1e8ed5d261698e633ee3371779d30f8c1666526e /src/server/scripts | |
| parent | 31f0186d20a1944e5d0ff47d71ca8f560074de4b (diff) | |
Core/Creatures: Update creature model handling with new display scale (#22567)
Diffstat (limited to 'src/server/scripts')
18 files changed, 30 insertions, 28 deletions
diff --git a/src/server/scripts/Commands/cs_modify.cpp b/src/server/scripts/Commands/cs_modify.cpp index a17824a0127..6dc2d9b84f2 100644 --- a/src/server/scripts/Commands/cs_modify.cpp +++ b/src/server/scripts/Commands/cs_modify.cpp @@ -493,7 +493,10 @@ public: if (CheckModifySpeed(handler, args, target, Scale, 0.1f, 10.0f, false)) { NotifyModification(handler, target, LANG_YOU_CHANGE_SIZE, LANG_YOURS_SIZE_CHANGED, Scale); - target->SetObjectScale(Scale); + if (Creature* creatureTarget = target->ToCreature()) + creatureTarget->SetFloatValue(UNIT_FIELD_DISPLAY_SCALE, Scale); + else + target->SetObjectScale(Scale); return true; } return false; diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp index 8bd6650b1ad..e0963b46057 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp @@ -203,7 +203,7 @@ class npc_pure_energy : public CreatureScript { npc_pure_energyAI(Creature* creature) : ScriptedAI(creature) { - me->SetDisplayId(me->GetCreatureTemplate()->Modelid2); + me->SetDisplayFromModel(1); } void JustDied(Unit* killer) override diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp index 9c1ff991279..c69a3287134 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp @@ -370,7 +370,7 @@ class npc_eye_of_acherus : public CreatureScript { npc_eye_of_acherusAI(Creature* creature) : ScriptedAI(creature) { - me->SetDisplayId(me->GetCreatureTemplate()->Modelid1); + me->SetDisplayFromModel(0); if (Player* owner = me->GetCharmerOrOwner()->ToPlayer()) { me->GetCharmInfo()->InitPossessCreateSpells(); @@ -1023,7 +1023,7 @@ class npc_scarlet_miner_cart : public CreatureScript { npc_scarlet_miner_cartAI(Creature* creature) : PassiveAI(creature) { - me->SetDisplayId(me->GetCreatureTemplate()->Modelid1); // Modelid2 is a horse. + me->SetDisplayFromModel(0); // Modelid2 } void JustSummoned(Creature* summon) override diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp index 33c745c63c2..e36fb0ac437 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp @@ -402,7 +402,7 @@ public: void Initialize() { - me->SetDisplayId(me->GetCreatureTemplate()->Modelid2); + me->SetDisplayFromModel(1); me->SetReactState(REACT_PASSIVE); DoCast(me, SPELL_DARKFIEND_SKIN, true); diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp index fca2d98002a..4822c5138e5 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp @@ -91,7 +91,7 @@ class npc_voljin_zulaman : public CreatureScript { npc_voljin_zulamanAI(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) { - me->SetDisplayId(me->GetCreatureTemplate()->Modelid1); + me->SetDisplayFromModel(0); if (_instance->GetData(DATA_ZULAMAN_STATE) == NOT_STARTED) me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); } diff --git a/src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp b/src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp index d437ec8dba9..82282ed3613 100644 --- a/src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp +++ b/src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp @@ -324,7 +324,6 @@ public: { _events.Reset(); _events.ScheduleEvent(EVENT_DETERMINE_EVENT, Seconds(2)); - me->SetDisplayId(me->GetCreatureTemplate()->GetRandomValidModelId()); } void UpdateAI(uint32 diff) override diff --git a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp index 705c82b799b..8e5dc67299e 100644 --- a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp +++ b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp @@ -248,7 +248,7 @@ public: void Reset() override { _events.Reset(); - me->SetDisplayId(me->GetCreatureTemplate()->Modelid2); + me->SetDisplayFromModel(1); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp index 934143da40e..69f6d3ce2c1 100644 --- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp @@ -173,7 +173,7 @@ public: events.Reset(); events.ScheduleEvent(EVENT_AURA, 1 * IN_MILLISECONDS); - me->SetDisplayId(me->GetCreatureTemplate()->Modelid2); + me->SetDisplayFromModel(1); DoCast(SPELL_PUTRID_MUSHROOM); if (me->GetEntry() == NPC_POISONOUS_MUSHROOM) diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp index ce900cef73c..2be65088628 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp @@ -254,10 +254,10 @@ class boss_anubarak_trial : public CreatureScript _burrowGUID.push_back(summoned->GetGUID()); summoned->SetReactState(REACT_PASSIVE); summoned->CastSpell(summoned, SPELL_CHURNING_GROUND, false); - summoned->SetDisplayId(summoned->GetCreatureTemplate()->Modelid2); + summoned->SetDisplayFromModel(1); break; case NPC_SPIKE: - summoned->SetDisplayId(summoned->GetCreatureTemplate()->Modelid1); + summoned->SetDisplayFromModel(0); if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true)) { summoned->CombatStart(target); @@ -620,7 +620,7 @@ class npc_frost_sphere : public CreatureScript { me->SetReactState(REACT_PASSIVE); DoCast(SPELL_FROST_SPHERE); - me->SetDisplayId(me->GetCreatureTemplate()->Modelid2); + me->SetDisplayFromModel(1); me->GetMotionMaster()->MoveRandom(20.0f); } diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp index 8cb3f23d346..165e15c61c4 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp @@ -489,7 +489,7 @@ class npc_firebomb : public CreatureScript DoCast(me, SPELL_FIRE_BOMB_DOT, true); SetCombatMovement(false); me->SetReactState(REACT_PASSIVE); - me->SetDisplayId(me->GetCreatureTemplate()->Modelid2); + me->SetDisplayFromModel(1); } void UpdateAI(uint32 /*diff*/) override diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp index b147ce86fcc..9dde78ac1e2 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp @@ -306,7 +306,7 @@ class boss_lich_king_toc : public CreatureScript if (Creature* summoned = me->SummonCreature(NPC_TRIGGER, ToCCommonLoc[2].GetPositionX(), ToCCommonLoc[2].GetPositionY(), ToCCommonLoc[2].GetPositionZ(), 5, TEMPSUMMON_TIMED_DESPAWN, 1*MINUTE*IN_MILLISECONDS)) { summoned->CastSpell(summoned, 51807, false); - summoned->SetDisplayId(summoned->GetCreatureTemplate()->Modelid2); + summoned->SetDisplayFromModel(1); } _instance->SetBossState(BOSS_LICH_KING, IN_PROGRESS); @@ -497,11 +497,11 @@ class npc_fizzlebang_toc : public CreatureScript me->GetMotionMaster()->MovementExpired(); Talk(SAY_STAGE_1_03); me->HandleEmoteCommand(EMOTE_ONESHOT_SPELL_CAST_OMNI); - if (Unit* pTrigger = me->SummonCreature(NPC_TRIGGER, ToCCommonLoc[1].GetPositionX(), ToCCommonLoc[1].GetPositionY(), ToCCommonLoc[1].GetPositionZ(), 4.69494f, TEMPSUMMON_MANUAL_DESPAWN)) + if (Creature* pTrigger = me->SummonCreature(NPC_TRIGGER, ToCCommonLoc[1].GetPositionX(), ToCCommonLoc[1].GetPositionY(), ToCCommonLoc[1].GetPositionZ(), 4.69494f, TEMPSUMMON_MANUAL_DESPAWN)) { _triggerGUID = pTrigger->GetGUID(); pTrigger->SetObjectScale(2.0f); - pTrigger->SetDisplayId(pTrigger->ToCreature()->GetCreatureTemplate()->Modelid1); + pTrigger->SetDisplayFromModel(0); pTrigger->CastSpell(pTrigger, SPELL_WILFRED_PORTAL, false); } _instance->SetData(TYPE_EVENT, 1132); diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp index ab78e9a3cea..612d4b9316f 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp @@ -2587,7 +2587,7 @@ class npc_quel_delar_sword : public CreatureScript npc_quel_delar_swordAI(Creature* creature) : ScriptedAI(creature) { _instance = me->GetInstanceScript(); - me->SetDisplayId(me->GetCreatureTemplate()->Modelid2); + me->SetDisplayFromModel(1); _intro = true; } diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp index 1290d417189..a73a3a2fa0d 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp @@ -272,7 +272,7 @@ class npc_pit_of_saron_icicle : public CreatureScript { npc_pit_of_saron_icicleAI(Creature* creature) : PassiveAI(creature) { - me->SetDisplayId(me->GetCreatureTemplate()->Modelid1); + me->SetDisplayFromModel(0); } void IsSummonedBy(Unit* summoner) override diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp index c4982c126f0..99513317306 100644 --- a/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp +++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp @@ -224,7 +224,7 @@ class npc_chaotic_rift : public CreatureScript void Reset() override { Initialize(); - me->SetDisplayId(me->GetCreatureTemplate()->Modelid2); + me->SetDisplayFromModel(1); DoCast(me, SPELL_ARCANEFORM, false); } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp index 93f1f515409..7ca0d014c8a 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp @@ -586,7 +586,7 @@ class boss_flame_leviathan_seat : public CreatureScript boss_flame_leviathan_seatAI(Creature* creature) : ScriptedAI(creature) { me->SetReactState(REACT_PASSIVE); - me->SetDisplayId(me->GetCreatureTemplate()->Modelid2); + me->SetDisplayFromModel(1); instance = creature->GetInstanceScript(); } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp index 5a85d720eea..fbcca717df6 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp @@ -188,7 +188,7 @@ class npc_flash_freeze : public CreatureScript { Initialize(); instance = me->GetInstanceScript(); - me->SetDisplayId(me->GetCreatureTemplate()->Modelid2); + me->SetDisplayFromModel(1); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED); me->SetControlled(true, UNIT_STATE_ROOT); } @@ -264,7 +264,7 @@ class npc_ice_block : public CreatureScript npc_ice_blockAI(Creature* creature) : ScriptedAI(creature) { instance = me->GetInstanceScript(); - me->SetDisplayId(me->GetCreatureTemplate()->Modelid2); + me->SetDisplayFromModel(1); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED); me->SetControlled(true, UNIT_STATE_ROOT); } @@ -557,7 +557,7 @@ class npc_icicle : public CreatureScript npc_icicleAI(Creature* creature) : ScriptedAI(creature) { Initialize(); - me->SetDisplayId(me->GetCreatureTemplate()->Modelid1); + me->SetDisplayFromModel(0); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_PACIFIED | UNIT_FLAG_NOT_SELECTABLE); me->SetControlled(true, UNIT_STATE_ROOT); me->SetReactState(REACT_PASSIVE); @@ -612,7 +612,7 @@ class npc_snowpacked_icicle : public CreatureScript npc_snowpacked_icicleAI(Creature* creature) : ScriptedAI(creature) { Initialize(); - me->SetDisplayId(me->GetCreatureTemplate()->Modelid2); + me->SetDisplayFromModel(1); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_PACIFIED); me->SetControlled(true, UNIT_STATE_ROOT); me->SetReactState(REACT_PASSIVE); @@ -954,7 +954,7 @@ class npc_toasty_fire : public CreatureScript { npc_toasty_fireAI(Creature* creature) : ScriptedAI(creature) { - me->SetDisplayId(me->GetCreatureTemplate()->Modelid2); + me->SetDisplayFromModel(1); } void Reset() override diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp index cc1c3219bca..4a1a41bcbf6 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp @@ -193,7 +193,7 @@ class boss_razorscale_controller : public CreatureScript { boss_razorscale_controllerAI(Creature* creature) : BossAI(creature, DATA_RAZORSCALE_CONTROL) { - me->SetDisplayId(me->GetCreatureTemplate()->Modelid2); + me->SetDisplayFromModel(1); } void Reset() override diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp index 8b8e47245e0..e0c648bcfc4 100644 --- a/src/server/scripts/World/npcs_special.cpp +++ b/src/server/scripts/World/npcs_special.cpp @@ -2606,8 +2606,8 @@ public: init.SetFacing(o); init.Launch(); who->m_Events.AddEvent(new CastFoodSpell(who, _chairSpells.at(who->GetEntry())), who->m_Events.CalculateTime(1000)); - if (who->GetTypeId() == TYPEID_UNIT) - who->SetDisplayId(who->ToCreature()->GetCreatureTemplate()->Modelid1); + if (Creature* creature = who->ToCreature()) + creature->SetDisplayFromModel(0); } }; |
