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
Table creature_model_info store creature entry to use model from (or explicit model). The selection is based on a base modelId and racemask.
Hacks for shapeshift models removed (data included in SQL update)
Dropped no longer needed creature_model_info.modelid_other_team, as creature_model_info can and should be used instead (sorry, this is what happen when author doesn't do full research :) )
Signed-off-by: NoFantasy <nofantasy@nf.no>
This change will:
* make it easier to use cached data directly without any modifications
* correct issues regarding invisible models
* simplify certain aspects of model selection itself and make it somehow easier to control and maintain special cases.
Two new fields added to creature_model_info, to store modelid_alternative and modelid_other_team
* _alternative holds an alt. model, for cases where gender are the same, or is not male/female.
* _other_team is generally used for totem models, but may have future use.
This commit will possibly break a few things (visually) and will require DB projects to update their creature_template models data.
It is advised to use cache data as-is, and in addition fill creature_model_info for certain models, totems in particular, for expected appearance.
Signed-off-by: NoFantasy <nofantasy@nf.no>
(based on 400's commit 0f37423)
(based on 400's commit 636cfef)
(based on 400's commit 0bbe3a7)
(based on 400's commit ce86b56)
(based on 400's commit b74c6a8)
This allow independent rate of walk vs run speed. Existing field renamed to explicit speed_walk.
Note that default database rate for run is a result of the most common value seen, 8.0/7.0
Signed-off-by: NoFantasy <nofantasy@nf.no>
Some items with negative by defaul charges not expected to be deletedt at no charges.
In past this fixed by using positive charges amount in like cases in different from
expected negative value. Adding new field for avoid this.
* use UI64FMTD instead of "%u" for uint64 output
* on most *NIX systems, I64FMT is "%016lX" and not "%016llX"
* also fix typo: renamed GridMap::loadHeihgtData to GridMap::loadHeightData
Note: there are still many warnings from the 3rd party libraries g3dlite and ACE. Those warnings won't be fixed with that commit.
Also, a few warnings from MaNGOS are left, they'll be fixed later.
Signed-off-by: XTZGZoReX <xtzgzorex@gmail.com>
As result, gossip for GO is now possible. Moved related data structures and remove useless from code.
Please note that after some time, table npc_gossip will be fully removed (use menuId in _template in relation to gossip_menu as replacement).
Special thanks to GriffonHeart for help with research, discussions and ideas of code and thanks to Vladimir for helpful input.
Signed-off-by: NoFantasy <nofantasy@nf.no>
* Store reset time for map/difficulty pairs.
* Use DBC data for reset time and max players instead `instance_template` fields (dropped)
for each existed map/difficulty pair.
* Fix some "heroic" related checks in spells/etc.
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
* git_id updated to generate revision_sql.h file with required_* fields strings.
* mangosd/realmd changed to include header and check this strings at startup.
* mangosd/realmd will terminated if related strings not match in DB content.
In most cases this meaning that not all expected sql updates applied.
Current required_* field stored in DB output in error to help find what last sql updates applied.
IMPORTNAT NOTE for mangos devs: please update used git_id before adding next commits with sql updates!
* Load table data to std::map instead SQLStorage and add check loaded spell existance.
* Drop from table not existed spells.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>