Commit Graph

372 Commits

Author SHA1 Message Date
Shauren
a79b42bf68 Core/Misc: Use our new unique_trackable_ptr for various classes exposed to scripts (not actually used anywhere currently)
(cherry picked from commit 4779fa5048)
2024-03-14 00:14:16 +01:00
Shauren
1af0402239 Core/Misc: PackedGuid refactoring to remove ByteBuffer.h include from ObjectGuid 2023-12-03 22:34:40 +01:00
robinsch
2df1bc3ec1 Core/Object: Remove casts in WorldObject::setActive 2023-10-13 23:03:06 +02:00
Shauren
aaa6e73c8c Core/Logging: Switch from fmt::sprintf to fmt::format (c++20 standard compatible api)
(cherry picked from commit d791afae1d)
2023-08-15 20:10:04 +02:00
Meji
19ea4c416a Core/Spells: Allow implicit targeting of serverside WorldObjects (#28827)
(cherry picked from commit 5d5ca30b23)
2023-03-23 20:22:29 +01:00
Gosha
81bf8de989 Core/PacketIO: Use ByteBuffer from UpdateData instead of copying to it after (#28347) 2022-10-11 22:18:54 +02:00
Shauren
e334fdf3ad Core/Units: Reduce differences between branches part 1 - object class 2022-03-29 23:07:07 +02:00
Shauren
d611925dc7 Core/Units: Reduce differences between branches part 1 - unit updatefield accessors 2022-03-29 11:30:49 +02:00
HelloKitty
e9992066a5 Core/Object: Fix WorldObject::SetZoneScript unsafe cast to InstanceMap (#27877) 2022-03-22 11:40:31 +01:00
offl
a50ce8755b Core/Misc: Rename UNIT_FLAG_TAXI_FLIGHT to UNIT_FLAG_ON_TAXI
Ref #26912
2021-09-16 04:43:06 +03:00
offl
c4741a131a Core/Misc: Rename UNIT_FLAG_NOT_SELECTABLE to UNIT_FLAG_UNINTERACTIBLE (#26913) 2021-09-15 01:04:03 +03:00
Shauren
e50102178b Core/Spells: Spell effect info access refactoring part 3 - removed direct SpellInfo::Effects field access from game 2021-08-31 00:13:44 +02:00
Shauren
6573395f24 Core/Spells: Spell effect info access refactoring part 2 - passing SpellEffectInfo as arguments directly instead of SpellInfo + effect index 2021-08-29 21:12:49 +02:00
ccrs
d49b6af71f Core/Game: include addtional parameter in Object::GetPlayerListInGrid 2021-08-10 13:08:49 +02:00
Meji
ad4bc7cc1f Core/Objects: Units possessing another ones must use the detection of the latter (#26702)
* Core/Objects: Units with invisibility auras can see units that cannot detect them

* Core/Objects: A unit that possess another one, uses the detection of the latter

* GCC: Avoid ambiguous 'else'

Closes #23528
2021-08-08 13:22:04 +02:00
Gildor
bd6de8eb61 Core/Spells: defined and implemented SPELL_ATTR7_CANT_DODGE, SPELL_ATTR7_CANT_PARRY and SPELL_ATTR7_CANT_MISS (#26742) 2021-07-24 14:48:57 +02:00
Shauren
2f04c48919 Core/PacketIO: Reduce size of SMSG_UPDATE_OBJECT by trimming trailing zeros in values updatemask 2021-04-25 14:56:25 +02:00
Giacomo Pozzoni
f96aab2186 Core/Maps: Use a fixed offset instead of full collision height when retrieving floor Z (#26092)
Use a fixed offset 0.5f instead of full collision height when retrieving floor Z as a full collision height ended up on the floor above a few times. It makes more sense to cast the ray just a bit higher up than using a full collision height (which by default is 2.0f)
2021-02-21 17:29:09 +01:00
Kargatum
a32b6b8ac4 Core: whitespace cleanup, reduce double blank line to single (#25795)
* Core/Misc: fix double empty line

* worldserver.conf
2021-01-03 11:47:07 +01:00
Giacomo Pozzoni
3b2c878dd0 Core/Spells: Implemented personal summons (#19231) (#25765)
* Core/Spells: Implemented personal summons (#19231)

* By default determined by summon property flag SUMMON_PROP_FLAG_PERSONAL_SPAWN

Closes #18254

(cherry picked from commit b7bb5e6a98)

# Conflicts:
#	src/server/game/Combat/ThreatManager.cpp
#	src/server/game/DataStores/DBCEnums.h
#	src/server/game/Entities/Creature/TemporarySummon.cpp
#	src/server/game/Entities/Creature/TemporarySummon.h
#	src/server/game/Entities/GameObject/GameObject.cpp
#	src/server/game/Entities/Object/Object.cpp
#	src/server/game/Entities/Object/Object.h
#	src/server/game/Maps/Map.h
#	src/server/game/Spells/SpellEffects.cpp

* Build fix

* Implement feedback

* Fix parameters passed in wrong order
2020-12-26 22:32:01 +01:00
jackpoz
ca2159bf40 Scripts/Obsidian Sanctum: Fix portals not being visible
Change NearestGameObjectEntryInObjectRangeCheck to allow returning GameObject not spawned.
Fixes other occurrences where a similar issue exists.
2020-09-04 22:01:25 +02:00
Giacomo Pozzoni
cfc8f7b442 Core/Misc: Fix issues reported by static analysis (#25351)
* Core/Misc: Fix issues reported by static analysis

* Core/Vmaps: Code cleanup after e777161888
2020-08-29 13:02:42 +02:00
Treeston
534a2388b7 Core/Common: Tokenizer -> Trinity::Tokenize (PR: #25327) 2020-08-28 00:11:16 +02:00
Giacomo Pozzoni
07fd84b679 Core/Misc: Fix static analysis issues (#25194) 2020-08-04 11:36:47 +02:00
Carbenium
8642aaaf92 Core/WorldObject: Replace non-std::chrono SummonGameObject overloads
Also fix intended despawn time of GOs used by the "Engineering a Disaster" quest
2020-07-27 23:00:51 +02:00
Carbenium
3620b47c41 Core/WorldObject: Replace non-std::chrono SummonTrigger overloads 2020-07-27 14:58:18 +02:00
Carbenium
a41f599be7 Core/WorldObject: Remove non-std::chrono SummonCreature overload
Remove
TempSummon* SummonCreature(uint32 entry, Position const& pos, TempSummonType despawnType = TEMPSUMMON_MANUAL_DESPAWN, uint32 despawnTime = 0, uint32 vehId = 0, uint32 spellId = 0);
2020-07-27 14:53:25 +02:00
Carbenium
1131229ee9 Core/WorldObject: Partially std::chrono-ify SummonCreature overloads
TempSummon* SummonCreature(uint32 entry, float x, float y, float z, float o = 0, TempSummonType despawnType = TEMPSUMMON_MANUAL_DESPAWN, uint32 despawnTime = 0);
to
TempSummon* SummonCreature(uint32 entry, float x, float y, float z, float o = 0, TempSummonType despawnType = TEMPSUMMON_MANUAL_DESPAWN, Milliseconds despawnTime = 0s);
2020-07-26 23:30:32 +02:00
Peter Keresztes Schmidt
c92950b3e1 Core/DataStores: Update DBC field names to generated ones (#24999) 2020-07-12 15:36:55 +02:00
Gildor
2a5f537d6a Core/Gameobjects: Improve IsValidAttackTarget faction check for traps that hasn't owner or have NPC owner (#24931) 2020-07-04 15:58:41 +02:00
Gildor
4a4aac61d5 Core/Gameobjects: Traps shouldn't ignore IsImmuneToNPC/IsImmuneToPC and IsInSanctuary rules if has owner (#24911) 2020-07-01 22:53:28 +02:00
Shauren
0468c70dfe Core/Maps: Implemented getting area id from gameobject spawns
Yes, you can now spawn LK platform anywhere and it will treat you as inside Icecrown Citadel

(cherry picked from commit 42f9deb21e)
2020-06-27 20:23:30 +02:00
Carbenium
7b3d691c0b Entities/WorldObject: Add IsInWorldPvpZone to keep API similar to master 2020-06-24 15:09:57 +02:00
NoName
d2b88fbd50 Core/Objects: Add GOSummonType argument to SummonGameObject accepting XYZ arguments instead of Position (#24655) 2020-05-19 11:40:50 +02:00
Ovahlord
fdcb7388a6 Core/Objects: fixed destination calculation for destination based spells casted by flying units
* Additionally he PathGenerator will now check for realtime movement flags instead of creature based template data only so scripted flying movement and players will now correctly get their path calculated
2020-05-16 17:40:08 +02:00
Giacomo Pozzoni
c0b75bf40d Core/MMAPs: Adjust walkable climb and fix a lot of mmap raycast issues (#24539)
* Core/MMAPs: Adjust walkable climb

Adjust walkable climb as recast using walkableClimb also to find the poly from a position, giving priority to polys that are below the position but closer than walkableClimb.

* Temporarily disable static collision (the whole check should be removed)

* Core/Spells: removed deprecated mmap path check for TARGET_DEST_CASTER_FRONT_LEAP

* Core/Objects: allow flying units to use the helper as well (flying units casting radius based spells)

* Code refactor

* Handle raycasts that end in a point with no height in the mmap mesh as PATHFIND_NOPATH

* Walk back a bit from raycast hitpoints as sometime the 2D result point is outside of the polygons due to floating point errors.

* Remove whitespace

* Revert 4a197ba22a as a raycast point path should have the Z retrieved with getPolyHeight(). Raycast will only return a 2-point path with Start and Hitpoint/End

* Cleanup PathGenerator raycast case

* Fix PathGenerator raycast broken if start and end are on same poly.
Fix PathGenerator raycast broken if no wall is hit.
Remove unused case of using raycast with an existing previous path (can be added back properly if needed).
Remove forcing poly length to 2 when we actually have already the right number.

* Use closestPointOnPolyBoundary on the second try of finding a point on poly for raycast.
Note that in this case the mesh height is not used which might cause issues. The poly boundary height will be used instead.

* Handle cases where getPolyHeight() fails because the point is on polygon border (and caused by floating point imprecision)

* Add far from poly flags

* Set PATHFIND_INCOMPLETE in raycast case if startFarFromPoly or endFarFromPoly

* Fix blink close to walls with no valid polygon behind the wall

* Require to re-extract mmaps

Co-authored-by: Ovah <dreadkiller@gmx.de>
2020-05-15 20:43:12 +02:00
Ovahlord
3144471209 Core/Objects: fixed build 2020-05-02 00:18:11 +02:00
Ovahlord
a548d9f9b0 Core/Objects: use the static vmap check in MovePositionToFirstCollision for all path results to avoid falling below wmo surfaces when the mmap path returns unreliable data 2020-05-02 00:06:34 +02:00
Ovah
6485422c61 Core/Objects: further improvements for MovePositionToFirstCollision (#24523)
* Core/Objects: further improvements for MovePositionToFirstCollision

* the PathGenerator will now normalize incomplete destinations as well
* normalize destination positions before launching detour raycasts to get better direction data
* exclude unwanted pathfinding results from further use to avoid unintended behaivior

* Core/PathFinding: Split PATHFIND_FARFROMPOLY into PATHFIND_FARFROMPOLY_START and PATHFIND_FARFROMPOLY_END for start and end position

Handle PATHFIND_FARFROMPOLY_END as valid in MovePositionToFirstCollision

Co-authored-by: jackpoz <giacomopoz@gmail.com>
2020-05-01 13:43:24 +02:00
Ovahlord
cf849df50a Core/Objects: optimize and improve MovePositionToFirstCollision results
* removed redundant static LOS checks as they are covered by the mmap raycast prior to the check
* removed unnecessary VMap height lookups to determine rapid falloffs as they are covered by the mmap raycast as well
2020-04-29 23:52:56 +02:00
Rushor
2d948d3366 Game/AI: Implement new targettype SMART_TARGET_CLOSEST_UNSPAWNED_GAMEOBJECT (#24494)
* Game/AI: Implement new targettype SMART_TARGET_CLOSEST_UNSPAWNED_GAMEOBJECT which allows to search for closest unspawned gameobjects

* updates: https://github.com/TrinityCore/TrinityCore/issues/24067

* Game/AI: Implement new targettype SMART_TARGET_CLOSEST_UNSPAWNED_GAMEOBJECT which allows to search for closest unspawned gameobjects
2020-04-26 21:32:24 +02:00
Gildor
862097a633 Core/Gameobjects: Improve stealth detection (#24417)
* Core/Gameobjects: Improve stealth detection

* fix warning: private field 'i_funit' is not used

* Code cleanup

* add comment

Co-authored-by: jackpoz <giacomopoz@gmail.com>
2020-04-12 15:28:01 +02:00
Ovah
bea850fb73 Core/Objects: cache current liquid status of objects when updating position data and use it to replace unnecessary vmap lookups (#24399)
* dropped unneeded IsUnderwater override for players since the default position data update considers collision height already so we don't have to rely on that tempfix anymore. This actually fixes breathing bars showing up depending on your characters size (gnomes get their breathing bar earlier, taurens later etc)
2020-04-07 23:28:44 +02:00
Giacomo Pozzoni
3def52c1c4 Core/Logs: Log full guid instead of just low guid, part 2 2020-04-05 19:10:58 +02:00
Giacomo Pozzoni
468ecb7252 Core/Logs: Log full guid instead of just low guid 2020-04-05 19:10:57 +02:00
Shauren
96155a4914 Core/PacketIO: Fixed SMSG_UPDATE_OBJECT packets going missing for new items
Closes #16906
2020-03-19 20:42:44 +01:00
Giacomo Pozzoni
d1080af8db Core/Objects: MovePositonToFirstCollision will now use detour raycasts to determine terrain obstacles (#24232)
* Core/Objects: MovePositonToFirstCollision will now use detour raycasts to determine terrain obstacles

* Added missing includes

* Update Object.cpp

Co-authored-by: Giacomo Pozzoni <giacomopoz@gmail.com>
2020-03-04 20:59:04 +01:00
Aokromes
ed93932537 New year
Say bye bye to every year changing dates
2020-01-02 06:25:50 +01:00
Killyana
8b03fe9506 Core/Log: Gameobjects may have faction template id = 0
Ref https://github.com/TrinityCore/TrinityCore/pull/22922
2019-12-14 23:28:45 +01:00
ForesterDev
07e2264964 Core/PacketIO: updated SMSG_PLAY_SOUND, SMSG_PLAY_MUSIC and SMSG_PLAY_OBJECT_SOUND (#23636)
* Core/PacketIO: SMSG_PLAY_SOUND

(cherry picked from commit 82a33c7fa8)

# Conflicts:
#	src/server/game/Battlefield/Battlefield.cpp
#	src/server/game/Battlegrounds/Battleground.cpp
#	src/server/game/Battlegrounds/BattlegroundMgr.cpp
#	src/server/game/Battlegrounds/BattlegroundMgr.h
#	src/server/game/Entities/Object/Object.cpp
#	src/server/game/Server/Packets/MiscPackets.cpp
#	src/server/game/Server/Protocol/Opcodes.cpp
#	src/server/game/Texts/CreatureTextMgr.cpp
#	src/server/game/Texts/CreatureTextMgr.h
#	src/server/scripts/Commands/cs_misc.cpp

* Update for 3.3.5

* Core/PacketIO: updated and enabled SMSG_PLAY_MUSIC

(cherry picked from commit c6718dc120)

# Conflicts:
#	src/server/game/Maps/Map.cpp
#	src/server/game/Server/Packets/MiscPackets.cpp
#	src/server/game/Server/Protocol/Opcodes.cpp
#	src/server/game/Server/Protocol/Opcodes.h
#	src/server/game/Spells/SpellEffects.cpp

* Core/Packets: added SMSG_PLAY_OBJECT_SOUND packet class

(cherry picked from commit 1272e9eea6)

# Conflicts:
#	src/server/game/Server/Packets/MiscPackets.cpp
#	src/server/game/Server/Packets/MiscPackets.h
#	src/server/game/Server/Protocol/Opcodes.cpp

* fic build

* change variable names

* fix build error field will be initialized after
2019-08-23 19:28:21 +02:00