Commit graph

164 commits

Author SHA1 Message Date
tomrus88
b85417df73 Movement packets cleanup. 2010-02-01 17:03:04 +03:00
tomrus88
41d8f1a5d4 Movement packets fix. 2010-02-01 00:43:18 +03:00
VladimirMangos
eaecc467d5 [9212] Implement pet speed synchronization with owner only for follow mode.
* This allow pet use own speed (and all speed affects appiedto pet itself) in combat.
* Apply this speed synhronization to minipets/guardians also.
* Also rename Unit::SetSpeed to SetSpeedRate as more close to real functionality.
2010-01-19 03:56:26 +03:00
VladimirMangos
e1d0c1cdba [9209] Finish synchonization walk mode for pets.
* Re-sync at follow mode switches
* Support sync for creature pets

Also
* Attempt fix build at *nix
* Drop unused unut state mask with typo in name.
2010-01-18 14:35:19 +03:00
VladimirMangos
6a2e8064f1 [9208] Big cleanup in UNIT_STAT_* use
* Re-number enums by function groups and use where possible new defined masks in code instead raw enum |-lists.
* Avoid use movement generator generic state markers like UNIT_STAT_CONFUSED for mark movement stoped.
  Add special shadow UNIT_STAT_CONFUSED_MOVE/etc states for like use.
  UNIT_STAT_CONFUSED in like case will be safe expect use for normal checks confused state presence
  And UNIT_STAT_CONFUSED_MOVE for check real move in this state
2010-01-18 11:59:10 +03:00
VladimirMangos
98adbbc3d3 [9206] Some code cleanups.
* UNIT_STAT_SEARCHING not used
* Remove some commented wrong code
* WaypointMovementGenerator<Creature>::Initialize() not have code
2010-01-18 09:13:50 +03:00
VladimirMangos
2e9bf5ad6a [9197] More propertly update walk mode for player pets.
* Use AddMonsterMoveFlag instead SetMonsterMoveFlags for set walk-mode
* Apply walk/run mode to all copntrolled units (except totems).
* Synchronize walk/run mode at pet creating/loading.
2010-01-17 07:51:00 +03:00
VladimirMangos
6f703bab57 [9189] Fixed build error at *nix. 2010-01-16 08:37:50 +03:00
VladimirMangos
cc062f16ac [9187] Fixed problem with non-attackable pes/totems at arenas
... and other FFA areas. Problem is result chnages in related flags work after old 3.x switch.

* Added high-level functions for FFAPvP state set for unit
* Apply FFA PvP to all controlled units also at set, and at summon/load
2010-01-16 05:41:42 +03:00
VladimirMangos
6704929d56 [9186] Templated functions for apply some code to all controlled units.
Also fix some related problems with not updates totems/etc
2010-01-16 04:41:44 +03:00
tomrus88
e117f521e8 Some enum fixes. 2010-01-09 21:05:34 +03:00
VladimirMangos
fe6e2e1746 [9122] Updated copyright notice for new year.
Also fix some lost in past cases.
2010-01-08 00:02:21 +03:00
Lightguard
9c98bd92e2 [9077] Fixes for pet work in case mounted owner.
* No unsummon temporary pet at non-fly mounting.
* Implement client side disable pet's action bar for mountted owner time

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

* implement server side action disabled case (action bar modify, aggro reaction and autocast)

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-12-28 16:00:55 +03:00
yad02
9d0e943488 [9036] Typo in function name.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-12-20 13:07:20 +03:00
balrok
16b39c1ebf [9008] modelids for shapeshifts from dbc
this will correct some modelids:
form         old model, new model
FORM_TRAVEL: 632   --> 918      (now a bit smaller)
FORM_GHOUL:  10045 --> 25527    (whisp --> ghoul)
FORM_CREATUREBEAR: 902 --> 2281 (old brown horse -> bear)

implement shapeshift for spell 24347

this commit also
fix the errormessages with: "Race %u not found in DBC: wrong DBC files"
which were triggered from this code
and will fix the modelid for creature 2038
since it's also using a shapeshift aura and only got the horde-modelid

+ some new entries in ShapeshiftForm-enum
+ some research for the shapeshift.dbc
2009-12-16 21:09:42 +01:00
VladimirMangos
be79375b56 [8994] Re-implement remove auras from channeled target
* Old way have problem with auras that have last tick avent at one from caster/target:
  depndent from auras update order in caster/target pair ti can wrongly not triggered.
* Fxied possible problem with remove same spell non-caster auras at target/caster at spell cast cancel
* Also fix memory lost in old deleted auras cleanup.
2009-12-15 18:50:45 +03:00
VladimirMangos
03e16dd08b [8905] Dispel work with aura stacks fixes.
* Implement set of remove aura functions for remove single aura from stack.
  Also some order function declarations for more clear show different aura remove functions.
* Change Spell::EffectDispel to dispel single aura instead all similar auras from caster.
2009-12-02 22:07:50 +03:00
przemratajczak
cd2ec48742 [8898] Fix typo: get SPELL_AURA_MOD_MECHANIC_DAMAGE_TAKEN_PERCENT data from victim.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>

Also added function for 2 repeated loop code and fix another typo for second SPELL_AURA_MOD_MECHANIC_DAMAGE_TAKEN_PERCENT case.
2009-12-01 00:32:26 +03:00
VladimirMangos
e6efe02020 [8867] Implement expected combat stop with friendly faction
In case force reaction apply/remove.
2009-11-23 22:40:46 +03:00
QAston
d924406bd8 [8858] Implement client inform about creature threat list changes.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>

Also small related code cleanups.
2009-11-22 10:33:11 +03:00
NoFantasy
70fb82b262 [8827] Add a missing stand_state definition (and fill in with a few unknown)
Signed-off-by: NoFantasy <nofantasy@nf.no>
2009-11-17 17:40:10 +01:00
NoFantasy
84432d8459 [8826] Set creatures PvP state flag based on creature faction and rename related enum
Condition with custom flag civilian and player team only is not sufficient. This update also disallow use *_addon -table (second byte of bytes2) to set flag manually (small chance it may be needed)

Signed-off-by: NoFantasy <nofantasy@nf.no>
2009-11-17 15:41:04 +01:00
balrok
c3c7ab2f63 [8816] call uncharm for all units at delete
currently it was only done for players - but units
also can have charms which must be removed
2009-11-14 19:11:04 +01:00
XTZGZoReX
33d475caf3 [8786] Rename some files.
* HostilRefManager.cpp/.h -> HostileRefManager.cpp/.h
 * PoolHandler.cpp/.h -> PoolManager.cpp/.h
2009-11-08 04:21:56 +01:00
darkstalker
aa4524852e [8748] Reflect by reflection shields only reflectable damage.
Not reflect self/environment damage cass, and not reflectable spells.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-10-29 05:16:54 +03:00
VladimirMangos
1b6176396e [8747] Implement player's pet resilience, also fix DoT case. 2009-10-29 04:34:57 +03:00
VladimirMangos
15ab6794d3 [8742] Avoid aura remove triggered casts and packets send at logout/delete
This is must speedup logout and solve some crash cases or unexpected effects.

Also fix some nonsense code with memory lost possibility.
2009-10-27 04:20:11 +03:00
balrok
20e8982075 [8690] added unit auraFlag variable
this can be used for faster checking if an unit has a specific
aura applied..
also implemented the alive-invisible auras now with this way
2009-10-20 23:37:31 +02:00
balrok
46389e4e1c [8689] implement function Unit::isInvisibleForAlive
with that i've implemented all known auras which makes
units invisible for alive.. but that's currently quite hacky
i think best would be if we could set a unit-flag after those auras
getting applied
2009-10-20 23:37:21 +02:00
VladimirMangos
2e884f4228 [8661] Fixes and improvments in absorb/reduction damage ignore auras work.
* Use stored in aura amount percent damage ignore for auras SPELL_AURA_MOD_IGNORE_ABSORB_FOR_SPELL
* Implement apply percent damage ignore for absorb (SPELL_AURA_MOD_IGNORE_ABSORB_SCHOOL (194))
  and redunction (SPELL_AURA_MOD_IGNORE_DAMAGE_REDUCTION_SCHOOL (269)).
  Later need recheck what from this 2 auras applied to armor reduction
  (currently 269 used only in single spell and this spell is single affecting armor
  and single normal school damage applied with 194 aura)
  Also unclear is this must applied to DoTs, expected that not need.
* Implement talent 53375 boots for spell 31884.
2009-10-18 05:02:33 +04:00
VladimirMangos
9fd87a644b [8659] Restore less restcricted call format for Unit::AddThreat
Mostly for scripting use, core cases already fixed anyway.
2009-10-17 12:39:26 +04:00
VladimirMangos
b258a17ba4 [8658] Threat calculation fixes and improvements.
* Add single arg version Unit::AddThreat for just adding to threat list.
* Req. provide schollmask and crit flag for any real threat value for proper threats mod apply.
* Send crit flag in DealDamage as MELEE_HIT_CRIT for spell damage for later send to threat call.
* For not affected by modifiers threat values use SPELL_SCHOOL_MASK_NONE.
* Implement aura SPELL_AURA_MOD_CRITICAL_THREAT (used only in itemset 529 effect).
2009-10-17 11:02:30 +04:00
VladimirMangos
a4d61a6988 [8649] Implement SPELL_AURA_MECHANIC_IMMUNITY_MASK (147) and related cleanups.
* Always use machanic masks in form (1 << (mech-1)), fix all cases.
* Imppement SPELL_AURA_MECHANIC_IMMUNITY_MASK (mostly boss/elite spells).

Note: db stored mechannic masks already stored in proper format so not affected.
2009-10-15 20:53:01 +04:00
NoFantasy
65965bc5fa [8642] Replace the Spanish word 'hostil' with the English one.
Signed-off-by: NoFantasy <nofantasy@nf.no>
2009-10-14 12:46:10 +02:00
NoFantasy
da4a1037e7 [8641] Add comment for two unknown UNIT_FLAG_
Signed-off-by: NoFantasy <nofantasy@nf.no>
2009-10-14 10:42:47 +02:00
pasdVn
c47cf7bd61 [8635] Rewrote bonus damage claculation
* calculation depends on the damageClass now
  ->SPELL_DAMAGE_CLASS_RANGED & SPELL_DAMAGE_CLASS_MELEE use MeleeDamageBonus()
  ->SPELL_DAMAGE_CLASS_MAGIC & SPELL_DAMAGE_CLASS_RANGED use SpellDamageBonus()
* changes/improvements in MeleeDamageBonus:
  -> improved criterions to apply bonuses
  -> implemented scaling of FLAT damage Bonus for non weapon damage based spells
  -> support of DOT's
  -> added pet's bonus damage for non weapon based spells
* general cleanup in CalculateSpellDamage() and MeleeDamageBonus()
* implemented global helper functions GetWeaponAttackType() and GetAuraTicks() in SpellMgr

Signed-off-by: ApoC <apoc@nymfe.net>
2009-10-14 00:33:24 +02:00
balrok
02d45b4b54 [8625] feign_death cleanups
use an extra function for setfeigndeath()
like it's done with setfeared already..
allow to apply feigndeath on creatures too
avoid moving of creatures with feign death applied
and start attacking last victim when feigndeath disappears
2009-10-11 14:22:52 +02:00
NoFantasy
45a2ee21ef [8623] Add function to update orientation of unit (for both server and client)
Signed-off-by: NoFantasy <nofantasy@nf.no>
2009-10-11 11:32:47 +02:00
tomrus88
546f7a7fe5 Merge commit 'origin/master' into 320
Conflicts:
	src/game/BattleGround.cpp
2009-09-28 19:52:54 +04:00
balrok
2da82a8c68 [8552] implemented spells which can be casted while dead
i added a function IsDeathOnlySpell() which returns true
if this spell can ONLY be casted while dead, so i haven't
implemented all spells which could be cast while dead..
2009-09-28 16:44:49 +02:00
tomrus88
2d86aa4535 Misc fixes. 2009-09-14 18:11:15 +04:00
VladimirMangos
67d4335614 [8497] Fixes in talent 53563 work and other area auras spells.
* Support mutiply beacon buffs at same target (as will be in 3.2.x) in triggering part.
* Bonus heal caster expected original paladin, and used his heal bonuses, LoS not required for bonus heal.
* Fixed bug with not apply not-caster affected area spell (hostile area spell or talent 53563)
  to another caster with same area aura active. Correctly remove only specific caster area aura at expire.
* Not show area spell icon for telent 53563 at beacon for this aura.
* Allow stacking dummy auras from diff casters, check formal aura types for effect at add aura stacking check.
  Last important for area auars that can have SPELL_AURA_NONE in modifier data instead formal effect auars at caster.
2009-09-14 08:45:43 +04:00
ApoC
71e736abc6 [8478] Removed dependency on getMSTime() for last mana use.
Signed-off-by: ApoC <apoc@nymfe.net>
2009-09-06 01:40:22 +02:00
Trazom
dffa5d43bd [8477] Implemented "on demand" regeneration of power in Spell::CheckPower (limited to 500ms frequency).
Correctly set UNIT_FLAG2_REGENERATE_POWER to notify client to stop/start regen in bar.
thx. also for nos4r2zod

From original patch was removed usage of getMSTime() and rewrited this part.

Signed-off-by: ApoC <apoc@nymfe.net>
2009-09-06 01:39:13 +02:00
balrok
bd30769dec [8475] fixed some gcc-warnings
all warnings from Wunused
and some from Wall

cause unused may be most interesting for some:
they were in following files:
src/game/Level2.cpp
src/game/Map.cpp
src/game/SpellAuras.cpp
src/game/Unit.cpp
src/mangosd/Master.cpp
but i guess mostly someone just fogot to remove this code

for some unsigned vs signed warnings i used:
ack "for.*int .*size\(\)" | ack -v uint

also note for coding:
if you do something like
    if( a && b || c)
just place parentheses around (a && b) && always will have
precedence over || but without parentheses this could be overseen
quite fast (at least that's my guess why gcc will warn for this)

Signed-off-by: balrok <der-coole-carl@gmx.net>
2009-09-05 13:47:47 +02:00
NoFantasy
a9dea03e09 [8443] Implement use of UNIT_FLAG_OOC_NOT_ATTACKABLE for creature.
Creature with this flag will no longer be attackable by other creatures, and if by any reason it enter combat, flag is removed.

Signed-off-by: NoFantasy <nofantasy@nf.no>
2009-08-31 16:46:19 +02:00
VladimirMangos
fdb2842f60 [8425] Implement SPELL_EFFECT_LEAP_BACK and spell 781
* Move CMSG_MOVE_KNOCK_BACK_ACK (player case) to Unit::KnockBackFrom
* Implement creature case, most at hack way currently :(
  Need information about expected server packet, and possible some disorientation movegen apply at short time.
* In adition of spell 781 implement related creature versions.

* Fixed warnings spawn at reading CMSG_MOVE_KNOCK_BACK_ACK, CMSG_MOVE_HOVER_ACK, CMSG_MOVE_WATER_WALK_ACK.
2009-08-27 05:27:45 +04:00
VladimirMangos
45dd7140b5 [8422] Implement far sight like spells work for long distance.
* Added basic infrastructure for visibility update in case difference player and current view point.
  Just for note: seletect additional arg way beacuse repeatable search object will slow but store pointer will not safe,
  so use middle case: get view point pointer early as possible at visibility updates.
* Implement dynamic object and creature activisation while it's target of far sight spell effect
* Use this for SPELL_AURA_BIND_SIGHT, SPELL_AURA_FAR_SIGHT and SPELL_EFFECT_ADD_FARSIGHT.
* Note2: some spyglass like spells let look _around_ at long distance, this hard implement in current grid loading system
  Without additional changes and not implemented (you will see empty area without creatures in likes case)

* Also fixed warning spam at CMSG_MOVE_SET_CAN_FLY_ACK receive by use proper packet sructure reading.
2009-08-26 08:30:40 +04:00
nos4r2zod
e07a0d9652 [8399] Prevent stacking well fed buffs.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-08-21 06:00:08 +04:00
VladimirMangos
9eb5a3eea1 [8394] Fixes for some non-self only positive spells.
* Propertly reject self targeting for pet spell 2947 and ranks, and spell 54646.
* Some related fixes for pet spells with target mode TARGET_SINGLE_FRIEND_2
* Implement original caster bonus part of spell 54646.
2009-08-20 00:26:34 +04:00