Commit graph

52 commits

Author SHA1 Message Date
zergtmn
4cfa51d799 [11482] Reorder some fields for better memory layout 2011-05-14 16:52:32 +06:00
Xfurry
2355b0bfde [11472] Implement spells 23184/25041 periodic trigger code.
Also implement classes PlayerListSearcher and AnyPlayerInObjectRangeWithAuraCheck

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2011-05-12 00:09:04 +04:00
VladimirMangos
d3947b2026 [11220] Implement support positive persistent auras
Note this alos have bad side: if some spell wrongly checks as possitive then it will work wrong after.
So report if any.
2011-03-05 23:03:28 +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
VladimirMangos
bf0ecf6e71 [10947] Update copyright notice for 2011 year. 2011-01-01 20:33:43 +03:00
NoFantasy
7751579303 [10855] Add TARGET_AREAEFFECT_GO_AROUND_DEST(52) (renamed from TARGET_AREAEFFECT_CUSTOM_2)
Target selects all gameobject around destination, limited by adding spell with a corresponding gameobject entry in database table spell_script_target.

Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-12-11 10:34:46 +01: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
VladimirMangos
a72930acc9 [10700] Remove unused structure GridUpdater. 2010-11-08 21:22:08 +03:00
VladimirMangos
9508001213 [10696] Avoid selection despawned creatures as spell autoselected targets.
Original patch provided by virusav.
2010-11-08 03:09:01 +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
22bc9c80a1 [10623] Make .respawn work correctly with BG event spawns 2010-10-19 11:03:01 +04:00
SilverIce
c4ddbead04 [10616] Simplified trade distance checks, GROUP_UPDATE_FLAG_POSITION flag handling moved out of Map
note: need avoid Map::PlayerRelocation calls now and use Player::SetPosition instead
2010-10-17 19:19:47 +03:00
DasBlub
61102e3b16 [10610] Renamed some functions from the Creature class
Also other classes have been affected, due to the use of search&replace.
This will probably break some patches and 3rd party libraries, so make sure to update them if required.
Thanks to Phille for the original idea and patch!
2010-10-14 22:07:04 +02:00
NoFantasy
c10a983c60 [10516] Fix small typo in class ExplodeCorpseObjectCheck
Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-09-22 09:12:47 +02:00
VladimirMangos
b0edd807d7 [10513] Clear grid *Check/*Searcher clases use
* Check class considered have all info select  object in world from suggested but grid walker list in some grid.
  This also meaning that Check must always have focus object around that (and in same phase) fit objects must be.
* Searcher only must ask Check and know how from all objects fiting to Check select result object(s).

For this reason and for better compatibility removed first arg (searcher) form all Searcher classes.
Instead expected used Check::GetFocusObject() object if need ( by always need check and simolify Check classes
phase checked in Search classes). This also restore source code compatibilty in related lines with prev.client
version branches code.

* While focus object adding fixed possible wrong phase object selection at stealth detection and at corpse searches.
2010-09-22 06:25:21 +04:00
Lynx3d
01d326b90d [10202] Rename isInFlight() to IsTaxiFlying() and UNIT_STAT_IN_FLIGHT to UNIT_STAT_TAXI_FLIGHT.
Also add IsFreeFlying() function to Player class.
2010-07-17 02:06:28 +02:00
SilverIce
e427ce80cc [10052] Camera System
(based on SilverIce's repo commit 4f2f4ab + next 3 more)

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-06-14 07:23:03 +04:00
SilverIce
d6c5207867 [10020] Drop unused member in VisibleNotifier structure and related functions
(based on SilverIce's repo commit e678555)

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

Also applied mangos code style to GridNotifiersImpl.h
2010-06-02 09:56:51 +04:00
VladimirMangos
921b0d668f [9850] Fixed target selection for area spells casted from aura at enemy.
* Spell::GetCastingObject must be use for selection visual/point cast,
  not for friend/enemy checks. Add extanded GetAffectiveCasterObject
  for proper provide for referecned checks wild gameobject casted case.

* Also support chain damage spells casted by gameobjects.
2010-05-08 01:21:41 +04:00
SilverIce
6ab55fa09e [9796] Controlled unit should be a source of movement packets, not player-controller.
Now movements of controlled unit are visible for nearby players,
even when controller too far from controlled unit

This new type of packet broadcasting used in HandleMovementOpcodes handler only,
maybe it can be used somewhere else.

(based on SilverIce's repo commit d2387ca)

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-04-26 14:02:41 +04:00
SilverIce
53eeebf2fe [9725] removed PlayerNotifier and related Map::UpdatePlayerVisibility function, used UpdateObjectVisibility instead
(based on SilverIce's repo commit e226019)

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

Note: this changes not affect in any good/bad way recent problem with player guids.
2010-04-11 06:27:57 +04:00
VladimirMangos
8416702d7c [9579] Use ObjectGuid in some loot code.
Also use ObjectGuidSet instead std::set<ObjectGuid>
2010-03-13 14:06:27 +03:00
VladimirMangos
7fb5d850bf [9510] Gameobject casting improvements.
* Add IsHostileTo/IsFriendlyTo and implement expected way checks for diff. world object types.
  For controlled object check redirected to specific owner, for wild gameobject base at gameobject faction.
  If faction not set expected to be hostile to anyone.
* Update grid searchers to be usable with world object instead only unit case.
  Some grid searches lost redundent second object arg, AnyAoETargetUnitInObjectRangeCheck lost hitHidden arg
  (for hitHidden==true case added new AnyAoEVisibleTargetUnitInObjectRangeCheck)
* Updated grid searchers used with gameobject area casts now.
  Note: Gameobject area spell cast animation will still wrong show around cast triggering target instead
  center around gameobject.
* In case gameobject aura apply to target for restored use target itself as caster because
  we not have currently another way apply aura form wild gameobject.
2010-03-04 07:38:26 +03:00
NoFantasy
7c555add76 [9403] Replace number with enum name where explicitly used in array/other checks
Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-02-17 19:07:00 +01:00
AlexDereka
4338c9105d [9324] Fix some gcc warnings 2010-02-08 02:27:34 +03:00
SilverIce
0c8fccbd47 [9307] Grid containers, cleanup
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-02-05 01:46:40 +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
fe6e2e1746 [9122] Updated copyright notice for new year.
Also fix some lost in past cases.
2010-01-08 00:02:21 +03: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
VladimirMangos
50d426e72c [8496] Resolve some #include cycles and unsafe code.
* Common.h  -> Threading.h ->  Errors.h -> Common.h
* Remove reduncdent #include "ByteBuffer.h" in headers
* Remove redundent #include "Auth/BigNumber.h" in headers
* Avoid multyply data copy at use some now dropped functions in BigNumber.
* Avoid copy fixed byte count from byte arrays with unknown real size created from BigNumber.
2009-09-14 05:59:57 +04: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
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
ApoC
72f16ab342 [7957] Implemented for AnyAoETargetUnitInObjectRangeCheck possibility to allow/disallow selecting hidden units.
Signed-off-by: ApoC <apoc@nymfe.net>
2009-06-05 03:01:20 +02:00
Lightguard
35271fe488 [7952] Implement rogue talent 51690.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-06-04 06:36:32 +04:00
NoFantasy
48fee42129 [7951] Mope call for help code to function form Event AI code to allow use it from C++ scripts also.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-06-04 05:01:12 +04:00
tomrus88
42f8ce5f3e [7911] Applied coding style. 2009-05-29 19:07:28 +04:00
Neo2003
fa03b3663a Mobs fleeing and getting assistance feature implementaion.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>

Also rename ACTION_T_FLEE to ACTION_T_FLEE_FOR_ASSIST for clear use
2009-05-21 01:33:28 +04:00
VladimirMangos
f332c000d1 [7860] Implement creature event ai ACTION_T_CALL_FOR_HELP for explicit call for help in some script cases. 2009-05-20 22:15:41 +04:00
VladimirMangos
788cdf9b3a [7826] Avoid use GetDistance* that used slow sqrt call where possible, other related speedups. 2009-05-14 18:51:13 +04:00
Astellar
09046df744 [7808] Move corpse search code in function with template arg for class-check.
This let reuse code for other similar near corpse target selection spells.
Also provided currently not used class-checks for 2 spells

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-05-09 18:48:18 +04:00
AlexDereka
6bb6ff0f7e [7622] Added creatureAI with related database tables.
Code and concept (also known as EventAI) by ScriptDev2.
Note: database table layout are compatible with original db-scripts.
2009-04-05 23:05:44 +04:00
VladimirMangos
f42815f04b [7411] Use similar localization classes for World::SendWorldText muti-line message. 2009-03-08 12:32:09 +03:00
VladimirMangos
9b3daf3933 [7330] Code warnings and style cleanups. Some bugs fixes.
1) comparison singed and unsigned values
2) redundent includes
3) wrong constructor :-part field initilization
4) unused not-/*name*/-guarded args in template/virtual functions that not required like args.
5) explicitly list not implemented achievement types.

Also bugs fixed:
1) Drop wrong phase mask 0 check in WorldObject::InSamePhase.
2) ArenaTeamMember::ModifyPersonalRating incorrect work with move points in negative with infinity values in result.
3) ArenaTeam::SaveToDB code send uint64 value to string with arg format %u.
2009-02-24 01:54:53 +03:00
ApoC
3910fc4898 [7319] Fixed compile on Unix systems.
Signed-off-by: ApoC <apoc@nymfe.net>
2009-02-21 11:54:06 +01:00
VladimirMangos
34a9f0302e [7311] Divide MessageChatLocaleCacheDo to specialized helper classes
1) LocalizedPacketDo (allocate and cache packets for locale indexes)
2) MonsterChatBuilder (prepare monster chat message packet for specific locale index)
2009-02-21 03:18:39 +03:00
VladimirMangos
b5da610388 Phase system development continue.
* Use WorldObject phase mask field instead explicit aura scan. This allow have phase for any world objects.
* Add phase checks to packet broadcasters/object searchers. This let correctly work say/yell/area
  and multi/random target spells/aggro assistance in phased areas or target selection.
* In GM-mode character presense (see and visible) in all phases except normal visibility efects including GM-visibility.

TODO: summoned objects phase set base at owner phase, load phase mask for creatures/gameobjects from DB, in game commands.
2009-01-31 06:06:01 +03:00
arrai
c6f48843ad [7017] Updated copyright notice for new year 2009-01-03 18:09:51 +01:00
ApoC
64fd2dc881 [6846] Fixed some more typos. Added post check for assistance conditions into event execute.
Signed-off-by: ApoC <apoc@nymfe.net>
2008-11-24 03:03:30 +01:00