ASSERT hard use in predictable way because diff. 3rd party libs code
redefine it inf different ways and hard make sure that used in end
of mangos define version. This is real detected problem make some
expected assert checks ignored and so bugs not detected as expected from code.
In addition made related changes:
* Common.h header expected to be first include in any src/game/header except most simple cases.
* Related FILE.h header expected to be first include in FILE.cpp
* Fixed some absent includes and type forwards for safe build without PCH enabled.
* Avoid using MANGOS_ASSERT in src/framework code
Interrupt casting non combat spell spell at neter to combat
and prevent it casting in combat (last checked by client
but better recheck at server for prevent cheating).
Fixes a problem where database has more than one entry for a spell and target is explicitly provided by script side.
Signed-off-by: NoFantasy <nofantasy@nf.no>
Important:
* You have to re-extract and assemble vmaps
* Update your config file, new option 'vmap.enableIndoorCheck' added
New features:
* Include WMO+DBC area information for correct subarea identification and indoor check
* Support for WMO liquid (fishing/swimming in cities, instances and oterh WMO based environments)
Technical changes:
* New Bounding Interval Hierarchy (BIH) data structure for better performance
* Referenced model data for reduced memory usage,
needs more files, but reduces overall file size from ~1.9GB to ~550MB
Additional Authors:
arrai (DBC handling and indoor detection)
faramir118 (windows support and bug investigation)
And of course thanks Vladimir for a lot of patience and support!
To reflect better what the function should actually return and also to clarify when used in misc calculations.
Signed-off-by: NoFantasy <nofantasy@nf.no>
(based on insider42's repo commit 90de00d)
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
It include reverts commit ca99760e884d82219fff63ecf5f2ca87b02b5924
with less clean implemetation.
[patch 155] Fixed triggering of spell 55095 by 45524. Patch provided by me
(based on commit 90de00d)
Some negative spells have positive effects with targets not affected by negative effects of spell.
For example spell 45524 cast negative effecst to target and possitive effect to caster self.
For like possitive only target of negetive spell will not triggered negative proc events.
In last cases will avoid triggering glyph 43537 at caster at spell 43537 cast.
* Show skinning tooltip only after creature loot
(when creature can be explcitly skinned).
* Allow reopen skinning loot if still have not looted items.
* damage - different direct damage calculation tracing
* combat - combat state updates, roll attack result and etc
* spell_cast - spell cast progress and aura apply
TARGET_ALL_FRIENDLY_UNITS_AROUND_CASTER expected seelction friendly targets
for spell caster around spell caster (so ignore original caster faction).
This meaning that for begative spell also selected friendly targets for
spell caster object.
* Move and rename MAX_REAGENTS to DBC Strcuture.h.
It used only afore access to SpellEntry field and so part of strcuture definition.
* Add MAX_SPELL_TOTEMS and MAX_SPELL_TOTEM_CATEGORIES for same reasons, and use in code.