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
* Remove reduncent chekc and args for MapInstanced::CreateInstance(const uint32 mapId, Player * player)
* Rename for avoid name duplication raw InstanceMap creating to MapInstanced::CreateInstanceMap
* Move lookup code of player/group bounde instance save to Player::GetBoundInstanceSaveForSelfOrGroup
when a bg gets created it will also get it's map
(old behaviour was, that map got's created when first player entered the instance)
the reason why battlegroundmaps aren't instantiated with a player object:
* the only information from player-class we need is player->GetBattleGround()
also we can't use anything else
(e.g. playerlevel can be outside of bg-levelrange)
-> cause bgs depend pretty much on their maps this caused circualr dependencies between map,bg,player
* battlegroundmaps will _always_ be prepared by the bgsystem to set the proper data
* there is not much shared in the creational process with dungeonmaps
even the functioncall is different since players need to enqueue first for bgs,
therefore again the player's way to that instance is only through the bgMgr
* Drop delayed moves list in Map code
* Apply movement coords update always at call including movement to different cell/grid.
* Instead removed functionality mark creature as need move notify broadcast at next tick, do it.
This must resolve porblesm with CreatureRelocation in past not always update position to new expected at call
And in resul next code fail or work in strange way. Mark creature for notifier call at next Update
let safe main part remopved functionality implemented in another way: prevent cascade (or infinity chain)
in move updates. In fiture possible implement move notify call not at each tick for save time.
This reverts commit 8e8f7710e8baf29196256c6e0afcce1b7d3f3671.
Main reason: unexpected work in debug with breakpoints.
Also have other reports with strange effects.
former know as heroic_entry we now have 3 of those
which let us chose different creature_templates for different
map-types
normal maps will need a bit more support to use correct
spawnmodes
but for battlegrounds it works already good:
they are divided by levelrange:
0-59 == normal spawn -> spiritguides level 60
60-69 == difficulty=1 -> spritiguides level 70
70-79 == difficulty=2 -> spiritguides level 80
80 == difficulty=3 -> spiritguides level 80
this is needed mostly for alterac valley to get
right creature-templates spawned
and with that all creature->SetLevel hacks could
get removed from alterac valley code
* Rename creature template `heroic_entry` => `difficulty_entry_1`
Possible need add 2 more fields for 2-3
* Use 2 more EventAI EFLAG_* flags for 2-3 difficulty support, update checks.
* Update area trigger code.
Note: support for specialized creature version for difficulties 2-3 not added yet
and will be used same as difficulty 1 mode.
TODO: Rename area triggers heroickey/etc fields ?
Also some code logic cleanups.
Changes let make more cleanups in base map access and other places,
but this chnages not inlcuded in patch.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
Many thanks also to:
Balrok@github.com for long time updating.
Triply@github.com for great work in rewriting process.
All who I forget to name.
Signed-off-by: ApoC <apoc@nymfe.net>
Including fix _SCallback for 3 params, triggred mode correct call for .cast back and .cast target.
Remove outdated code for support old 19421 (and ranks) implementation in client data.