Commit Graph

686 Commits

Author SHA1 Message Date
raczman
91b8ee104e Added new type-safe cast functions.
This, when properly used, should get rid of most memory corruption issues,
currently, casting types C-style with no checks leads to some abstract crashing.
Functionality is same as with dynamic_cast<>, but with no RTTI check - so when
casting into invalid type you will receive NULL, and most probably crash.
At the same time, i took the liberty to convert most Player* casts to ToPlayer().
Still needs crapload of casts being moved to new facility.

--HG--
branch : trunk
2010-03-07 15:20:19 +01:00
thenecromancer
aeebe57dc0 Remove 94567c94e6, instead don't check range/facing when finishing instant cast spells
--HG--
branch : trunk
2010-03-07 14:32:53 +01:00
p0wer
9bb97dd51e If stealth-only spell fails, shouldn't remove you from stealth. Fix by lol584. Closes issue #99.
--HG--
branch : trunk
2010-03-02 20:54:27 -06:00
Trazom62
d9056adc8a refactor UnitAI::SelectTarget to allow having a predicate function (1st step).
--HG--
branch : trunk
2010-02-27 16:29:58 +01:00
QAston
69aedc666d *Remove no longer needed hack after trigger target fixes.
--HG--
branch : trunk
2010-02-22 17:09:48 +01:00
QAston
c46c831094 *CRLF:(
--HG--
branch : trunk
2010-02-20 23:59:05 +01:00
QAston
2e3f89b61f *Move summon water elemental handler to correct place.
--HG--
branch : trunk
2010-02-20 20:28:31 +01:00
thenecromancer
e4424f1d16 Don't take away runes when not hitting
--HG--
branch : trunk
2010-02-20 15:29:16 +01:00
thenecromancer
cedf706f29 Treat rune cooldowns as timers and not as remaining tick counts
Implement support for modifiers changing rune regeneration rate
Apply all spells from Improved Unholy Aura

--HG--
branch : trunk
2010-02-18 01:06:47 +01:00
raczman
97c62f2c73 Compile fix.
Whoever pushed that, *PLEASE* do a test compile before pushing.

--HG--
branch : trunk
2010-02-17 00:48:32 +01:00
Brian
6cdacbd313 * Removed hack for summon water elemental
* Proper handling for Glyph of Eternal Water
* Summoned water elemental still doesn't last forever, but the right spells
* are cast in the right situations.
* Credits to Edrinn

--HG--
branch : trunk
2010-02-16 15:36:19 -07:00
QAston
4cd4c4170f *Backout some WTF fixes. Do things correctly, or do not touch them at all...
*Really fix windows build.

--HG--
branch : trunk
2010-02-15 20:59:05 +01:00
n0n4m3
feea2417c3 Fix talent Shockwave and typo in comment.
--HG--
branch : trunk
2010-02-15 19:09:17 +01:00
n0n4m3
ebc5ce6810 Add missing changes for rev b7d758f3e5
--HG--
branch : trunk
2010-02-15 19:04:51 +01:00
n0n4m3
bcd4a48328 Removed stupid/not needed file Spellid.h.
--HG--
branch : trunk
2010-02-15 18:23:39 +01:00
Machiavelli
a5585ceb3c Store to be traded items in array based on item guid instead of item slot to prevent exploiting. Fixes #667.
--HG--
branch : trunk
2010-02-15 13:55:16 +01:00
Brian
486c00891b * Core switch to client 3.3.2 (11403)
* Credits (in no particular order) to:
* n0n4m3, raczman, manuel, Spp, Malcrom, Teacher, QAston, Tartalo,
* thenecromancer, Xanadu, Trazom, Zor, kiper
* Additional credits to:
* TOM_RUS and NoFantasy from MaNGOS
* Thanks for testing Aokromes and XTElite1
* SoTA still needs some work, but is very playable (huge thanks to raczman and
* kiper)
* To upgrade, you need to apply all SQL from sql/updates/3.2.2a_old from the
* last rev you are on
* and then apply all SQL from sql/updates/3.3.2_old to char / realmd / world
* DBs
* Known problem with guild banks.

--HG--
branch : trunk
2010-02-14 19:13:14 -07:00
Xanadu
f8d1920fa5 Yet more cleanup, mostly in the script system. This should conclude the script integration into core.
--HG--
branch : trunk
2010-02-05 13:01:32 +01:00
QAston
6ec51e7bbc *Implement spell target type TARGET_GAMEOBJECT_NEARBY_ENTRY
--HG--
branch : trunk
2010-02-04 00:36:40 +01:00
Xanadu
2c81241bef Fixed hunter trap procs - Entrapment and Lock and Load shall be henceforth proced only by the correct traps.
Closes issue #110.

--HG--
branch : trunk
2010-01-27 00:02:21 +01:00
QAston
3f6999f744 *Some cleanup in SharedDefines
*Implement spell target modes 96-103, 91, 92

--HG--
branch : trunk
2010-01-25 12:40:03 +01:00
Xanadu
6fb6aa9c66 Backed out changeset: 4cc8628cc8ef. That wasn't a good call. Thanks go to QAston for pointing it out to me.
--HG--
branch : trunk
2010-01-25 02:09:05 +01:00
Xanadu
46a98576d9 Fix Entrapment - now only proc on Frost Trap and Snake Trap activation.
--HG--
branch : trunk
2010-01-24 23:16:35 +01:00
QAston
492fe452fd *Bring back one unintentionally removed check in Aura::UpdateOwner
*Remove not blizzlike hack for Vanish (it should not remove delayed spells from player)

--HG--
branch : trunk
2010-01-24 18:26:29 +01:00
thenecromancer
81321b390a Add support for Maelstrom Weapon to prevent melee attack interruption when affecting spells
--HG--
branch : trunk
2010-01-24 15:43:58 +01:00
QAston
d1a40eb688 *Do not keep area aura targets in combat with aura owner
*Add some safety checks to area aura target map update.

--HG--
branch : trunk
2010-01-24 13:08:25 +01:00
XTZGZoReX
9f00ca3eb8 * Remove CellLock class and all cell-level thread locking.
** It was wasting CPU power as cell-level locking is not needed.
** Our multithreading is on map-level, not cell-level.
** CellLock was just a 'proxy' between Cell and CellPair and in some cases carried redundant data.
** Some minor cleanup in Cell::Visit/Map::Visit.

--HG--
branch : trunk
2010-01-23 22:24:41 +01:00
thenecromancer
1f602fae47 Apply SPELLMOD_COST in takeRunePower() ( replacement for removed hack in previous commit )
--HG--
branch : trunk
2010-01-23 16:19:23 +01:00
thenecromancer
e893ad71cf Fix Empowered Rune Weapon
Cleanup cast flags

--HG--
branch : trunk
2010-01-23 16:06:06 +01:00
Rat
0cc053ea4d *Integrate Script system to Core
-added ScriptMgr for loading scripts
-removed bindings
-moved script system to src/game
-moved scripts to src/scripts
-VC project files updated
-cmakes updated (not 100% done yet)

NOTE to Devs:
-file locations changed
-precompiled renamed to ScriptedPch
-ecsort_ai renamed to ScriptedEscortAI
-follower_ai renamed to ScriptedFollowerAI
-guard_ai renamed to ScriptedGuardAI
-simple_ai renamed to ScriptedSimpleAI
-sc_creature renamed to ScriptedCreature
-sc_gossip renamed to ScriptedGossip
-sc_instance  renamed to ScriptedInstance

*use the new headers in scripts, thank you

NOTE to ALL:
cmake not fully tested, please report any errors with it
could make creashes, incompability
USE AT YOUR OWN RISK before further tests!!

--HG--
branch : trunk
2010-01-19 11:36:05 +01:00
n0n4m3
99f66a6bc9 Updated copyright for new year.
--HG--
branch : trunk
2010-01-16 20:19:18 +03:00
XTZGZoReX
5a9ef604e2 * Fix CRLF.
--HG--
branch : trunk
2010-01-13 18:22:31 +01:00
thenecromancer
efbc71746f Fix pickpocket - reveal rogue only if spell is resisted
--HG--
branch : trunk
2010-01-13 11:47:50 +01:00
thenecromancer
4b0d412e42 Some more casting requirements
*Not allow cast on invisible/stealth target if not detected
*Not allow banish/cyclone tapped unit
*Not allow pickpocket players and units that can never be pickpocketed
*Not allow disarm unarmed units

--HG--
branch : trunk
2010-01-13 11:45:54 +01:00
thenecromancer
c36a8d2d5f Change SPELL_EFFECT_SUMMON_PHANTAS to SPELL_EFFECT_FORCE_DESELECT and allow it to be casted with active pet
This fixes Mirror Image not changing names when Water Elemental is active. (Note that deselect effect is done in linked spells for Killing Spree/Shadowmeld)

--HG--
branch : trunk
2010-01-13 10:27:44 +01:00
thenecromancer
2b94d181cd Check if precast spell exists before trying to cast it. (Otherwise charge-like spells spam console a lot)
--HG--
branch : trunk
2010-01-13 09:56:51 +01:00
thenecromancer
a3e66287bf Remove hack for Freezing Fog aura.
Instead apply modifier directly to rune cost ( this will also fix runic power generation in that case )

--HG--
branch : trunk
2010-01-13 09:49:37 +01:00
Astellar
b2082db189 Do not compute incoming time for self casts.
--HG--
branch : trunk
2010-01-11 22:24:31 +03:00
Astellar
40f70a8594 Fixed quest Catch and Release, some fixes for Tag Murloc spell.
--HG--
branch : trunk
2010-01-10 22:37:31 +03:00
Rat
5b6079ea67 *cleaned up SharedDefines
--HG--
branch : trunk
2010-01-10 16:27:47 +01:00
Rat
903f975dc8 *fix spell: Tag Murloc (30877)
--HG--
branch : trunk
2010-01-10 15:29:04 +01:00
QAston
8e9d2cdf01 Update aura system:
* Change system logic - unify Auras, AreaAuras and PersistentAreaAuras:
  * Aura has now its owner - which is the WorldObject, which applies aura (creates AuraApplication object) dependant on aura radius, and effect type
  * Owner can be Dynobj (DynObjAura class) for PersistentAreaAuras, or Unit (UnitAura class) for Area and nonArea auras
  * Aura data is shared for all units which have AuraApplication of the Aura
   * Because of that AuraEffect handlers , and periodic tick functions can't modify AuraEffect object (they are const now)
  * Remove spell source and AreaAuraEffect classes
  * Add AuraEffect::UpdatePeriodic function, to allow periodic aura object modification (target independant)
  * Add AuraEffect::CalculateAmount and AuraEffect::CalculateSpellMod function, to allow non-default amount calculation
  * AreaAura updates are done in owner _UpdateSpells cycle
  * Since now you don't need to wait an aura update cycle to get area aura applied on it's correct target list
  * And you can access area aura target list
  * Add basic support for aura amount recalculation
  * Save recalculation state and base amount of auras to db
  * Add AuraEffect::CalculatePeriodic function to determine if aura is periodic, and to set correct tick number after aura is loaded from db
  * Add ChangeAmount function in addition to SetAmount function, to allow easy reapplication of AuraEffect handlers on all targets
  * Sort aura effect handlers in SpellAuras.cpp and .h by their use
  * Add check for already existing aura of that type to some AuraEffect handlers, to prevent incorrect effect removal
  * SPELL_AURA_CONVERT_RUNE and MOD_POWER_REGEN and MOD_REGEN hacky handlers are now implemented correctly
  * Send aura application client update only once per unit update - prevent unnecesary packet spam
 * Fix ByteBuffer::appendPackGUID function - it added additionall 0s at the end of the packet
 * Fix memory leak at player creation (not deleted auras)
 * Updated some naming conventions (too many to mention)
 * Added Unit::GetAuraOfRankedSpell() function
 * Remove procflags on aura remove, use Aura::HandleAuraSpecificMods instead
 * Added functions to maintain owned auras (GetOwnedAuras, GetOwnedAura, RemoveOwnedAura, etc)
 * Implement AURA_INTERRUPT_FLAG_LANDING
 * Implement EffectPlayerNotification (thanks to Spp)
 * Remove wrong aura 304 handler
 * Add better handler for death runes
 * Remove unnecesary variables from DynamicObject class, and cleanup related code, link dynobj duration with aura
 * Add GetAuraEffectTriggerTarget function in CreatureAi for special target selection for periodic trigger auras used in a script
 * Add many assert() procection from idiots using some functions in wrong way
 * I am to lazy to write here anything more
Thanks to Visagalis for testing this patch
PS: Do not make patches like this, please

--HG--
branch : trunk
2010-01-10 01:23:15 +01:00
silver1ce
15618563ef merge
--HG--
branch : trunk
2010-01-06 12:27:52 +02:00
silver1ce
f82d5cb3fc fixed the bug that GetVmapHeight returns incorrect height on terrains(flying units fall below map etc)
also unlocked max ray lenght for getHeight, by default it's 10 yards

--HG--
branch : trunk
2010-01-06 12:15:02 +02:00
Astellar
b56b2c2a43 Fixed Issue 11. Now combo points are kept when finishing move misses. Revert it if it's wrong.
--HG--
branch : trunk
2010-01-06 00:26:15 +03:00
p0wer
c3d7bffc14 Add support for TARGET_UNIT_DRIVER where the target must be controlling a vehicle. Should fix 63665 used for ToC.
--HG--
branch : trunk
2009-12-31 17:30:09 -06:00
Anubisss
cd824b50fe Implement Glyph of Circle of Healing.
--HG--
branch : trunk
2009-12-29 21:48:01 +01:00
p0wer
afde5e0207 Fix warning. Don't use UI64LIT with the & operator.
--HG--
branch : trunk
2009-12-28 12:50:35 -06:00
n0n4m3
947b258479 Fixed Mana Gems, implement SPELL_EFFECT_CREATE_MANA_GEM and revert prev. commit...
--HG--
branch : trunk
2009-12-26 18:25:49 +01:00
n0n4m3
088d332545 Fixed spell Rime, by Themris.
--HG--
branch : trunk
2009-12-26 14:02:24 +01:00