Commit Graph
741 Commits
Author SHA1 Message Date
Ovahlord fc0dc939ba fixed nopch build and some warnings 2022-06-19 21:19:26 +02:00
Jeremy c5f81dc58f Core/ZoneScript: Add "invoker" param to ProcessEvent 2022-06-19 18:36:41 +02:00
Shauren 786131a162 Core/Transports: Localized transport objects within each map
Transports no longer move between maps, each map gets a separate copy of the transport object and players are moved between them when transferring to another map
This means they can no longer be globally looked up in HashMapHolder
2022-06-19 18:11:20 +02:00
Shauren 5a236799c2 Core/Transports: Path generation rewrite v2
* No TaxiPathNode row is skipped anymore (events/delays on first node now work)
* Fixed transport animation synchronization with client
* Fixed stoppable transports randomly resuming their path after relogging
2022-06-18 22:37:46 +02:00
Shauren 5c0c2e3f25 Core/Objects: Remove restriction on what object types can be set as active 2022-06-18 21:43:24 +02:00
Shauren 25465699f7 Core/GameObjects: Transport (type 11) improvements
* Fully synchronize serverside animation progress with client
* Implemented updating passenger positions on elevators
* Removed visibility hack for elevators that always forced CreateObject packet to be sent to client
2022-06-18 21:36:17 +02:00
Shauren 43c1876970 Core/Transports: Store information about continent transports 2022-06-18 18:53:25 +02:00
Ovahlord 6e9ec1a4bf Core/Transports: undo all custom transport changes as preparation for cherry picks 2022-06-18 18:37:14 +02:00
Shauren f2b4f2208e Core/Objects: ported master branch handling for properly destroying objects via out of range and destroy object opcode
# Conflicts:
#	src/server/game/Entities/Creature/Creature.cpp
2022-02-02 16:24:42 +01:00
ariel- 8aa53f2df7 Core/Achievements: port realm first achievement handling from master
veeeery partial cherry-pick of c75fcbe20b07fd7518be58bf02ba30d903133449

(cherry picked from commit 4596c17dae1dcb199b9301b7dcfd556bb1c0d7d5)
2022-01-28 22:32:59 +01:00
Ovahlord 20fdb215db Core/Packets: converted SMSG_UPDATE_INSTANCE_ENCOUNTER_UNIT to packet class 2021-12-27 18:35:18 +01:00
UltraNix 50d0bf915e Core/Maps: initialize vmapZ offset in Map::GetAreaId with the given z offset to retrieve the correct area Id with spawning things inside of WMOs that have their own area data 2021-08-30 17:34:49 +02:00
Ovahlord 8ac7e71690 Core/Spells: implement summon properties parameter types based on the leaked enumerated strings values
Summon spells can now be commanded to interpret their basepoints depending on the parameter type that has been assigned to the summon properties dbc record Id

* implemented SummonCreatureExtraArgs to reduce the amount of arguments in Map::SummonCreature
2021-08-15 10:35:02 +02:00
jackpoz 5a08b65cef Core/Maps: fixed a floating point issue when retrieving minHeight values from GridMap 2021-07-06 20:51:19 +02:00
Giacomo Pozzoni d83cd33bd4 Core/Pools: Fix pools with 1 member never spawning anything anymore (#26620)
* Core/Pools: Fix pools with 1 member never spawning anything anymore

Attempts to fix a 6 years old bug and never fixed by the original author.

* Remove respawn times from db once a respawn has been handled

* Allow to specify if Despawn1Object() should save or not the respawn time. We don't need to do that when respawning an object.

* Apply the same fix to GameObjects too
# Conflicts:
#	src/server/game/Pools/PoolMgr.h
2021-06-27 06:33:19 +02:00
Ovahlord 5fd77a3b28 Core/World: implement database support for default map and realm wide world states 2021-06-13 16:07:38 +02:00
Ovahlord be239e4458 Core/Maps: implement map based world states and implemented support for required world states in achievement criterias
*converted Erduax' conditional achievement to world state based handling as example
2021-06-13 10:48:41 +02:00
killerwife d4b90631fe Tools/Map Extractor: Fix water height redundancy algorithm ignoring "no water" 2021-04-05 13:41:44 +02:00
Giacomo Pozzoni 490188de76 Core/Maps: Change .map file version from FourCC to uint32 2021-04-05 12:17:12 +02:00
Shauren ddb50c2e3d Core/Objects: Pass privateObjectOwner guid directly to SummonCreature functions 2021-03-29 20:52:32 +02:00
Matan Shukry 434bc017c2 Core/Objects: Move personal summon handling from TemporarySummon/GameObject to WorldObject and check it using dedicated guid field 2021-03-29 20:45:13 +02:00
Matan Shukry a40e18367a Core/Maps: Refactor duplicated code from all ***CellRelocation and CheckGridIntegrity into single templated function 2021-03-29 20:36:39 +02:00
Shauren b9c72c3c7f Dep/Boost: Support for boost 1.74 2021-03-11 10:37:55 +01:00
Giacomo Pozzoni c12531b023 Core/Maps: Use a fixed offset instead of full collision height when retrieving floor Z 2021-02-21 20:26:21 +01:00
Ovahlord 0299fa4fe1 Core/Misc: replace boost::optional with std::optional 2021-02-19 14:07:43 +01:00
Ovahlord 6ba851e809 Core/Maps: corrected spawn mask check when spawning spawn groups
closes #209
2021-01-11 08:52:33 +01:00
Ovahlord f9f69bb0fe Core/Packets: converted SMSG_RAID_INSTANCE_MESSAGE, SMSG_PENDING_RAID_LOCK, SMSG_INSTANCE_SAVE_CREATED and SMSG_TRANSFER_ABORTED to packet class 2021-01-10 11:55:10 +01:00
Ovahlord 360b1149dc fixed build 2021-01-03 09:44:27 +01:00
Treeston 4aa098a50e Core/Maps: Move some more Map internals to actually be... internals. 2021-01-03 09:44:26 +01:00
Treeston f7a79750c9 Core/Maps: All RespawnInfo* handed to outside code are now RespawnInfo const*, to signify that outside code has zero business changing these. 2021-01-03 09:44:08 +01:00
Treeston ee3956b44c Core/Maps: move pooling hand-off outside of Map::CheckRespawn (PR#25785)
fixes #25777
# Conflicts:
#	src/server/game/Maps/Map.cpp
2021-01-03 09:44:08 +01:00
Ovahlord d35af4ef6c Core/Maps: fixed spawn groups bypassing spawnMask restrictions when tied to boss encounters 2020-11-25 10:14:17 +01:00
Giacomo Pozzoni 6a8ecc3ee3 Core/Misc: Fix issues reported by static analysis (#25351)
* Core/Misc: Fix issues reported by static analysis

* Core/Vmaps: Code cleanup after e777161888
# Conflicts:
#	src/common/Collision/DynamicTree.cpp
#	src/server/game/Entities/Object/Object.cpp
#	src/server/game/World/World.cpp
2020-08-29 13:49:21 +02:00
kvipka e6e20bd574 Scripts/InstanceScript: Fix an issue where LoadAllGrids would load creatures before TeamInInstance was properly set (PR #25340)
# Conflicts:
#	src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
2020-08-29 00:48:20 +02:00
Shauren bdb6705911 Core/Misc: Use "proper" type for respawn info map key 2020-08-29 00:47:28 +02:00
Ovahlord 52287e1f07 Core/SAI: ported set speed, weather and override light smart actions from 335 2020-08-22 18:16:03 +02:00
Roc13x 5360da31a2 Core/Items: Fix some cases where items could be created without random properties (#166) 2020-08-04 10:19:24 +02:00
Treeston c1237c788b Core/Map: Fix a crash that could happen if a player moved very far away from a creature they were in combat with. Closes #21177. 2020-07-22 16:52:02 +02:00
Treeston 942c3a77da Core: Combat/threat system rewrite (PR #19930)
- PvE combat is now always mutual. UNIT_FLAG_IN_COMBAT is backed by actual references to the units we're in combat with.
- PvP combat is now also tracked, and almost always mutual; spells like Vanish and Feign Death can break this rule. That means we can easily determine a list of players we're fighting.
- By extension, IsInCombatWith now has sensible behavior when invoked on nonplayers.
- Threat and combat systems are no longer the same.
  - They still have an enforced relationship (threat implies combat - clearing combat clears threat)...
  - ...but we can have combat without threat. A creature (with threat list) isn't considered to be engaged until it has an entry on its threat list...
  - ...which means we can now faithfully replicate retail engage behavior. Combat on projectile launch - engagement start on projectile impact. Yay for progress!
- AI method refactor, as already ported in 6113b9d - `JustEngagedWith`, `JustEnteredCombat` and `JustExitedCombat`.
- Vehicle threat is now properly pooled on the main vehicle body (fixes #16542).
- Various edge case bug fixes for threat redirects (Misdirection "cancelling" Vigilance and similar).
- Target re-selection is now significantly faster.
- Fixed a ton of other smaller edge case bugs, probably.

Closes #7951 and #19998.
2020-07-22 16:49:37 +02:00
Peter Keresztes Schmidt cbd6fb2315 Build: Enable -Wimplicit-fallthrough on clang (#25056)
* Misc: Use [[fallthrough]] attribute instead of comment to mark intentional fallthroughs

Related: #25006

* Misc: Add some missing breaks (no-ops) to satisfy clang

Related: #25006
Closes #25055

* Build: Enable -Wimplicit-fallthrough on clang

Closes #25006
# Conflicts:
#	src/server/game/Entities/Player/Player.cpp
#	src/server/game/Spells/SpellInfo.cpp
#	src/server/scripts/Battlefield/BattlefieldWG.cpp
#	src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp
#	src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp
#	src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
#	src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp
#	src/server/shared/DataStores/DBCDatabaseLoader.cpp
2020-07-18 22:47:52 +02:00
Ovahlord d46fb93657 Core/Pools: ported pooling updates from 335 branch 2020-07-13 11:17:19 +02:00
Shauren 0f3590ebb4 Core/Maps: Added optional *.tilelist file to map_extractor output which contains a list of existing tiles to speed up map creation in worldserver 2020-07-06 17:45:53 +02:00
Shauren 40f80fc0ed Core/Maps: Improvements to terrain swap handling
* Fixed memory leak when unloading grids
* Handle child maps being entered
* Allow chaining more child maps (Draenor -> Tanaan Jungle -> Tanaan Jungle - No Hubs Phase)
2020-06-11 01:35:27 +02:00
Shauren 95d7b0f2d6 Core/Misc: Improve assert message with more detail 2020-04-22 17:05:11 +02:00
Ovahlord d30c811d9e Core/Creatures: reworked tempoary summon creation
* all stats and values will now be set before summons are getting added to map
* cleaned up summon spell effect handler to reduce duplicade code
* summoner guids will no longer be set for every minion and correctly handle assigning creator guids instead. These values will serve as fallback guid if there is no summoner guid
* friendly tempsummons will now inherit the guild data of their player and pass them on to further allied summons. This fixes guild specific visuals for creatures such as Guild Battle Standards and Guild Heralds.

Todo: check for regressions
2020-04-22 00:20:18 +02:00
Shauren 47acc59f49 Core/DBLayer: Prevent committing transactions started on a different database 2020-04-15 21:02:26 +02:00
Shauren d003ebd8e4 Core/DBLayer: Prevent using prepared statements on wrong database 2020-04-15 19:18:58 +02:00
Ovahlord 57825bc011 Core/Packets: fixed build 2020-04-07 17:20:44 +02:00
Ovahlord eb81e8f4a3 Core/Packets: updated SMSG_WEATHER and SMSG_OVERRIDE_LIGHT to packet class 2020-04-07 16:14:09 +02:00
Ovahlord 113202ea48 Core/Packets: converted SMSG_PLAY_MUSIC to packet class and corrected packet structure 2020-04-07 15:59:33 +02:00