Commit graph

299 commits

Author SHA1 Message Date
VladimirMangos
8c560ebd97 [11593] Use MAX_UNIT_STAND_STATE instead client dependent last value in enum. 2011-06-03 16:24:06 +04:00
zergtmn
f45e9ad680 [11588] Use override specifier on Update() methods
Note: override is new keyword in C++11 but VC++ already have override keyword with same behaviour long time.
GCC support explicit overrides starting at 4.7. Added workaround for GCC versions < 4.7.
2011-06-02 23:28:24 +06:00
VladimirMangos
5ec1203c4f [11568] Use bit indexes in HITINFO_UNK* naming 2011-05-30 08:29:19 +04:00
VladimirMangos
4a087e6bda [11557] Duel related fixes
* Implement duel allowed check base at proper area flag AREA_FLAG_DUEL (0x00000040)
  This allow duels for example in capital area 4570 and allow/fogbid correctly some other zones and areas.
* Implement duel cancel at leave duel allowed area
* Fixed code for duels work in sunctuary if area allow duels.
2011-05-29 03:57:15 +04:00
NoFantasy
f533813047 [11550] Add and use VICTIMSTATE_UNAFFECTED, in relation with HITINFO_MISS
Some code cleanup in addition and add comments for unknown fields in SMSG_ATTACKERSTATEUPDATE packet

Signed-off-by: NoFantasy <nofantasy@nf.no>
2011-05-27 13:23:40 +02:00
NoFantasy
4b919b1f32 [11537] Nerfing the word "Redunction" and remove one letter, to Reduction.
Signed-off-by: NoFantasy <nofantasy@nf.no>
2011-05-25 10:43:45 +02:00
VladimirMangos
da06d09c45 [11532] Prevent triggering some spells at 0 damage hit. 2011-05-24 16:33:23 +04:00
VladimirMangos
249fb836ca [11490] Alow implicit cast ObjectGuid->uint64 and only explicit uint64->ObjectGuid
Now safe allow this casts in like way after completed convertion to ObjectGuid use.
Also simplify code in result allowed auto cast to uint64.

Please _not_ add new uint64 storages (local and in structures) for guid values.
2011-05-15 22:04:57 +04:00
NoFantasy
ecdb435b1e [11489] Remove the old and custom UNIT_NPC_FLAG_GUARD for creatures.
Existing data moved to flags_extra field, with value CREATURE_FLAG_EXTRA_GUARD (0x400 / 1024).
Remove isGuard() from Unit class to a new IsGuard() function in Creature class.

Signed-off-by: NoFantasy <nofantasy@nf.no>
2011-05-14 19:17:13 +02:00
VladimirMangos
ef6a48fe03 [11465] non-ObjectGuid guids in random places.
Only ChannelMgr code wide use uint64 guids now, and Map object stores.
2011-05-10 21:27:49 +04:00
VladimirMangos
31c34a940d [11462] Missing ObjectGuids in spell code. 2011-05-10 13:05:39 +04:00
VladimirMangos
44f2c26389 [11459] More ObjectGuid using in Aura/SpellAuraHolder code.
Also fix build in PetAI code. Thanks to rsa for fix code.
2011-05-09 23:17:39 +04:00
NoFantasy
4c3b61d4f5 [11443] Implement SPELL_AURA_MIRROR_IMAGE (247) and related receive/reply packets
Inspired by different patches posted in forum, thanks guys for the help it was :D

Signed-off-by: NoFantasy <nofantasy@nf.no>
2011-05-08 18:58:01 +02:00
zergtmn
2835aa5f20 [11385] Add support for static vehicle spawns
Signed-off-by: zergtmn <zerg@myisp.com>
2011-04-20 23:23:47 +06:00
zergtmn
55709e265e [11381] Add methods GetDisplayId/SetDisplayId for gameobjects
Useful for GO type 33
2011-04-19 17:01:59 +06:00
Ambal
695ad4d54e [11342] Use Position struct to hold object coordinates - minor code refactoring.
Signed-off-by: Ambal <pogrebniak@gala.net>
2011-04-13 02:25:07 +03:00
rsa
cd32dd9bfc [11330] Use ObjectGuid to store Totem guids instead of uint64 and fix related rare crash.
Signed-off-by: Ambal <pogrebniak@gala.net>
2011-04-11 22:45:32 +03:00
zergtmn
4687fa8cb4 [11299] Handle aura durations in SpellAuraHolder
- Unit::CalculateSpellDuration split into two functions
    - CalculateSpellDuration taking into account combo points and caster-side spell mods
    - Unit::CalculateAuraDuration taking into account target-side spell mods
- Diminishing is now applied before duration reduction mods
- Implement saving per-effect periodic timers to DB (required for auras affected by haste)
2011-03-30 23:29:01 +06:00
zergtmn
0bc4bc1d75 [11282] Use uint32 datatype for aura charges and stacks
* Some spells have StackAmount > 255, for example 22735, 54314
* In SMSG_AURA_UPDATE maximum stack amount is limited by 255
* Move duplicate code into SpellAuraHolder::BuildUpdatePacket function
* Cleanup some weird type casts in _LoadAuras
2011-03-25 14:40:09 +05:00
VladimirMangos
92a1e9b4d0 [11269] Apply to lootPlayerNonQuestNonFFAConditionalItems same loot rules as to notmal shared loot.
Also some code refactoring.
2011-03-21 04:26:28 +03:00
VladimirMangos
b442332403 [11267] Restore itemset 647 4p bonus affect work. 2011-03-20 07:16:25 +03:00
VladimirMangos
06fe777f82 [11215] Replace direct code use in .npc tame by spell cast.
Only work different from old way: target creature despawned.
So if this not expected use .respawn to it in gm mode or area respawn.

Code simplification suggested originally by rsa.
2011-03-03 21:33:47 +03:00
VladimirMangos
f1899e3b27 [11206] Move visibility self/around to new function and use it.
* Fixed wrong visibility changes in some cases at .mod phase uses.
* Apply phase change to any owned units (not only pets as before).
  It also will applied in more safe way for avoid unexpected lost owner at update.
* Check view point setting auras targets accessability not only at visibility change
  but also at phase change.
* Replace SetVisibility(GetVisibility()) hack like calls.
2011-02-27 19:23:05 +03:00
SilverIce
fcc09483ad [11202] Schedule AI notify at adding to world
This fixes the problem, that creatures, added at grid loading, do not start attack each other
More shedule -> schedule fixes added, removed unused Map::PlayerRelocationNotify function
2011-02-23 17:04:54 +02:00
kbz
09c5b49cc4 [11194] Fix the word shedule -> schedule in function name
Signed-off-by: SilverIce <slifeleaf@gmail.com>
2011-02-22 03:53:29 +02:00
SilverIce
724092d9e5 [11193] Optimize visibility update and AI notification code. Optimization decreases amount of visibility and AI notification operations in 8-10 times, and as a result, lowers CPU usage by 30-40%
You need to update your config file, new "Visibility.RelocationLowerLimit" and "Visibility.AIRelocationNotifyDelay' options added

Special thanks to Ambal for code hints and advices
Thanks to Undergarun and kero99 for making tests
2011-02-22 02:37:08 +02:00
Schmoozerd
8e68d1bcaf [11105] Melee attacks distance
Inspired by patch provided by Feanordev.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2011-02-03 01:25:32 +03:00
VladimirMangos
06cebecd50 [11100] Avoid send SMSG_DISMOUNT for non aura source mount state.
This fix problem with lost mount show at multi-node taxi path.

Thanks to blueboy for research problem.
2011-02-02 17:33:19 +03:00
x3n
d35be7f4c1 [11023] Implement support for threat multiplier and AP based threat bonus for spells.
* Higher ranks are now automatically filled when not listed in spell_threat
* Added some loading checks to detect inconsistent data

Signed-off-by: Lynx3d <lynx3d@some-imaginary-isp.org>
2011-01-17 12:55:24 +01:00
VladimirMangos
5e74d1e425 [11006] Move ShapeshiftForm to SharedDefines.h and fix build for *nix. 2011-01-14 11:48:43 +03:00
VladimirMangos
b7f4a41fcd [10998] Re-write work proc of stackable spells with charges in more simple way
Some spells have procCharges > 0 and in same time maxStack > 1. It's support has been implemented more year ago
but current way work with single aura from stack remove at proc always made some spells work wrongly
(7 spells (with ranks) in 3.3.5a). In fact only 3 spell (with ranks) need this "one from stack" way and
all form its have similarity: Its apply max stack from start and decrease stacks at proc hit.
Another prove for correctness this way: in 2.x exist single spell with charges and maxstack that expect full aura stack remove.

So implemented opposition way: normal aura proc remove always full aura holder stack.
Special 3 cases have overwrite code for work with stack in correct for its way.

Fixed work:

* items 31857 and 50259
* recipe 46027 effects.
* talent 63730 and ranks

Affected by code changes talents 51528 and 55166 tested and work.

Spell 34026 use similar decrease stack at hit but req. independent patch for full implemention, so not work.
2011-01-11 05:15:51 +03:00
NoFantasy
514a66fd67 [10963] Rename UNIT_STAND_STATE_SUBMERGED to more generic *_CUSTOM
Visual appearance depend on model animation capability.
In addition, change stand state for creature at enter combat when creature has custom stand state.

Signed-off-by: NoFantasy <nofantasy@nf.no>
2011-01-05 00:13:27 +01:00
Kid10
b206e5ddd0 [10962] Fixed wrong spell cast code call with missing bool arg.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>

Also added trap code for like wrong cases
2011-01-05 00:54:38 +03:00
NoFantasy
7828ee18ad [10959] Better description of UNIT_FLAG2_UNK1
Signed-off-by: NoFantasy <nofantasy@nf.no>
2011-01-04 12:06:50 +01:00
NoFantasy
b3076146fc [10958] Rename function to CanUseEquippedWeapon
Signed-off-by: NoFantasy <nofantasy@nf.no>
2011-01-04 10:29:04 +01:00
QAston
4fe41fb335 [10957] Implement auras SPELL_AURA_MOD_DISARM_OFFHAND (254) and SPELL_AURA_MOD_DISARM_RANGED (278).
Thanks to Qsa prepare for mangos.

Note: single unsure case: is block chance must be show or set to 0 in shield disarm time.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2011-01-04 06:42:35 +03:00
VladimirMangos
bf0ecf6e71 [10947] Update copyright notice for 2011 year. 2011-01-01 20:33:43 +03:00
Ambal
b11820593c [10924] Send time diff between Update() calls for object - should help with mob respawn on inactive grids etc. Based on patches by VladimirMangos and cipherCOM. All issues from previous patches should be finally fixed now.
Signed-off-by: Ambal <pogrebniak@gala.net>
2010-12-27 22:27:20 +02:00
michalpolko
08b32d7d32 [10841] Implement charges counting for magnet target auras.
Also implement skip spell effects redirecting if magnet target can't be
targeted by this spell effect base at spell effect target data requirements.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-12-08 10:42:19 +03:00
VladimirMangos
4c02094737 [10834] Cleanup shapeshift form code. 2010-12-07 14:41:59 +03:00
VladimirMangos
c3254c88ca [10833] Avoid use unsafe remove auras in aura apply code.
Specailly example Aura::HandleModCharm code where old code
call RemoveSpellsCausingAura or (a) dead and not called,
or (b) will remove aura self at call.

* Added safe for aura holder context version of RemoveSpellsCausingAura
* Cleanup old simple RemoveSpellsCausingAura code also.
2010-12-07 12:31:01 +03:00
VladimirMangos
b6ea36192e [10829] Update SpellFamily check functions.
* Move SPELLFAMILY_* to DBCEnums.h and name it as SpellFamily
* Use enum in Unit::GetAura, move family mask code to new SpellEntry helper function.
* Avoid all auras scan in search of triggred spell for 20243.
2010-12-06 08:40:39 +03:00
NoFantasy
0c85afea79 [10778] Make AI call OwnerKilledUnit() more proper.
Affect any pet that are not being controlled (minipet/guardian/protector) and will also apply to pets owned by another creature.

Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-11-23 11:07:07 +01:00
zergtmn
272fa74854 [10767] Show <overkill> value in combat logs.
Signed-off-by: Ambal <pogrebniak@gala.net>
2010-11-21 10:51:48 +02:00
insider42
f7b4b88e02 [10762] Implement SPELL_AURA_IGNORE_UNIT_STATE (252).
Original patch provided by Wojta

Note: From patch excluded talent 44543 and ranks stacking code.
      It look like need another implemention different from suggested,
      or at least more research.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>

In patch added enum IgnoreUnitState and related checks now more cheating protected.
2010-11-21 01:42:25 +03:00
Schmoozerd
ca56284912 [10759] Correctly reset mob orientation upon reaching spawn point. Should also improve visualisation of mob orientation on clients
Signed-off-by: Ambal <pogrebniak@gala.net>
2010-11-20 19:38:18 +02:00
rsa
07c48c77c9 [10758] Fixed typo in CONTROLED_*
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-11-20 20:03:43 +03:00
VladimirMangos
b20b3e5ade [10757] Implement zone limited pets unsummon at leave allowed zones.
* Also remove redundant zone/area args for zone/area update function like UpdateZoneDependentAuras.
* Merge Player::*AllControlledUnits functions to Unit version with replace option args by mask arg.
* Unit::*AllControlledUnits guardian iteration make working with internal unsummon call suport for guardians case.
2010-11-20 08:10:32 +03:00
rsa
92ed528eb9 [10754] Use UNIT_FIELD_CRITTER for store minipet guid.
Also move related code to Unit and allow summon minipets by creatures.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>

Also fix creature's totems unsummon at owner remove from world.
2010-11-20 04:37:14 +03:00
VladimirMangos
12b80fec68 [10747] Some other aura caster object guid use cases. 2010-11-19 18:36:43 +03:00