Commit graph

188 commits

Author SHA1 Message Date
SilverIce
fc0eb7e9fa [11721] Simplify walk/run movement mode selection code 2011-07-08 19:30:00 +03:00
zergtmn
54f623d2b8 [11632] Revert part of 11631 2011-06-17 16:27:06 +06:00
zergtmn
10865b633f [11631] Fix wrong overriding aura stack amount and proc charges at loading
Need to consider spell mods, partial dispels and etc...
2011-06-17 16:14:38 +06: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
VladimirMangos
b8bb108757 [11466] Use ObjectGuid in Map::m_objectsStore 2011-05-10 22:25:06 +04: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
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
VladimirMangos
7318bb0864 [11456] Some ObejctGuid uses in Pet code. 2011-05-09 20:22:03 +04:00
rsa
81bd108174 [11425] Remove duplicate SetSheath call for hunter pet.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2011-05-03 01:04:57 +04:00
VladimirMangos
a9ec4f1094 [11411] More comment to more clear place after prev. commit. 2011-05-01 03:22:58 +04:00
VladimirMangos
6bdd55bd14 [11410] Move class and some other field set to Pet::InitStatsForLevel
This let use it also at pet first summon case as expected.
2011-05-01 03:06:18 +04:00
NoFantasy
2c09c11091 [11357] Replace some 0-values with UNIT_DYNFLAG_NONE
Signed-off-by: NoFantasy <nofantasy@nf.no>
2011-04-15 11:07:55 +02:00
VladimirMangos
6f8aa617d0 [11354] Resolve porblems with Pet regeneration timer conflict with Creature version.
* Creature regeneration code moved to new virtual function RegenerateAll
* Pet instead direct call own regeneration code overwrite now RegenerateAll

Big thanks to Vladskywolf for problem research and original patch version.
2011-04-15 02:15:29 +04:00
VladimirMangos
ba77d85a30 [11323] Avoid explicit use HIGHGUID_UNIT as creature high guid in guids or creature creating.
This helper change for allow have in future static spawned vehicles as `creature` table data.

Added CreatureInfo::GetHighGuid() high guid selector, and wrapper CreatureData::GetHighGuid()
for most real cases of usage. Also easy get expected guid form by CreatureData::GetObjectGuid(lowguid).

Also fixed some memory lost cases at creature spawn fail.
2011-04-07 21:15:27 +04:00
Ambal
8fd323a09a [11317] More SQL requests to use prepared statements.
Signed-off-by: Ambal <pogrebniak@gala.net>
2011-04-06 00:13:12 +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
37fd225a89 [11292] Strip trailing whitespace after [11284] 2011-03-27 23:40:42 +06:00
VladimirMangos
989d229968 [11288] Check IsPositiveEffect in IsPositiveSpell only for existed effects.
Thanks to NoFantasy for problem research.

Also make IsPositiveEffect use SpellEntry* arg instead spell id.
2011-03-26 03:10:26 +03:00
Ambal
40ef9cbf2f [11284] Implement prepared statements for INSERT+DELETE+UPDATE SQL requests. Should improve player save performance + lower MySQL server CPU usage.
Note: PostgreSQL does not have prepared statements implemented using native APIs.

Huge thanks to Undergarun, kero99 and Vinolentus.

Signed-off-by: Ambal <pogrebniak@gala.net>
2011-03-25 22:17:59 +02: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
0751a35342 [11278] Fixed auras stack size check at loading.
For non stacking auras preserve stack size 1 as auras created instead reset it to 0 at mnext load.
For client no difference in show and most non stacking auras not dependent from stack size value
at server side code, but any way set stack size to 0 can generate unexpected wrong caluclation results
in spell code.
2011-03-23 05:37:38 +03:00
VladimirMangos
2b65cdb3bb [11244] Collect in CreatureCreatePos data for delayed pos setup into Creature::Create.
* CreatureCreatePos work in 3 modes:
    - exactly provided coordinates/orientation/map/phasemask
    - exactly object + orientation as coordinates/map/phasemask
    - delayed position calculation near provided object at specific dist/angle.
* Use in similar way and for Pet/Vehicle Create functions.
  For Totem created new Totem::Create function with some moved in to it totem specific code.
* This let resolve recent problems with creature spawn and preserve fix for cases when
  Creature::Create addon/script code expected known correct possition for creature.
2011-03-14 06:18:34 +03:00
VladimirMangos
69e01fc349 [11229] Avoid access to Pet in pre-Create relocation 2011-03-07 16:20:08 +03:00
VladimirMangos
51b4556c4b [11222] Move possition setup for Creature and subclases before Create call.
Some called from Create code can req. proper pos setup for creature.
Bad side: But in way how currently code orginized impossible setup excetly position for most
Creature sublasses. So in this part need more work.
2011-03-06 12:47:37 +03:00
VladimirMangos
04c21c95d3 [11159] Remove now redundent GetDBTableGUIDLow support.
Now any creatures/gameobjects loaded base at DB data
in non-instanceable/instanceable maps always have same guid
as in DB data.

* Also remove useless by same reasons MaNGOS::GameObjectWithDbGUIDCheck
2011-02-14 07:20:09 +03:00
Lynx3d
6fbf464786 [11073] Prevent applying SPELLMOD_DURATION for summons with unlimited duration.
Fixes summon duration of spell 70908 in combination with talent 44557 and ranks.
2011-01-26 03:00:48 +01:00
Skirnir
75b4f75f4d [11066] Remove tail whitespaces.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2011-01-25 00:22:29 +03:00
Ambal
7ef75985b9 [11055] Save pet related data in one single transaction. Also merge Pet::DeleteFromDB() queries into one single transaction request.
Signed-off-by: Ambal <pogrebniak@gala.net>
2011-01-21 00:07:05 +02:00
Ambal
4ddedf0804 [11049] Fix mangos and SD2 compilation after commits [11045] and [11047].
Signed-off-by: Ambal <pogrebniak@gala.net>
2011-01-19 23:50:40 +02:00
Ambal
0941a3f851 [11048] Save pet's spell data as one single transaction for speed
Signed-off-by: Ambal <pogrebniak@gala.net>
2011-01-19 23:33:53 +02: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
click
ddd37b719f [10885] Hunter pet can't have < owner-5 level
Signed-off-by: VladimirMangos <vladimir@getmangos.com>

Also make tame time check call safe.
2010-12-17 19:27:51 +03:00
VladimirMangos
8d7cc36098 [10884] Pet with same level as owner must have xp = 0
Thanks to Click for original patch and problem description.
2010-12-17 18:49:39 +03:00
VladimirMangos
b967848e42 [10823] Clear way access/set UNIT_FIELD_BYTES_*/PLAYER_BYTES* byte fields.
Fix some bugs when all uint32 field modified instead byte parts.
In some cases added byte way set/get but code line itself need additinal reserch/fix
for use correctness in line pos.
2010-12-04 11:15:19 +03:00
VladimirMangos
957c9331a9 [10813] Use ObjectGuid for aura holder cast item guid.
Still exist 7 GUID_LOPART uses in code.
2010-12-02 08:02:22 +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
f9bcfa3a89 [10739] Cleanup pet remove code and some fixes.
* Merge Player::RemovePet and Pet::Remove function code to Pet::Unsummon
  This let be sure that in all cases all required steps doen. For example this fix
  creature's guardians propertly remove from guardians list.
* Add new pet save mode PET_SAVE_REAGENTS as replacement PET_SAVE_NOT_IN_SLOT+true-arg stable pair in old function args
  This will avoid use reagent save arg with wrong different save modes.
* Fixed recently added code with absent check for re-summon protector pet call.
2010-11-19 02:17:55 +03:00
VladimirMangos
1fe4b1f4bb [10737] Use empty name for non-unique named pets.
This let to client select appropriate name by self base at UNIT_CREATED_BY_SPELL data.
2010-11-18 22:58:49 +03:00
VladimirMangos
9c0076181b [10733] Implement defencive guardians pet type for creatures like 28120 2010-11-18 21:23:22 +03:00
tomrus88
76dfdd336f Backports from 400 branch. 2010-11-15 18:01:45 +03:00
VladimirMangos
3b0e926788 [10717] Revert "[10716][10688] New version of patch for send real diff from last update."
This reverts commit 8398a55fa274471daae115e00c627b299a3fdbbd.
This reverts commit 06e2d6859ba3d7fd47be72c23a64e68ae039701f.
2010-11-10 06:29:49 +03:00
blueboy
ee8cc71e38 [10692] Fixed wrongly use %d for guids in DB queries.
This can affect correct result in cases big guid values
(out of range for possitive part of int32 range) at x86 platforms.

Some other cases addded in addition to original patch fixes
where %d wrongly/unsafe used for unsigned values.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-11-07 22:10:37 +03:00
VladimirMangos
10d3d3ce24 [10692] Fixed some GCC warnings and code errors.
Thanks to freghar for provide cleaned list of warning messages.
2010-11-07 21:30:55 +03:00
VladimirMangos
e219ee99bb [10688] New version of patch for send real diff from last update.
In new version last update time stopred for specific Cell that store all world objects
placed in it. All objects of Cell updated (or not updated) in same time.

Original version provided by ciphercom.
2010-11-06 22:59:54 +03:00
VladimirMangos
0847d4c8cd [10683] Revert "[10677] Send to creature/etc Update call real diff from last update and use it."
This reverts commit 10784a8c7cc81c468b5411e973d36ecf31de9603.

Main reason: impossibility for me as commiter test problem and fix all corner cases problems.
2010-11-05 19:54:31 +03:00
cipherCOM
555c1a9094 [10677] Send to creature/etc Update call real diff from last update and use it.
Now in case when creature/etc some tices not updates in result stay
in not active (no near players or active objects) cell some important
timers (corpse decay, summon timers, group loot expire, aura durations, etc) will
updates at real diff time from last prev. update call.

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

For some systems added exclude use real diff time because current limitations
like move generators. So its stay use last tick diff and considered freeze and
skip all time while creature in not active map part.
2010-11-03 07:07:13 +03:00
VladimirMangos
a32d68febd [10671] Convert some Unit owner/etc guids to ObjectGuid way. 2010-11-01 13:19:50 +03:00
DasBlub
fc5dd54f37 [10612] Revert "[10611] Made some values const"
Reason: It makes no sense to make a local variable const.

This reverts commit 49e3184d69056738701bc15d9b7f982bf11d7bbc.
2010-10-15 22:29:10 +02:00
Reve
47d971c7f9 [10611] Made some values const
Signed-off-by: DasBlub <dasblub@gmail.com>
2010-10-15 22:14:42 +02:00